Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

190 lines (131 sloc) 5.282 kB

release_guide.pod - guide to Rakudo Star releases

Rakudo Star releases are based on Rakudo compiler releases. Since some time is often needed for module updates and testing after each Rakudo compiler release, the timing of Star releases varies from one release to the next.

Also, while the Rakudo compiler issues monthly releases; Star releases are free to choose a longer release cycle. Star releases are also free to choose older releases of the compiler, NQP, and/or Parrot. The goal is to balance end-user stability needs with progress being made on the compiler, modules, and other runtime components. Currently Star is on a monthly release cycle; we expect to slow down to quarterly releases again sometime in 2013.

Steps to create a release

  1. Clone the git@github.com:rakudo/star repository.
      $ git clone git@github.com:rakudo/star
  2. Change to the star repository directory, and edit the first three lines of tools/star/Makefile to indicate the desired releases of Rakudo, NQP, and Parrot to use. Also change PARROT_REL to be "supported" or "devel" depending on the type of Parrot release.
      $ cd star
      $ vi tools/star/Makefile
  3. Run "make -f tools/star/Makefile" to populate the star directory with the needed tarballs and module repositories for building Rakudo Star:
      $ make -f tools/star/Makefile
  4. If there are any new modules to be added, use "git submodule" to add its repo to the modules/ directory. Also add the module directory name to the modules/MODULES.txt file.
      $ git submodule add git@github.com:user/acme-example modules/acme-example
      $ echo acme-example >>modules/MODULES.txt
      $ git commit . -m "Added acme-example to installed modules."
  5. Verify that all of the git submodules are at the desired commit for the Star release. To bring all modules up to the current 'master' branch, one can do
      # pull master in each submodule dir
      $ git submodule foreach git pull origin master
      # commit submodules state to star repo
      $ git commit modules
  6. If one doesn't already exist, create a release announcement in docs/announce/YYYY.MM.md . You can often use the previous release's file as a starting point, updating the release number, version information, name, etc. as appropriate. Be sure to pay attention to any changes listed in Rakudo's ChangeLog.
      $ vi docs/announce/YYYY.MM.md
      $ git add docs/announce/YYYY.MM.md
      $ git commit docs
  7. Update the release number in the README and Makefile.in files.
      $ vi README tools/build/Makefile.in
      $ git commit README tools/build/Makefile.in
  8. Make sure any locally modified files have been pushed back to github.
      $ git status
      $ git push
  9. Create a candidate release tarball:
      $ make -f tools/star/Makefile release VERSION=2012.08

    This will create a tarball rakudo-star-2012.08.tar.gz in the current directory.

  10. Unpack the tarball somewhere else, and do a test build/install:
      $ mkdir work
      $ cd work
      $ tar xvfz ../rakudo-star-2012.08.tar.gz
      $ cd rakudo-star-2012.08
      $ perl Configure.pl --gen-parrot
      $ make install
      $ make rakudo-test
      $ make rakudo-spectest
      $ make modules-test

    If there are failures in any of rakudo-test, rakudo-spectest, or modules-test, then do your best to fix them and return to step 8. If you're unable to fix any errors, then STOP the release process and DO NOT issue a release yet. File issue tickets (https://github.com/rakudo/star/issues) for the failing tests.

  11. Tag the release by its release month ("YYYY.MM").
      $ git tag -a -m"tag release YYYY.MM" YYYY.MM    # e.g. 2012.08
      $ git push --tags
  12. Upload the release tarball to http://rakudo.org/downloads/star:
     $ scp rakudo-star-2012.08.tar.gz rakudo@rakudo.org:public_html/downloads/star

    If you don't have permission to do this step, please ask one(pmichaud, jnthn, masak, PerlJam, tadzik, moritz) on #perl6 to do it for you.

  13. Publicize the release in the appropriate places. These include: * rakudo.org * perl6-users@perl.org, perl6-language@perl.org, perl6-compiler@perl.org, parrot-users@lists.parrot.org
  14. Add this release and your name to the list of releases at the end of this document (tools/star/release-guide.pod).
        $ vim tools/star/release-guide.pod
        $ git add tools/star/release-guide.pod
        $ git commit -m 'note YYYY.MM release in release-guide.pod
  15. You're done! Celebrate with the appropriate amount of fun.

List of Previous Star Releases

    Release         Release Manager
    =======         ===============

    2010.07         pmichaud
    2010.08         pmichaud
    2010.09         pmichaud
    2010.10         pmichaud
    2010.11         pmichaud
    2010.12         pmichaud

    2011.01         pmichaud
    2011.04         pmichaud
    2011.07         pmichaud

    2012.01         jnthn
    2012.02         jnthn
    2012.04         moritz
    2012.05         moritz
    2012.06         moritz
    2012.07         pmichaud
    2012.08         pmichaud
    2012.09         pmichaud
    2012.10         jnthn
    2012.11         moritz
    2012.12         moritz
    2013.01         moritz
    2013.02         moritz
Jump to Line
Something went wrong with that request. Please try again.