agda-releases-candidates.txt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. When releasing a release candidate (RC) the following procedure can be
  2. followed:
  3. * Finish the release notes in
  4. doc/release-notes/<version-written-with-dashes>.txt.
  5. Copy the contents of the release notes to the top of the CHANGELOG
  6. file.
  7. * Run the `closed-issues` program for adding the closed issues to the
  8. CHANGELOG excluding issues labelled with:
  9. not-in-changelog,
  10. status: abandoned,
  11. status: duplicated,
  12. status: invalid,
  13. status: wontfix,
  14. status: working-as-intended or
  15. * Update the README.md, if necessary.
  16. * Update the list of contributors if necessary.
  17. Note: This is duplicated in the following locations:
  18. - Agda.cabal
  19. - doc/user-manual/conf.py
  20. - doc/user-manual/team.rst
  21. - LICENSE
  22. * Update the LICENSE file, if necessary.
  23. * Update Stackage resolvers, if necessary.
  24. * Verify that the Travis builds have no errors.
  25. * Get a clean Agda repository.
  26. MAJORVERSION=<current-development-version-eg-2.4.2>
  27. VERSION=<current-released-version-eg-2.4.0.2>
  28. git clone git@github.com:agda/agda.git agda-release
  29. cd agda-release
  30. git checkout master
  31. * Create the branch used for the release
  32. git checkout -b release-$MAJORVERSION
  33. * The version of the RC is $VERSION + current date
  34. RC_VERSION=<current-released-version-current-date-eg-2.4.0.2.20150913>
  35. * The $CHANGE_VERSION_FILES variable represents the files where it is
  36. necessary to change the version number.
  37. $CHANGE_VERSION_FILES=
  38. .ghci
  39. Agda.cabal
  40. default.nix
  41. doc/user-manual/conf.py
  42. mk/versions.mk
  43. src/data/emacs-mode/agda2-mode.el
  44. src/data/emacs-mode/agda2-mode-pkg.el
  45. src/size-solver/size-solver.cabal
  46. test/interaction/Issue1244a.out
  47. test/interaction/Issue1244b.out
  48. * Change $MAYOR_VERSION to $RC_VERSION in $CHANGE_VERSION_FILES.
  49. * Obtain and install the standard library branch related to the Agda:
  50. make up-to-date-std-lib
  51. * Run the test-suite:
  52. make compile-emacs-mode
  53. make test
  54. Note that "compile-emacs-mode" invokes "agda-mode compile", which should
  55. ensure that the Emacs mode can be compiled without errors or
  56. warnings (except for the "cl package required at runtime" warning).
  57. * Remove -Werror and -fprof-auto from Agda.cabal (this is required by
  58. `cabal --check`).
  59. * Remove the Cabal test-suite from Agda.cabal.
  60. * Update the user manual:
  61. make user-manual-pdf
  62. * Build source distributions:
  63. cabal configure
  64. cabal check
  65. cabal sdist
  66. * Build documentation for uploading to Hackage. Adapted from
  67. https://hackage.haskell.org/upload (2018-07-19):
  68. cabal haddock --for-hackage
  69. * Ensure that the package builds properly (with multiple versions of
  70. GHC if possible) in Linux, macOS and Windows.
  71. BASE=`pwd`
  72. cd ${TMPDIR:-/tmp}
  73. tar xzf $BASE/dist/Agda-$RC_VERSION.tar.gz
  74. cd Agda-$RC_VERSION
  75. cabal install
  76. Do not forget to test the Emacs mode.
  77. * Tag the release candidate (do not forget to record the changes above
  78. first):
  79. cd $BASE
  80. git tag -a v$RC_VERSION -m "Agda $MAJORVERSION release candidate n"
  81. * Upload to Hackage the RC (tested with cabal-install >= 2.0.0.0):
  82. cd $BASE
  83. cabal upload dist/Agda-$RC_VERSION.tar.gz
  84. cabal upload -d dist/Agda-$RC_VERSION-docs.tar.gz
  85. * Restore the Cabal test-suite in Agda.cabal.
  86. * Restore -Werror and -fprof-auto in Agda.cabal.
  87. * Restore the version number $MAJOR_VERSION in $CHANGE_VERSION_FILES.
  88. * Push all changes (in the release-$MAJORVERSION branch):
  89. git push --set-upstream --follow-tags
  90. * Announce the release candidate on the Agda mailing lists (users and
  91. developers).