|Version 19 (modified by igloo, 4 months ago)|
Making the source tarball
The source tarball includes some generated files, such as Parser.hs (generated from Parser.y.pp). We therefore need to do a build before generating the source tarball.
First check out the branch, and ensure that the version number and RELEASE near the top of configure.ac are correct. Then:
$ perl boot $ ./configure $ make $ make sdist
It is advisable to use a machine with as recent an autoreconf as possible; in particular, 2.61 is known to make a configure script that doesn't work on Windows.
You should now have source tarballs sdistprep/ghc-<VERSION>-src.tar.bz2 and sdistprep/ghc-<VERSION>-testsuite.tar.bz2.
Making the binary builds
Untar the src tarball. Then:
$ cat > mk/build.mk <<EOF V=1 HADDOCK_DOCS=YES LATEX_DOCS=YES HSCOLOUR_SRCS=YES BUILD_DOCBOOK_HTML=YES BUILD_DOCBOOK_PDF=YES BUILD_DOCBOOK_PS=YES EOF
If on Linux:
$ echo "BeConservative=YES" >> mk/build.mk
$ ./configure 2>&1 | tee ../conf.log $ make 2>&1 | tee ../make.log $ make binary-dist 2>&1 | tee ../bd.log
Sanity checking the binary builds
The compare tool compares the tarballs of different releases, and warns about possible problems:
$ cd <</path/to/ghc/tree>>/distrib/compare $ make
$ <</path/to/ghc/tree>>/distrib/compare/compare <<previous_release_files>> <<this_release_files>>
Check that the build can build the release
Install the release, set your $PATH, then just untar and:
$ ./configure $ make
Create and upload the library documentation
haskell.org$ mkdir /srv/web/haskell.org/ghc/docs/<<VERSION>>
$ <</path/to/ghc/tree>>/distrib/mkDocs/mkDocs ghc-*-x86_64-unknown-linux.tar.bz2 ghc-*-i386-unknown-mingw32.tar.bz2 $ cd docs $ scp * haskell.org:/srv/web/haskell.org/ghc/docs/<<VERSION>>
haskell.org$ cd /srv/web/haskell.org/ghc/docs/<<VERSION>> haskell.org$ mkdir html haskell.org$ cd html haskell.org$ mv ../index.html . haskell.org$ for i in ../*.tar.bz2; do tar -jxf $i; done
Sanity check http://www.haskell.org/ghc/docs/<<VERSION>>/. In particular, check that the libraries docs include both Win32 and unix.
Prepare the webpage
In the http://www.haskell.org/ghc darcs repository, create a download_ghc_<<MANGLED_VERSION>>.shtml page based on the previous one.
Sanity check http://www.haskell.org/ghc/download_ghc_<<MANGLED_VERSION>>. In particular, check that the release notes and documentation links work.
Upload the binaries
scp -r 7.6.2 haskell.org:/srv/web/haskell.org/ghc/dist/
Sanity check that the download links work.
Update "Current Stable Release" in download.shtml, and move the previous release down to "Older Releases".
Update "Latest News" in index.shtml.
haskell.org$ ~/mk-latest-links haskell.org$ ~/mk-latest-links | sh
Mail ANNOUNCE to email@example.com, firstname.lastname@example.org, subject ANNOUNCE: GHC version <<VERSION>>.
Set RELEASE back to NO and commit.
./sync-all tag ghc-7.6.2-release
Also git tag <<LIBRARY>>-<<VERSION>>-release libraries that we maintain (other than ghc-prim).
./sync-all push --tags
If any library that we maintain (other than bin-package-db and ghc-prim, which don't get uploadad) has been changed, then the new version should be uploaded to hackage.
For example, for base, in a built tree:
make sdist_base cabal upload libraries/base/dist-install/*.tar.gz