- Alpha - git branch: dev
- Beta - git branch: beta
- Stable - git branch: master
The alpha channel is automatically released for every successful push to dev.
- If there is a pending Native Extension server change, publish the stage server, which updates https://build-stage.defold.com.
-
Merge
editor-dev
intodev
$ git checkout editor-dev $ git pull $ git checkout dev $ git pull $ git merge editor-dev $ git push
-
Merge
dev
intobeta
$ git checkout beta $ git pull $ git merge dev $ git push
Beta channel is automatically released for every successful push to beta.
-
Collect release notes using
python scripts/releasenotes_github_projectv2.py
and post on forum.defold.com and add the "BETA" tag to the headline
- Note: The release notes script requires a github access token to work correctly (https://github.com/settings/tokens). If the token is incorrect, you will likely get an error saying 'Unable to find GitHub project for version x.x.x'. Create a "classic" github token and add permissions to read projects. If the script still fails, you might need more permissions.
-
Also update the beta for the console platforms
$ cd defold-platform $ git checkout dev $ git pull $ git checkout beta $ git pull $ git merge dev $ git fetch upstream $ git merge upstream/beta $ git push
-
If there is a pending Native Extension server change, publish the production server, which updates https://build.defold.com
-
Switch to master branch, merge from beta:
$ git checkout master $ git pull $ git merge beta
-
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)
-
The build will be tagged and published to S3 and to GitHub Releases
-
The refdoc will be updated in the defold.github.io repo
-
-
Merge
master
intoeditor-dev
:$ git checkout editor-dev $ git pull $ git merge master -m "Merged master into editor-dev" $ git push
After a successful build, the editors are published under the stable engine tag in GitHub Releases
-
Merge
editor-dev
intodev
:$ cd defold $ git checkout dev $ git pull $ git merge editor-dev -m "Merged editor-dev into dev"
-
Bump version:
$ ./scripts/build.py bump $ git diff $ git add VERSION $ git commit -m "Bumped version to X.Y.Z" $ git push
-
Repost the releasenotes on the forum and remove the "BETA" part from the headline
-
Update the master branch for the console platforms
$ cd defold-platform $ git checkout beta $ git pull $ git checkout master $ git pull $ git merge beta $ git fetch upstream $ git merge upstream/master $ git push
-
Update the dev branch for the console platforms
$ cd defold-platform $ git checkout master $ git pull $ git checkout dev $ git pull $ git merge master $ git fetch upstream $ git merge upstream/dev $ git push
Deploying a release to Steam requires the Steam command line tool steamcmd
. Authentication is performed using Multi-Factor Authentication (MFA) through Steam Guard.
For manual release to Steam:
-
Install
steamcmd
on your local machine. You can either install usingbrew install steamcmd
or by downloading from Valve and addingtools/ContentBuilder/builder_osx/steamcmd
to your path. -
Try to login with
steamcmd +login <username> <password> +quit
, which may prompt for the MFA code. If so, type in the MFA code that was emailed to the account's email address. -
Validate that the MFA process is complete by running
steamcmd +login <username> +quit
again. It should not ask for the MFA code again.
For automated release on CI (NOT ENABLED YET):
-
After running
steamcmd
aconfig.vdf
file will be created. The location varies depending on operating system. On macOS the file is located in~/Library/Application Support/Steam/config
. -
Use
cat config.vdf | base64 > config_base64.txt
to encode the file. Copy the contents ofconfig_base64.txt
to the GitHub SecretSTEAM_CONFIG_VDF
.
NOTE: If when running the action you recieve another MFA code via email, run steamcmd +set_steam_guard_code <code>
on your local machine and repeat the config.vdf
encoding and replace secret STEAM_CONFIG_VDF
with its contents.
-
Run
release_to_steam
command:$ ./scripts/build.py --version=1.4.8 release_to_steam
-
Wait until command completes.
-
Set build live (see below).
-
Commit code to master
-
Wait for CI.
-
Set build live (see below).
When the build has been uploaded it needs to be set live:
-
Login to https://partner.steamgames.com
-
Open build list for Defold: https://partner.steamgames.com/apps/builds/1365760
-
Find your upload in the list and change the value in the
Set build live on branch
todefault
-
Update the Steam Community page with the release notes. Create a new post with the relase notes using this link. Write something like:
Defold 1.4.1 has been released
This new version can be downloaded by opening Defold and allowing the editor to self-update.
All releases can be downloaded at: https://github.com/defold/defold/releases
Official forum thread with complete update notes: https://forum.defold.com/t/defold-1-4-1-has-been-released/72246
- Announce the Stable release in other channels:
- Twitter (https://x.com/defold)
- LinkedIn (https://www.linkedin.com/company/53400322/admin/page-posts/published/?share=true)
- Discord (usually done by Amel)
- Telegram (usually done by Alexey)
- WebGameDev Discord Native Engines channel (https://discord.com/channels/1032873609280106566/1052862658954670120)
- Poki Discord (https://discord.com/channels/466173880751357963/940949540012433488)