Skip to content

Admin: Creating a Release

Malthus edited this page Dec 31, 2017 · 3 revisions

When preparing a new release, there are several tasks that must get done.

Determine what content is being released

Typically this will be most but not all content in the dev branch. By announcing a planned release 4 or 5 days before we release it, we give the team more time to focus on completing any incomplete events in dev and debugging any buggy events.

Fix outstanding issues

Take a look at the issue tracker, particularly the "Next Beta" and/or "Next Stable" milestones, for any outstanding issues that would affect the next release. Determine whether the associated content will be fixed, removed, or ignored.

Create Release Notes & Changelog

Our releases are accompanied by both release notes and a changelog. These have generally been written by Malthus & Tuttu. Looking through closed issues and the commit history can be helpful in creating a changelog. UPDATE Version check event.

Update contributors

Check who the coders, writers, translators, etc were for everything in the changelog. Make sure all team members appear in the team member list, and make sure anyone not in the team who added an idea we used gets added to that list.

Prepare release in beta or stable

Checkout the beta or stable branch as appropriate to the release. Merge in the relevant content. If everything in dev is to be included, this is a simple git merge dev. If some things in dev are not going to be released, you may find it helpful to first create a temporary branch, delete the unwanted files in this branch, and then merge this temporary branch into the release branch. Alternatively, you might checkout the release branch and then use git checkout dev -- [files] to add just the listed files from dev into the checked out branch. Often this is more tedious, but can be helpful in some cases.

Note that access to the beta and stable branches is limited to repo admins. I have invited all the Admins as repo admins, but not everyone has accepted their invitation. Also, if necessary, current admins can invite new admins under the Settings/Collaborators & Teams tab of the repo. Probably preferable to limit this to admins unless someone else is needed, but if they are needed this is how to add them.

Tell the team the release branch name

In, particular, whoever's making the release (Malthus for Steam, often Tuttu for forums) needs to know what branch it's in.

Run localization script

Use python copy_english.py from the command line in the mod's root directory to copy English into non-translated languages. You will need Python installed and set up to do this. You may wish to manually adjust partially-translated files; see commit d8c49cc for an example of how this might work. That said this can be a huge pain and may be more trouble than it's worth. Ignoring partial-translation issues or deleting partially translated files before running copy_english so the script replaces them with English are potential alternatives.

Create a release tag or branch

It's nice to know what exact commit we released, so create a branch with git checkout -b v1.#(.#) or a tag with git tag v1.#(.#). This should be done with the exact code we release.

Afterward, clean up

It's generally nice to revert any localization patches you made with git revert [commit #]. Once this is done, check out the master branch and merge it to here, since the most recent release is generally where you want people to start developing new features from.

Clone this wiki locally