Skip to content

Latest commit

 

History

History
88 lines (58 loc) · 2.43 KB

PUBLISHING.md

File metadata and controls

88 lines (58 loc) · 2.43 KB

How to publish releases of elm-format

Workstation setup

Mac

brew update
brew install keybase

Preparation

  1. Start a new branch from origin/main named release/<new version>
  2. Edit CHANGELOG.md to set the correct version number.
  3. Create Release Notes/<new version>.md to draft the release notes.
  4. Update the version number in elm-format.cabal.
  5. If this is a stable release, update references to the version in README.md.
  6. Update ElmFormat.Version.experimental to Just <survey URL> for experimental versions and Nothing otherwise.
  7. (cd package/npm && npm version "<new version>")
  8. Commit the changes "Bump version to <new version>"
  9. Create a signed tag for the new version. git tag -s <new version> -m <new version>
  10. Push the tag. git push origin <new version>
  11. Wait for CI to successfully build the tag.

Platforms built on CI (Mac / Windows)

  1. Pushing the tag should have triggered a build at https://github.com/avh4/elm-format/actions?query=workflow%3A%22Build+release%22
  2. Download the artifacts from the successful build (keep them as zip files), and put them in downloads/

Platforms built in docker (Linux)

  1. Make sure you have Docker installed and running
  2. The binaries will be built automatically in the next section

Publishing

  1. Run ./build.sh publish-<new version>
  2. Go to the release page for the new tag on github.
  3. Enter the contents of Release Notes/<new version>.md as the release notes.
  4. Upload the zip, tgz and asc files.
  5. Publish the release.

elm-tooling

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>"

NPM

cd package/npm
npm install
# for experimental releases
# npm publish --tag exp
npm publish
npm dist-tag add elm-format@<new version> exp
npm dist-tag add elm-format@<new version> latest-0.18.0
npm dist-tag add elm-format@<new version> latest-0.19.0
npm dist-tag add elm-format@<new version> latest-0.19.1

Nix

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 "elm-format: <old version> -> <new version>"

Cleanup

  1. Create and merge a PR for the release/<new version> branch
  2. Delete the release/<new version> branch