isle/docs/dev/releases.md

47 lines
1.9 KiB
Markdown
Raw Normal View History

2023-03-25 14:58:20 +00:00
# Releases
A release consists of:
2024-10-03 16:59:48 +00:00
- A full set of `isle` binaries for all supported platforms, compiled from the
same source.
2023-03-25 14:58:20 +00:00
- A text file containing hashes of each binary.
- A file containing a signature of the hash file, created by whoever is building
the release.
Releases are named using semantic versioning: <major>.<minor>.<patch>. A
preceding "v" is NOT a part of the canonical release name, though it use used in
specific contexts.
Release artifacts are also be labeled with a suffix indicating build number, eg
"0.1.3-2" which indicates that this is of release "0.1.3". The first build of a
release is always "1". Different build numbers of the same release indicate that
no code is different, only the packaging.
2023-03-25 14:58:20 +00:00
## Building
*NOTE: This has only been tested from an x86_64 linux machine*
To create a release only a functional nix installation is required. Simply run
the `./release.sh` script, providing the release name and build number.
2023-03-25 14:58:20 +00:00
From here an `isle` binary will be cross-compiled for all supported
2023-03-25 14:58:20 +00:00
platforms. This will take a long time the first time you perform it on your
machine.
2024-07-07 11:37:26 +00:00
Once compilation is completed, the release will be signed using the default GPG
2023-03-25 14:58:20 +00:00
key on your machine, and you will be prompted for its password in order to
create the signature.
## Releasing
Release artifacts are hosted at `micropelago.net` under
`/isle/releases/v<release name>`. An `index.gmi` page should be created in that
directory which includes links to each artifact, as well as a changelog
detailing all new features and fixes included since the previous release.
A link to the new release should be included at `/isle/releases/index.gmi`.
Each release should be tagged in the git repo using the release name and build
number prefixed with a "v". If the build number of the release is "1" then the
tag notes should link to the `micropelago.net` release page for the release.