Skip to content

document release steps #40

@jakoch

Description

@jakoch

Let's try to assemble and refine the steps for doing a release of Fifechan.

We need this document, because maintainers might change and we need to transfer the knowledge of "how to do a release properly" to the next person having the maintainer role.
In the end, it should from a checklist guide for the maintainer.

The content of this ticket is later moved into the developer manual.


Fifechan Release Steps

Release Requirements

  • you need to be maintainer (with push-access to the repository)
  • you need to have access to Travis and Appveyor
    • so that you can delete and re-trigger builds manually, when things go bust, while building and releasing automatically
  • the auth keys tokens of CI services must be update to date

Release Preparation

  • pick new version number
  • update to new version number
  • update AUTHORS
  • update CHANGELOG
    • roll changelog data from the "unreleased" section to the new version number section
    • link the new header (by adding a new reference at the end of the changelog)
    • fix link to unreleased (by updating the old version number with the new version number)
  • git commit + git push - add changes until everything is updated and ready
  • pick release commit
    • this is the golden commit = the base for the release tag
    • check that the commit message doesn't contain [skip ci]
    • check that the builds of this commit are all green on CI services

Release

  • git tag -a <tagname=version> <git-hash of release commit>
    • e.g. git tag -a 1.2.3 9fceb02: you are tagging the commit 9fceb02 as version 1.2.3.
  • git push origin <tagname=version>
    • e.g. git push origin 1.2.3: this pushes the single tag "0.1.3" to "origin"
  • wait for CI services to complete the build
  • wait for CI services to deploy the release to Github Releases

Note: If things go bust, delete the tags locally and then manually via the Github Interface, before you try to release the same tag.

Post Release

  • announce new release in IRC

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions