Skip to content

Latest commit

 

History

History
125 lines (80 loc) · 3.76 KB

RELEASE.md

File metadata and controls

125 lines (80 loc) · 3.76 KB

Release guide

Release branches/channels

  • Alpha - git branch: dev
  • Beta - git branch: beta
  • Stable - git branch: master

Alpha

The alpha channel is automatically released for every successful push to dev.

Beta

  1. Merge editor-dev into dev

     $ git checkout editor-dev
     $ git pull
     $ git checkout dev
     $ git pull
     $ git merge editor-dev
     $ git push
    
  2. Merge dev into beta

     $ git checkout beta
     $ git pull
     $ git merge dev
     $ git push
    

    Beta beta channel is automatically released for every successful push to beta.

  3. Collect release notes using python scripts/releasenotes_git.py and post on forum.defold.com and add the "BETA" tag to the headline

Stable

  1. Switch to master branch, merge from beta:

    $ git checkout master
    $ git pull
    $ git merge beta
    
  2. Push master!

    $ git push
    

    This will trigger a build of the engines and editors for stable. Make a note of the release sha1 (the latest commit to the master branch on GitHub)

  3. Fetch editor via:

    http://d.defold.com/editor2/`STABLE-SHA1`/editor2/Defold-x86_64-darwin.dmg

    http://d.defold.com/editor2/`STABLE-SHA1`/editor2/Defold-x86_64-win32.zip

    http://d.defold.com/editor2/`STABLE-SHA1`/editor2/Defold-x86_64-linux.zip

  4. Tag the release in git:

    $ git checkout master
    $ git tag -a X.Y.Z (same as version produced by the bump)
    

    Use tag message: Release X.Y.Z Add -f to force update the tag (in the case you need to amend an existing release for some reason).

    $ git push origin --tags
    

    This will push the tags to GitHub, which is then used later in the release step. Add -f to force update the tags.

  5. Merge master into editor-dev

    $ git checkout editor-dev
    $ git pull
    $ git merge master
    $ git push
    

    This will trigger a build of the engines and editors for editor-alpha.

  6. When the editor-dev is built, all channels have been updated

Publishing Stable Release

  1. If everything is OK, time to release stable

  2. If there is a pending Native Extension server change, publish the production server, which updates https://build.defold.com

  3. Next, release the stable engine/editor:

     $ ./scripts/build.py release
    

    Important: Make sure the SHA1 and channel is correct!

  4. Verify release by updating an old editor, OSX, Win and Linux. (Currently a bit deprecated workflow, since no one uses editor-stable)

  5. Generate new API documentation and other documentation changes. From the defold/defold.github.io repo:

     $ cd defold.github.io
     $ ./update.py --download refdoc
     $ git commit -am "Updated reference documentation to 1.2.xxx"
     $ git push
    
  6. Upload release artifacts to GitHub:

     $ cd defold
     $ git checkout master
     $ ./scripts/build.py --github-token=YOUR_GITHUB_TOKEN release_to_github
    
  7. Merge master into dev

     $ git checkout dev
     $ git pull
     $ git merge master
    
  8. Bump version:

     $ ./scripts/build.py bump
     $ git diff
     $ git add VERSION
     $ git commit
     > Message: "Bumped version to 1.2.xx"
     $ git push
    
  9. Repost the releasenotes on the forum and remove the "BETA" part from the headline