Prerequisites:
-
develop
contains exactly the code we want to release- it can be useful to mark MRs we want to release with the
for-next-release
label
- it can be useful to mark MRs we want to release with the
- we have tested it enough to be confident we can release it to the world
- the CI pipeline (build, test, lint) passes
-
package.json
ondevelop
has a"version": "2027.12.0-dev"
or something similarly non-prod-looking - the changelogs contain all the changes we want to announce
To release:
- create a new Branch based on
develop
to change the version to a prod-looking one(e.g.2027.12.1
)- try to avoid using the same version as Misskey, both to reduce confusion, and because (unlike branches) tags are not scoped by remote and will confuse multi-remote clones
- create a MR to merge the new Branch into
stable
- once that is merged, go to https://activitypub.software/TransFem-org/Sharkey/-/releases and create a new release
- for the tag, use the same version you just set on
stable
(e.g.2027.12.1
) - make sure the tag will be created on
stable
- for the release name, again use the version (e.g.
2027.12.1
) - for the release notes, copy the changelogs
- for the tag, use the same version you just set on
- wait for all the pipelines to complete
- in the container regirstr you should get (of course with the right version):
latest
2027.12.1-amd64
2027.12.1-arm64
- in the container regirstr you should get (of course with the right version):
- announce the release on the official account!
Post release:
- branch off
develop
, mergestable
into that, change the version to the next number (e.g.2028.1.0-dev
), create a MR for this branch, get it merged
Hotfixes / security releases
Sometimes we need to release changes to the latest stable release, without whatever has been merged into develop
. For example, a security fix.
In these cases:
- create a branch off
stable
, let's call ithotfix/2027.12.2
, and change the version number on this branch - create branches off
stable
, one per fix (like normal feature / bugfix branches, but starting from the released code), and send MRs targetinghotfix/2027.12.2
- once all the fixes have been merged into
hotfix/2027.12.2
, create a MR targetingstable
- now carry on through the normal release process (third step, the one starting "once that is merged…")