You will need an appropriate GPG signing key created and set as the default key.
- Start a new branch from
origin/main
namedrelease/<new version>
- Edit
CHANGELOG.md
to set the correct version number. - Create
Release Notes/<new version>.md
to draft the release notes. - Update the version number in the top-level
package.yaml
, and rundev/build.sh
. - If this is a stable release, update references to the version in
README.md
. - In
src/ElmFormat/Version.hs
, updateElmFormat.Version.experimental
toJust <survey URL>
for experimental versions andNothing
otherwise. - Commit the changes "Bump version to <new version>"
- Create a signed tag for the new version.
git tag -s <new version> -m <new version>
- Push the tag.
git push origin <new version>
- Wait for CI to successfully build the tag.
- Pushing the tag should have triggered a builds at:
- Download the artifacts from the successful builds (keep them as zip files), and put them in
downloads/
- Make sure you have Nix installed
- The binaries will be built automatically in the next section
- Run
dev/build.sh publish-<new version>
- Go to the release page for the new tag on github.
- Enter the contents of
Release Notes/<new version>.md
as the release notes. - Upload the zip, tgz and asc files.
- Publish the release.
cd package/elm-tooling
./build.sh
Then cd elm-tooling
, push the resulting branch, and make a PR to https://github.com/elm-tooling/elm-tooling-cli with the title "Add elm-format <new version>
"
cd package/npm
- Create
elm-format-<new-version>.nix
:- Fill out the release info
prerelease
is null for normal releases, or should have the format(alpha|beta|rc).[0-9]+
for prereleasesscope
is optional and will create a scoped top-level package (don't set it for normal releases)binaryPackageScope
is the scope that the binary packages will be published under
- Fill out the
binaries
info for each supported platform- To get the sha256, run
nix-prefetch fetchzip --url <release url>
v
is the sub-patch version for this binary and can be incremented as needed (but should be reset to"1"
on each new elm-format version)
- To get the sha256, run
- Fill out the release info
- Update
default.nix
to point to the newelm-format-<new-version>.nix
nix-shell --pure
- For each folder in
./elm-format-*-*
, go to the folder and./publish.sh
- For the main package,
cd elm-format
and./publish.sh
You must checkout the exact commit that is tagged for the release (so that git describe
prints only the tag name),
and then run:
cd package/nix
./build.sh
Then cd nixpkgs
, push the resulting branch, and make a PR to https://github.com/NixOS/nixpkgs with the title "elmPackages.elm-format: <old version> -> <new version>
"
- Create and merge a PR for the
release/<new version>
branch - Delete the
release/<new version>
branch