When releasing a new version of Agda standard library, the following
procedure should be followed:
#### Pre-release changes
* Update `doc/README.agda` by replacing 'development version' by 'version X.Y' in the title.
* Update the version to `X.Y` in:
- `agda-stdlib-utils.cabal`
- `standard-library.agda-lib`
- `CITATION.cff`
- `CHANGELOG.md`
- `README.md`
- `doc/installation-guide.md`
* Update the copyright year range in the LICENSE file, if necessary.
#### Pre-release tests
* Ensure that the library type-checks using Agda A.B.C:
make test
* Update submodule commit in the Agda repository:
cd agda
make fast-forward-std-lib
* Build the latest version of Agda
make quicker-install-bin
* Run the tests involving the library:
make test-using-std-lib
* Commit the changes and push
#### Release
* Tag version X.Y (do not forget to record the changes above first):
VERSION=X.Y
git tag -a v$VERSION -m "Agda standard library version $VERSION"
* Push all the changes and the new tag (requires Git >= 1.8.3):
git push --follow-tags
* Make a new release on Github at https://github.com/agda/agda-stdlib/releases
* Submit a pull request to update the version of standard library on Homebrew
(https://github.com/Homebrew/homebrew-core/blob/master/Formula/agda.rb)
* Update the Agda wiki:
** The standard library page.
** News section on the main page.
* Announce the release of the new version on the Agda mailing lists
(users and developers).
* Generate and upload documentation for the released version:
cp .github/tooling/* .
cabal run GenerateEverything.hs
./index.sh
agda -i. -idoc -isrc --html index.agda
mv html v$VERSION
git checkout gh-pages
git add v$VERSION/*.html v$VERSION/*.css
git commit -m "[ release ] doc for version $VERSION"
git push
After that you can cleanup the generated files and copies of things taken from travis/
from your agda-stdlib directory.
#### Post-release
* Move the CHANGELOG.md into the old CHANGELOG folders
* Create new CHANGELOG.md file
* Update `standard-library.agda-lib` to the new version/milestone on `master`