1 eef198e3 2024-06-28 op # Maintaining telescope
3 eef198e3 2024-06-28 op ## Making releases
5 eef198e3 2024-06-28 op To create a "chain of trust" for signify keys, we when doing the
6 eef198e3 2024-06-28 op release N we also generate the keys for N+1 and include the public key
7 eef198e3 2024-06-28 op in the repo, under the `keys/` directory.
9 eef198e3 2024-06-28 op Tags should be signed with a known ssh key. We don't usually use GPG
10 eef198e3 2024-06-28 op nor sign every commit, as it makes little sense.
12 eef198e3 2024-06-28 op Before making a release it's better to double-check that everything is
13 eef198e3 2024-06-28 op in order. The ChangeLog file should be up-to-date and used as a base
14 eef198e3 2024-06-28 op to create the release notes. Release notes should be useful both for
15 eef198e3 2024-06-28 op the end users and for packagers: breaking changes, new or changed
16 eef198e3 2024-06-28 op dependencies, bug fixes and new features needs to be clearly stated.
18 eef198e3 2024-06-28 op It goes without sayng that before making a release all known bugs must
21 eef198e3 2024-06-28 op Every release so far was named after an Italian song. It started by
22 eef198e3 2024-06-28 op trying to keep the "space" theme, but then I (op) started to just use
23 eef198e3 2024-06-28 op a song I was listening to many times in the release period. There may
24 eef198e3 2024-06-28 op or may not be any meaning behind the chosen song. The "limitation"
25 eef198e3 2024-06-28 op that songs are from italian groups is not meant to exclude the rest of
26 eef198e3 2024-06-28 op the world, it's just an arbitrary choice done by me (op). Other
27 eef198e3 2024-06-28 op projects that I maintain (gmid) use song as a release name, so I just
28 eef198e3 2024-06-28 op wanted to differentiate a bit (and maybe advertise some Italian indie
31 86d6c3c8 2024-06-29 op Minor releases (e.g. 0.10.1) are reserved for bug fixes and inherit the
32 86d6c3c8 2024-06-29 op name of the previous release (e.g. 0.10).
34 eef198e3 2024-06-28 op When everything is in place, remove `-current` from `configure.ac` and
35 eef198e3 2024-06-28 op bump the version, then run
37 eef198e3 2024-06-28 op $ make release PUBKEY=... PRIVKEY=...
39 eef198e3 2024-06-28 op signify(1) will then prompt for the password to unlock the private
40 eef198e3 2024-06-28 op key. It will also try to check the signed tarball against the public
41 eef198e3 2024-06-28 op key, as a safety measure.
43 eef198e3 2024-06-28 op Note to op: on OpenBSD I'm using an `obj` directory for the build, and
44 eef198e3 2024-06-28 op `make release` needs to be run after cd'ing there.
46 079783a6 2024-11-10 op Then upload the tarballs, make the tag (and sign it!), add `-current`
47 079783a6 2024-11-10 op to the version in `configure.ac`, make the release on Codeberg and
48 079783a6 2024-11-10 op GitHub, and remember to upload the generated tarballs there as well.
50 079783a6 2024-11-10 op Finally, update and publish the website too.