agda-releases.txt 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. Tested with `ghc-8.10.5` and `cabal-install 3.4.0.0`.
  2. When releasing the following procedure can be followed:
  3. * Verify that the Travis builds and GitHub workflows have no errors.
  4. * First, release a release candidate (see
  5. notes/agda-stable-releases-candidates).
  6. * Use the branch used for releasing the release candidate.
  7. * Finish the release notes in the CHANGELOG.
  8. * Replace in the CHANGELOG
  9. https://agda.readthedocs.io/en/latest
  10. by
  11. https://agda.readthedocs.io/en/vMAJORVERSION
  12. * Run the `closed-issues-for-milestone` program for adding the list of
  13. closed issues to the CHANGELOG.
  14. * Because some titles of some issues can generate new white-space
  15. issues after running the `closed-issues-for-milestone` program, run
  16. make check-whitespace
  17. and fix the issues both in the CHANGELOG file and GitHub.
  18. * Update the README.md, if necessary.
  19. * Update the list of contributors if necessary.
  20. Note: This is duplicated in the following locations:
  21. - Agda.cabal
  22. - doc/user-manual/conf.py
  23. - doc/user-manual/team.rst
  24. - LICENSE
  25. * Update the LICENSE file, if necessary.
  26. * Update Stackage resolvers, if necessary.
  27. * Update the copyright year range in
  28. - Agda.cabal
  29. - /doc/user-manual/conf.py
  30. - LICENSE
  31. * Check the date and version in `/src/data/latex/agda.sty`.
  32. * Update in the bug tracker the milestone field of open issues to the
  33. next Agda version.
  34. * Get a clean Agda repository.
  35. MAJORVERSION=<current-development-version-eg-2.4.2>
  36. VERSION=<current-released-version-eg-2.4.0.2>
  37. git clone git@github.com:agda/agda.git agda-release
  38. cd agda-release
  39. git checkout master
  40. * Update the Agda version
  41. ./src/release-tools/change-version.bash VERSION MAJORVERSION
  42. * Obtain and install the standard library branch related to the Agda:
  43. make up-to-date-std-lib
  44. * Obtain and install the cubical library branch related to the Agda:
  45. make up-to-date-cubical
  46. * Run the test-suite:
  47. make compile-emacs-mode
  48. make test
  49. Note that "compile-emacs-mode" invokes "agda-mode compile", which should
  50. ensure that the Emacs mode can be compiled without errors or
  51. warnings (except for the "cl package required at runtime" warning).
  52. 1) Remove the Cabal test-suite from Agda.cabal.
  53. 2) Remove -Werror and -fprof-auto from Agda.cabal (this is required by
  54. `cabal --check`).
  55. 3) Removed unnecessary dependencies from stack-XYZ.yaml files:
  56. + Removed QuickCheck dependency
  57. + Removed tasty-* dependencies
  58. + Removed local package (src/size-solver)
  59. 4) Added to the extra-source-files field in Agda.cabal the file (see
  60. Issues #4216):
  61. doc/user-manual.pdf
  62. * Update the user manual:
  63. make user-manual-pdf
  64. * Build source distributions:
  65. cabal configure
  66. cabal check
  67. cabal sdist
  68. * Build documentation for uploading to Hackage.
  69. cabal haddock --haddock-for-hackage
  70. * Ensure that the package builds properly (with multiple versions of
  71. GHC if possible) in Linux, macOS and Windows.
  72. BASE=`pwd`
  73. cd ${TMPDIR:-/tmp}
  74. tar xzf $BASE/dist-newstyle/sdist/Agda-$MAJORVERSION.tar.gz
  75. cd Agda-$MAJORVERSION
  76. cabal install --program-suffix=-$MAJORVERSION
  77. agda-$MAJOR_VERSION --version
  78. agda-mode-$MAJOR_VERSION compile
  79. * Tag the relase (do not forget to record the changes above first):
  80. cd $BASE
  81. git tag -a v$MAJORVERSION -m "Agda $MAJORVERSION stable release"
  82. * Upload the tarball and the documentation to Hackage:
  83. cd $BASE
  84. cabal upload --publish dist-newstyle/sdist/Agda-$RC_VERSION.tar.gz
  85. cabal upload --publish -d dist-newstyle/Agda-$RC_VERSION-docs.tar.gz
  86. * Revert changes made in 1), 2), 3) and 4).
  87. * Push all changes (in the release-$MAJORVERSION branch):
  88. git push --follow-tags
  89. * New CHANGELOG (see Issue #4705):
  90. ** In a commit:
  91. *** Move the CHANGELOG for $MAJORVERSION to a new entry in
  92. doc/release-notes/<version-written-with-dashes>.md.
  93. *** Add doc/release-notes/<version-written-with-dashes>.md. to
  94. the extra-source-files field in Agda.cabal.
  95. ** In a different commit: Create a new CHANGELOG file.
  96. * Close in the bug tracker the milestone $MAJORVERSION.
  97. * Update Agda Manual on Readthedocs.org (see Issues #2844 and #3035)
  98. ** You need Admin permissions on the Agda readthedocs.org project
  99. (current admins: asr, andreasabel, phile314)
  100. ** Go to readthedocs.org -> Agda Project -> Versions
  101. and mark $MAJORVERSION as active
  102. ** Go to readthedocs.org -> Agda Project -> Admin -> Advanced Settings
  103. and set the default documentation version to $MAJORVERSION
  104. ** If a release candidate was released then remove the associated
  105. documentation.
  106. * Update the Agda Wiki:
  107. ** Update the Download page:
  108. *** Move the current version information to the old releases
  109. section.
  110. *** Update the last release information.
  111. ** Update the Main page.
  112. ** Is the current version of the standard library compatible with
  113. the new version of Agda? If so, to update the standard library
  114. page.
  115. * If we are releasing a bux-fix release then deprecate in Hackage the
  116. buggy version.
  117. * Announce the release of the new version on the Agda mailing lists
  118. (users and developers).
  119. * Enable the released version of Agda on Stackage, if necessary.