Files
gf-core/RELEASE.md
John J. Camilleri 8dc1ed83b6 Update RELEASE.md
2020-11-30 13:01:51 +01:00

2.4 KiB

GF Core releases

Note: The RGL is now released completely separately from GF Core. See the RGL's RELEASE.md.

Creating a new release

1. Prepare the repository

Web pages

  1. Create download/index-X.Y.md with installation instructions.
  2. Create download/release-X.Y.md with changelog information.
  3. Update download/index.html to redirect to the new version.
  4. Add announcement in news section in index.html.

Version numbers

  1. Update version number in gf.cabal (ommitting -git suffix).
  2. Add a new line in debian/changelog.

2. Create GitHub release

  1. When the above changes are committed to the master branch in the repository and pushed, check that all CI workflows are successful (fixing as necessary):
  1. Create a GitHub release here using tag format RELEASE-X.Y.

3. Binary packages

The binaries will be built automatically by the GitHub Actions workflows, but the generated artifacts must be manually attached to the release as assets.

  1. Go to https://github.com/GrammaticalFramework/gf-core/actions.
  2. Click "Build [platform] Package" under Workflows.
  3. Choose the workflow run corresponding to the release commit SHA.
  4. Download the artifact locally, then add to the release with a name gf-X.Y-PLATFORM.EXT (e.g. gf-3.11-macos.pkg).

4. Upload to Hackage

  1. Run make sdist
  2. Upload the package, either:
    1. Manually: visit https://hackage.haskell.org/upload and upload the file dist/gf-X.Y.tar.gz
    2. via Cabal (≥2.4): cabal upload dist/gf-X.Y.tar.gz
  3. If the documentation-building fails on the Hackage server, do:
cabal v2-haddock --builddir=dist/docs --haddock-for-hackage --enable-doc
cabal upload --documentation dist/docs/*-docs.tar.gz

Miscellaneous

What is the tag GF-3.10?

For GF 3.10, the Core and RGL repositories had already been separated, however the binary packages still included the RGL. GF-3.10 is a tag that was created in both repositories (gf-core and gf-rgl) to indicate which versions of each went into the binaries.