diff docs/release_guide.md @ 0:2cf249471370

convert mercurial for git
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Tue, 08 May 2018 16:09:12 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/release_guide.md	Tue May 08 16:09:12 2018 +0900
@@ -0,0 +1,81 @@
+# MoarVM Release Guide
+
+## Versions
+
+MoarVM currently has a monthly release cycle, with releases made in time for
+the month's NQP and Rakudo release. Version numbers are simply YYYY.MM. For
+example, the January 2014 release is 2014.01. If any bugfix releases need to
+be made, they should be numbered as 2041.01.1, 2041.01.2, etc.
+
+## Making a release
+
+1. Make sure that you are on the MoarVM commit you want to make a release
+   from, and that your status is clean.
+
+2. Ensure that NQP and Rakudo will build and that `make test` in each is
+   clean. Also run `make spectest` in Rakudo; discuss any failures you see
+   with the Rakudo developers.
+
+3. If possible, run NQP and Rakudo `make test` and Rakudo `make spectest` when
+   `#define MVM_DEBUG_NFG 1` and `#define MVM_DEBUG_NFG_STRICT 1` in src/strings/ops.h
+   after recompiling to make sure there have been no normalization bugs
+   introduced.
+
+4. Update docs/ChangeLog with any significant changes since the previous release.
+
+5. Update the VERSION file with the release name.
+
+6. Run `make release VERSION=2017.10`, substituting the correct version name.
+
+7. Take the MoarVM-2017.10.tar.gz file generated by step 6, copy it to a separate directory,
+   extract it, and then in that directory do:
+
+        perl Configure.pl --prefix=install
+        make install
+        install/bin/moar --version
+
+8. Provided step 5 and 6 work, you have a release! You need to setup git to be
+   able to sign your commits. The -a option adds a tag while the -s makes sure
+   the tag is signed. Even if your commits are signed by default, you will need
+   the -s option as well.
+
+        git tag -as 2017.10
+
+9. Run `git verify-tag 2017.10` to make sure the signature is valid and the tag
+   was actually signed.
+
+10. Upload it by committing the tar file
+   to https://github.com/MoarVM/moarvm.org/ in the releases directory.
+
+11. Make sure you have the Text::Markdown Perl 5 module and run:
+
+        ./tools/moarvm.org_releases.pl > ../moarvm.org/releases.html
+
+   It should output to STDERR all the versions it found in ChangeLog make sure
+   the most recent release appears first and all releases going back to 2014.01
+   appear.
+
+12. Manually edit moarvm.org/index.html to have the DL link and mention the most
+    recent release.
+    Changes need to be made on lines:
+  - 36: Large text
+  - 38: Description text
+  - 41: Download link
+
+13. Create a gpg signature
+
+         gpg --detach-sign --armor MoarVM-2018.04.tar.gz
+
+   Verify the signature:
+         gpg --verify MoarVM-2018.04.tar.gz.asc
+
+14. Copy the tar.gz and the signature:
+
+         cp MoarVM-2018.04.tar.gz MoarVM-2018.04.tar.gz.asc ../moarvm.org/releases
+
+15. Optionally, update the ports/macports/Portfile to reflect this latest
+   version, and open a ticket at https://trac.macports.org/newticket to get
+   the macport updated. (For now, just make Coke do it.)
+
+16. Do something fun to celebrate. Like watching nyan cat, or having a beer. Or
+   why not both?