Making a release

From PioneerWiki
Revision as of 18:03, 5 February 2022 by Impaktor (talk | contribs) (New page that details how to make a release)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This details the release process of pioneer, written for the developer team, as the process tends to only be an annual one, and the knowledge of how it's best done is distributed over many individuals, which can be a show stopper. (It's based upon #4788)

(For players, we recommend anyone able to compile the game from master to do that instead, to get the latest features, and help report bugs.)

Make a release

Pioneer is in continuous development, and technically, has never had any hardened "stable" releases. However, we aim to make a periodic release that bundles many new features and that have undergone a feature-freeze to find bugs, prior its release.

Due to tradition, we try to not let it be more than one year between each official release. Happenstance has made that date be February 3rd each year. (Possibly, pi-day would be more suited?)


Prepare

  • In the weeks leading up the release date, finish up pull requests, merge them and then focus on ironing out bugs from these, and other.
  • Announce to translators on Transifex that we have a release incoming, and deadline for getting new translations included with it. (Possibly also tweet it). (devs with transifex-access: impaktor, robn, jpab, ecraven).
  • Start a draft release, summarize the major changes since last build from Changelog.txt, from player's perspective, and noticeable bug-fixes.

Publish Release

  • Make sure your master is in sync with upstream:
 git fetch --all -p
 git rebase upstream/master
  • Create a tag (format: YYYYMMDD) to latest commit, and push it:
 git tag YYYYMMDD
 git push upstream YYYYMMDD

(avoid "git push --tags", as it will push all tags)

  • Link the draft release to the tag
  • Publish draft. Github will now:
    • Attach the source code of that tag, both as zip and tar.gz
    • (after some time) attach a windows build artifact and a linux one. Rename them to:
 pioneer-YYYYMMDD-linuz.tar.gz
 pioneer-YYYYMMDD-win.exe

Once this is done, share the link to the github release page.

After Release

Spread the word

Link the github release from:

Upload to

Beside linking, we also need to build/repackage for:

  • flatpak (pcercuei)
  • itch it (wkfo, Nozmajner, FluffyFreak, ElonSatoshi)
  • sourceforge (fluffyfreak)
    • For a long time, this was our main/only host for builds, (we're still getting some downloads from here)

Future

Below are things we're currently not doing, but would perhaps be good to do (again):

Monitor downloads

Are people downloading it?

  • Itch tracs its own downloads
  • Sourceforge has public download stats
  • Github downloads are available from the API:
 curl -s https://api.github.com/repos/pioneerspacesim/pioneer/releases | egrep '"name"|"download_count"'

TODO

Stuff left to masterfully weav into this wiki:

  • What's the status of Appveyor? pcercuei and fluffyfreak (and impaktor?) are main responsible for it. Is this still how we get our windows

builds?