diff options
author | Naoum Hankache <naoum88@gmail.com> | 2020-02-26 20:14:39 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-26 20:14:39 +0300 |
commit | a6253c2b109538031b7c9b52cbd56adb266c4746 (patch) | |
tree | 1b349ba24e7732118d884b4122ef741f091e2704 /tools | |
parent | 139ba6333a8b7497b5349a6ed9fde963ea7a90e7 (diff) | |
parent | 34714c9ec604da31fc87a98f1f7f165ea50214d1 (diff) |
Merge pull request #144 from Tyil/master
Get Rakudo Star working for 2019.07.1
Diffstat (limited to 'tools')
-rw-r--r-- | tools/build/Makefile.in | 6 | ||||
-rw-r--r-- | tools/build/module-install.pl | 36 | ||||
-rw-r--r-- | tools/build/modules-test.pl | 60 | ||||
-rw-r--r-- | tools/lib/NQP/Configure.pm | 3 | ||||
-rw-r--r-- | tools/star/Makefile | 98 | ||||
-rw-r--r-- | tools/star/mac-dmg.pod | 142 | ||||
-rw-r--r-- | tools/star/release-guide.pod | 350 | ||||
-rw-r--r-- | tools/star/windows-msi.pod | 155 |
8 files changed, 144 insertions, 706 deletions
diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in index 7152691..29d5071 100644 --- a/tools/build/Makefile.in +++ b/tools/build/Makefile.in @@ -3,7 +3,7 @@ MOAR_DIR = moarvm NQP_DIR = nqp RAKUDO_DIR = rakudo -STAR_VERSION = 2019.03 +STAR_VERSION = 2020.01 # install location PREFIX_DIR = @prefix@ @@ -67,12 +67,12 @@ modules-install-m: rakudo-install modules-test: @backend_modules_test@ verbose-modules-test: @backend_modules_test@ -modules-test-j: modules-install-j +modules-test-j: $(PERL) tools/build/modules-test.pl $(CURDIR) $(DESTDIR)$(PERL6_J_INSTALL) $(MODULES) verbose-modules-test-j: modules-install-j $(PERL) tools/build/modules-test.pl --verbose $(CURDIR) $(DESTDIR)$(PERL6_J_INSTALL) $(MODULES) -modules-test-m: modules-install-m +modules-test-m: $(PERL) tools/build/modules-test.pl $(CURDIR) $(DESTDIR)$(PERL6_M_INSTALL) $(MODULES) verbose-modules-test-m: modules-install-m $(PERL) tools/build/modules-test.pl --verbose $(CURDIR) $(DESTDIR)$(PERL6_M_INSTALL) $(MODULES) diff --git a/tools/build/module-install.pl b/tools/build/module-install.pl index 9f7e038..eadb99e 100644 --- a/tools/build/module-install.pl +++ b/tools/build/module-install.pl @@ -2,21 +2,37 @@ use warnings; use strict; + my $perl6bin = shift @ARGV; my $zefbin = shift @ARGV; +my $exit = 0; +my $path_sep = $^O eq 'MSWin32' ? '\\' : '/'; -my $exit = 0; +while (<>) { + # Skip comments + next if /^\s*(#|$)/; -my $path_sep = "/"; -$path_sep = "\\" if ( $^O eq 'MSWin32' ); + # Extract only the module name from the current line + my ($module) = /(\S+)/; -while (<>) { - next if /^\s*(#|$)/; - my ($module) = /(\S+)/; - $exit ||= system $perl6bin, $zefbin, - '--/build-depends', '--/test-depends', '--/depends', - '--/p6c', '--/metacpan', '--/cpan', - '--force', 'install', "./modules$path_sep$module"; + # Create the command list + my @cmd = ( + $perl6bin, + $zefbin, + '--/build-depends', + '--/depends', + '--/test', + '--/test-depends', + '--force', + 'install', + "./modules$path_sep$module" + ); + + # Show the command that's going to be ran, for debugging purposes + printf "@cmd\n"; + + # Actually run the command + $exit ||= system "@cmd"; } exit $exit; diff --git a/tools/build/modules-test.pl b/tools/build/modules-test.pl index 396f066..c4b9d00 100644 --- a/tools/build/modules-test.pl +++ b/tools/build/modules-test.pl @@ -1,5 +1,8 @@ #! perl +use warnings; +use strict; + use Cwd; use Getopt::Long; @@ -7,19 +10,52 @@ GetOptions('verbose' => \my $verbose); my $base = shift @ARGV; my $perl6 = shift @ARGV; +my @failures; while (<>) { - next if /^\s*(#|$)/; - my ($moduledir) = /(\S+)/; - print "Testing modules/$moduledir with $perl6...\n"; - if (-d "$base/modules/$moduledir/t") { - chdir("$base/modules/$moduledir"); - system('prove', $verbose ? '-v' : (), '-e', $perl6, '-r', 't'); - } - else { - print "...no t/ directory found.\n"; - } - print "\n"; + # Skip comments + next if /^\s*(#|$)/; + + # Extract only the module name from the current line + my ($moduledir) = /(\S+)/; + + if (! -d "$base/modules/$moduledir/t") { + print "[" . getcwd . "] ...no t/ directory found.\n"; + next; + } + + # Run the tests through prove + chdir("$base/modules/$moduledir"); + + my @cmd = ( + 'prove', + $verbose ? '-v' : (), + '-e', $perl6, + '-r', + 't', + ); + + # Show the command that's going to be ran, for debugging purposes + print "[" . getcwd . "] @cmd\n"; + + # Actually run the command + my $exit = system "@cmd"; + + # Exit early if any errors occurred + if ($exit) { + push @failures, $_; + } + + print "\n"; } -0; +# If we reach this, no errors have been found +if (@failures) { + print "The following modules failed their tests:\n"; + + foreach (@failures) { + print "- $_\n"; + } + + exit 1; +} diff --git a/tools/lib/NQP/Configure.pm b/tools/lib/NQP/Configure.pm index 2f67bf1..b63fffb 100644 --- a/tools/lib/NQP/Configure.pm +++ b/tools/lib/NQP/Configure.pm @@ -221,8 +221,7 @@ sub gen_nqp { my $sdkroot = $options{'sdkroot'} || ''; my $startdir = cwd(); - my $PARROT_REVISION = 'nqp/tools/build/PARROT_REVISION'; - my $MOAR_REVISION = 'nqp/tools/build/MOAR_REVISION'; + my $MOAR_REVISION = 'nqp/tools/templates/MOAR_REVISION'; my (%impls, %need); diff --git a/tools/star/Makefile b/tools/star/Makefile index 661b299..b2d4673 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -2,20 +2,23 @@ # eg. 2017.07 etc. # Occasionally (mis-)used to pull in fixes (see 'lastmin-fixes.txt') # eg. 2017.07-9-gc0abee7 etc. -RAKUDO_VER = 2019.03.1 -NQP_VER = 2019.03 -MOAR_VER = 2019.03 +RAKUDO_VER = 2020.01 +NQP_VER = 2020.01 +MOAR_VER = 2020.01.1 STAR_REL = rakudo-star-$(VERSION) STAR_TGZ = $(STAR_REL).tar.gz -SRC_DIR = src +SRC_DIR = work/src +WORKDIR ?= $(shell pwd)/work/rakudo-star-$(VERSION) +RELEASE_DIR = $(shell pwd)/work/release RAKUDO_TGZ = rakudo-$(RAKUDO_VER).tar.gz RAKUDO_URL = https://rakudo.perl6.org/downloads/rakudo/$(RAKUDO_TGZ) +RAKUDO_URL = https://github.com/rakudo/rakudo/releases/download/$(RAKUDO_VER)/$(RAKUDO_TGZ) RAKUDO_SRC = $(SRC_DIR)/$(RAKUDO_TGZ) NQP_TGZ = nqp-$(NQP_VER).tar.gz -NQP_URL = https://rakudo.perl6.org/downloads/nqp/$(NQP_TGZ) +NQP_URL = https://github.com/perl6/nqp/releases/download/$(NQP_VER)/$(NQP_TGZ) NQP_SRC = $(SRC_DIR)/$(NQP_TGZ) MOAR_TGZ = MoarVM-$(MOAR_VER).tar.gz MOAR_URL = https://www.moarvm.org/releases/$(MOAR_TGZ) @@ -26,29 +29,27 @@ PREFIX = $(PERL) $(CURDIR)/tools/star/prefix.pl WGET = wget TAR = tar -all: rakudo nqp moar manifest - -always: +all: rakudo nqp moarvm manifest rakudo: nqp $(RAKUDO_SRC) - mkdir rakudo - $(TAR) -C rakudo --strip-components 1 -xvzf $(RAKUDO_SRC) + mkdir -p $(WORKDIR)/rakudo + $(TAR) -C $(WORKDIR)/rakudo --strip-components 1 -xzf $(RAKUDO_SRC) $(RAKUDO_SRC): mkdir -p $(SRC_DIR) $(WGET) $(RAKUDO_URL) -O $(RAKUDO_SRC) -nqp: moar $(NQP_SRC) - mkdir nqp - $(TAR) -C nqp --strip-components 1 -xvzf $(NQP_SRC) +nqp: moarvm $(NQP_SRC) + mkdir -p $(WORKDIR)/nqp + $(TAR) -C $(WORKDIR)/nqp --strip-components 1 -xzf $(NQP_SRC) $(NQP_SRC): mkdir -p $(SRC_DIR) $(WGET) $(NQP_URL) -O $(NQP_SRC) -moar: $(MOAR_SRC) - mkdir MoarVM - $(TAR) -C MoarVM --strip-components 1 -xvzf $(MOAR_SRC) +moarvm: $(MOAR_SRC) + mkdir -p $(WORKDIR)/MoarVM + $(TAR) -C $(WORKDIR)/MoarVM --strip-components 1 -xzf $(MOAR_SRC) $(MOAR_SRC): mkdir -p $(SRC_DIR) @@ -59,26 +60,59 @@ modules/DBIish/lib: git submodule init git submodule update -manifest: modules/DBIish/lib - echo MANIFEST >MANIFEST - git ls-files >>MANIFEST - $(PREFIX) rakudo/ rakudo/MANIFEST >>MANIFEST - $(PREFIX) nqp/ nqp/MANIFEST >>MANIFEST - $(PREFIX) MoarVM/ MoarVM/MANIFEST >>MANIFEST - git submodule foreach --quiet 'git ls-files | $(PREFIX) $$path/' >>MANIFEST - grep -v -f tools/star/MANIFEST.exclude MANIFEST >MANIFEST.1 - $(PERL) -n -e 'chomp; -f && print "$$_\n"' MANIFEST.1 >MANIFEST - sort -o MANIFEST MANIFEST - rm MANIFEST.1 +manifest: + printf "%s\n" MANIFEST >> "$(WORKDIR)/MANIFEST" + + # Add an assortment of files from this repository + git ls-files | grep -E '^docs' >> "$(WORKDIR)/MANIFEST" + git ls-files | grep -E '^modules' >> "$(WORKDIR)/MANIFEST" + git ls-files | grep -E '^ports' >> "$(WORKDIR)/MANIFEST" + git ls-files | grep -E '^tools' >> "$(WORKDIR)/MANIFEST" + + printf "%s\n" build_msi.bat >> "$(WORKDIR)/MANIFEST" + printf "%s\n" Configure.pl >> "$(WORKDIR)/MANIFEST" + printf "%s\n" LICENSE >> "$(WORKDIR)/MANIFEST" + printf "%s\n" README.md >> "$(WORKDIR)/MANIFEST" + + # Add the 3 core parts for Raku + cd -- "$(WORKDIR)" && $(PREFIX) rakudo/ rakudo/MANIFEST >> "$(WORKDIR)/MANIFEST" + cd -- "$(WORKDIR)" && $(PREFIX) nqp/ nqp/MANIFEST >> "$(WORKDIR)/MANIFEST" + cd -- "$(WORKDIR)" && $(PREFIX) MoarVM/ MoarVM/MANIFEST >> "$(WORKDIR)/MANIFEST" + + # Add ecosystem modules + git submodule foreach --quiet 'git ls-files | $(PREFIX) $$path/' >> $(WORKDIR)/MANIFEST + + # Remove explicitly removed files + grep -v -f tools/star/MANIFEST.exclude $(WORKDIR)/MANIFEST > $(WORKDIR)/MANIFEST.1 + mv -- "$(WORKDIR)/MANIFEST.1" "$(WORKDIR)/MANIFEST" + + # Clean up whitespace + $(PERL) -n -e 'chomp; print "$$_\n"' $(WORKDIR)/MANIFEST > $(WORKDIR)/MANIFEST.1 + mv -- "$(WORKDIR)/MANIFEST.1" "$(WORKDIR)/MANIFEST" + + # Sort the MANIFEST + sort -o $(WORKDIR)/MANIFEST $(WORKDIR)/MANIFEST patch: patch -p1 < patches/star-ver.patch -tarball: manifest patch +tarball: manifest [ -n "$(VERSION)" ] || ( echo "\nTry '$(MAKE) release VERSION=yyyy.mm'\n\n"; exit 1 ) - [ -d $(STAR_REL) ] || ln -s . $(STAR_REL) - $(PREFIX) $(STAR_REL)/ MANIFEST | \ - $(TAR) -zcv -T - -f $(STAR_TGZ) - rm $(STAR_REL) + + mkdir -p "$(RELEASE_DIR)" + cp -r modules "$(WORKDIR)/." + cp -r docs "$(WORKDIR)/." + cp -r ports "$(WORKDIR)/." + cp -r tools "$(WORKDIR)/." + cp LICENSE "$(WORKDIR)/." + cp bundle/README.md "$(WORKDIR)/." + cp bundle/build_msi.bat "$(WORKDIR)/." + cp bundle/Configure.pl "$(WORKDIR)/." + + cd -- work && $(PREFIX) $(STAR_REL)/ "$(WORKDIR)/MANIFEST" \ + | $(TAR) -zc -T - -f "$(RELEASE_DIR)/$(STAR_TGZ)" release: tarball + +clean: + rm -fr work diff --git a/tools/star/mac-dmg.pod b/tools/star/mac-dmg.pod deleted file mode 100644 index 7ebc64a..0000000 --- a/tools/star/mac-dmg.pod +++ /dev/null @@ -1,142 +0,0 @@ -=head1 Guide to building DMG packages - -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. The dmg packages are based -on these Star releases. - -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 -MoarVM. The goal is to balance end-user stability needs with -progress being made on the compiler, modules, and other runtime -components. - -=head2 Steps to create an DMG package - -A C<.dmg> is a file extension used for an Apple Disk Image which is the most -popular way of running an installer on the Mac desktop - -If this is your first time releasing, B<read the whole guide before -starting>. That way you can ask questions and clear up any confusions before -you're in the thick of it. - -If you have done this before, you might want to check for and read any changes -to this release guide since your last run. - -=over 4 - -=item Step 0 - -Download and install C<Xcode> from Apple if you don't already have the C<clang> C -compiler installed. This process was tested on OS X 10.11.x as a build system -using clang-700.1.76 and the result is known to run on as least far back as OS -X 10.9 (and probably further). - -=item Step 1 - -Use your browser to download the latest star release, replace YYYY.MM by year and month: -https://rakudo.perl6.org/downloads/star/rakudo-star-YYYY.MM.tar.gz - -Unpack this C<.tar.gz> to your hard disk. You will get a folder C<rakudo-star-YYYY.MM>, again -YYYY.MM is year and month of the star release. - -=item Step 2 - -Change the path to the directory created in the previous step, and run: - - cd ports/darwin_dmg - perl package_darwin_dmg.pl --build -v YYYY MM - -This should automatically compile the MoarVM version of star and all modules and create the C<.dmg> - -In theory this all that needs doing and you can jump to step 4 below. - -=item Step 3 - -Watch the scrollback for errors. - -If the build is interrupted you will have to manually C<make clean> in the top -level directory before rerunning the previous step. - -Note the C<--build> option will automatically delete the binary destination -directory of C</Applications/Rakudo> if it exists before running but leaves it in -place after finishing. - -Omitting the C<--build> option will just rebuild the C<.dmg> from C</Applications/Rakudo> which is useful when debugging the final stage of C<.dmg> build since it's much faster. - -=item Step 4 - -A correct build will create C<ports/darwin_dmg/Temp_build/Rakudo-Star-YYYY-MM.dmg> - -To sanity test - - open Temp_build/Rakudo-Star-YYYY-MM.dmg - -This should automount C</Volumes/Rakudo> and open a Finder window with a -background image of Camelia and "Drag the Rakudo Folder to Applications" -containing a README.txt, a Rakudo folder, Docs folder and a folder representing -a sym link to Applications. - -Delete the directory used to create the C<.dmg>. - - rm -rf /Applications/Rakudo - -Now dragging the C<Rakudo> folder to the Applications Link folder (with arrow) -should repopulate C</Applications/Rakudo>. - -Append your C<PATH> as suggested in the C<README.txt> and look for reasonable output -from the following kind of commands. - - perl6 -e "say 'hello'" - zef list --installed - p6doc -l - -=item Step 5 - -Stop the release process if you see serious issues with no obvious fix and post -them to the IRC channel or mailing list. If you alter scripts recommit them. - -=item Step 6 - -Generate a SHA256 sum: - - sha256sum rakudo-star-YYYY.MM.dmg | cut -f1 -d" " > rakudo-star-YYYY.MM.dmg.sha256.txt - -=item Step 7 - -Generate a GPG signature for the DMG file: - - gpg --armor --detach-sig rakudo-star-YYYY.MM.dmg - -This will create C<rakudo-star-YYYY.MM.dmg.asc>. - -=item Step 8 - -Upload the dmg and SHA256 to L<https://rakudo.perl6.org/downloads/star>: - - rsync -avz rakudo-star-YYYY.MM.dmg* rakudo@www.p6c.org:public_html/downloads/star - -If you don't have permission to do this step, please ask one(pmichaud, jnthn, -masak, PerlJam/perlpilot, tadzik, moritz) on C<#perl6> to do it for you. - -=item Step 9 - -Publicize the dmg packages in the appropriate places. These include: - -=over 4 - -=item * rakudo.org - -=item * #perl6 - -=back - -=item Step 10 - -You're done! Celebrate with the appropriate amount of fun. - -=back - -=cut diff --git a/tools/star/release-guide.pod b/tools/star/release-guide.pod deleted file mode 100644 index 584ee17..0000000 --- a/tools/star/release-guide.pod +++ /dev/null @@ -1,350 +0,0 @@ -=head1 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, or -MoarVM. 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 quarterly release cycle. - -=head2 Steps to create a release - -If this is your first time releasing, B<read the whole guide before -starting>. That way you can ask questions and clear up and confusions before -you're in the thick of it. - -If you have done this before, you might want to check for and read any changes -to this release guide since your last run. - -Any time this guide tells you to commit changes, you may also push them if you -wish to do so. Step 8 will make sure you do this regardless. - -=over 4 - -=item Step 0 - -Make sure you have a working C<perl6> binary in your C<$PATH>. Refer to -L<http://rakudo.org/how-to-get-rakudo/> for how to do that. The exact version -isn't very important at the moment, it just shouldn't be a year out of date. - -=item Step 1 - -Clone the git@github.com:rakudo/star repository. - - $ git clone git@github.com:rakudo/star - -If you already have a clone of rakudo/star, make sure it is in sync -with github: - - $ git checkout master - $ git pull origin master - $ git submodule sync - $ git submodule update --init --recursive - -Verify that - - $ git status - -reports a clean repository. - -=item Step 2 - -Change to the star repository directory and edit the first three -lines of F<tools/star/Makefile> to indicate the desired releases of -Rakudo, NQP, and MoarVM to use. - -Usually that means the last Rakudo release, the NQP version that is in the -released Rakudo's F<tools/build/NQP_REVISION> file, and the MoarVM version that -is in the F<tools/build/MOAR_REVISION> file that is included in the NQP -release. - - $ cd star - $ vi tools/star/Makefile - -=item Step 3 - -Run C<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 - -You may at times be prompted for your SSH key/pass combo. - -Assuming the Makefile ran successfully, you should now commit your changes. - - $ git commit tools - -=item Step 4 - -If there are any new modules to be added, use C<git submodule> to add -its repo to the modules/ directory. Also add the module directory -name to the C<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." - -=item Step 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 -C<master> branch, one can do: - - # pull master in each submodule dir - $ git submodule foreach git pull origin master - -Create a temporary file as a basis for the module changelog to be -included in release announcement below: - - $ git diff --submodule=log > /tmp/mod.txt - -Then you may commit your update of the submodules: - - # commit submodules state to star repo - $ git commit modules - -=item Step 6 - -If one doesn't already exist, create a release announcement in -C<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 - -The module changelog temporary file above can be used to help with -the corresponding section in the announcement. - -At this point it is strongly advised that you push your changes so far, to get -feedback on your announcement while you do other steps. - - $ git push - -=item Step 7 - -Update the release number in the C<README> and C<Makefile.in> files. - - $ vi README tools/build/Makefile.in - $ git commit README tools/build/Makefile.in - -=item Step 8 - -Make sure any locally modified files have been pushed -back to github. - - $ git status - $ git push - -=item Step 9 - -Create a candidate release tarball: - - $ make -f tools/star/Makefile release VERSION=2012.08 - -This will create a tarball C<rakudo-star-2012.08.tar.gz> in the -current directory. - -=item Step 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-moar - $ make install - $ make rakudo-test - $ make rakudo-spectest - $ make modules-test - -If there are failures in any of C<rakudo-test>, C<rakudo-spectest>, or -C<modules-test>, then do your best to fix them and return to step 8. - -STOP THE RELEASE PROCESS (i.e., do not issue a release) if there -are any errors that you're unable to fix. File issue tickets -(https://github.com/rakudo/star/issues) for failing tests -and report them to C<#perl6>. - -=item Step 11 - -Tag the release by its release month ("YYYY.MM"). - - $ git tag -s -a -m"tag release YYYY.MM" YYYY.MM # e.g. 2012.08 - $ git push --tags - -The C<-s> tells git to sign the release with your PGP/GPG key, so it will -likely ask you for the passphrase of your secret key. Note some versions of -git/gpg don't correctly prompt for passphrase or display a meaningful error -when it's absent. - -If you have no PGP key, you might need to -L<create one first|https://fedoraproject.org/wiki/Creating_GPG_Keys>. Should -that prove impossible, you can omit the C<-s> from the command line. - -Also sign the release tarball with GPG and a suitable key -eg. C<gpg --armor --detach-sig rakudo-star-2018.01.tar.gz> - -Generate a SHA256 sum eg. - - $ sha256sum rakudo-star-2018.01.tar.gz | cut -f1 -d" " > rakudo-star-2018.01.tar.gz.sha256.txt - -=item Step 12 - -Upload the release tarball to L<http://rakudo.org/downloads/star> and L<https://rakudo.perl6.org/downloads/star/>: - - $ scp rakudo-star-2012.08.tar.gz rakudo@rakudo.org:public_html/downloads/star - -Also upload the detached signature eg. C<rakudo-star-2018.01.tar.gz.asc> -and sha256 sum eg. C<rakudo-star-2018.01.tar.gz.sha256.txt> - -If you don't have permission to do this step, please ask one of the core devs -(pmichaud, jnthn, masak, PerlJam/perlpilot, tadzik, or moritz) on C<#perl6> to do -it for you. - -=item Step 13 - -Commit announcement to the rakudo.org repo automatically by running the following -command. You will need C<perl6> in the C<PATH> and to C<zef install WWW> if you don't -have it. - -You can also make and commit the post manually, but if you do, be sure -to add C<%% title:> and C<%% date:> metadate to the top of the file: - - cd $(mktemp -d) && - git clone git@github.com:perl6/rakudo.org/. && - ./push-latest-rakudo-star-announcement.p6 2018.01 - -You will also have to bump versions manually in C<templates/files.html.ep> in -the rakudo.org repo. - -Publicize the release in the appropriate places. These include: - -=over 4 - -=item * http://perl6.org/ - -=item * perl6-users@perl.org - -=item * perl6-language@perl.org - -=item * perl6-compiler@perl.org - -=item * http://en.wikipedia.org/wiki/Rakudo_Perl_6 (latest release date is mentioned in the main text) - -=item * http://en.wikipedia.org/wiki/Perl_6 - -=back - -Actively ask others to advertise the release as well. This includes their social -media accounts and blogs. Notable places include: - -=over 4 - -=item * L<http://blogs.perl.org/> - -=item * L<Perl 6 Facebook Page|https://www.facebook.com/groups/1595443877388632/> - -=item * Reddit: L<r/perl|https://www.reddit.com/r/perl/>, L<r/perl6|https://www.reddit.com/r/perl6/>, -and L<r/programming|https://www.reddit.com/r/programming/> - -=item * L<Hacker News|https://news.ycombinator.com/news> - -=item * L<Rakudo's Twitter account|https://twitter.com/rakudoperl> - -=back - -=item Step 14 - -Add this release and your name to the list of releases at the end of this -document (F<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 - -=item Step 15 - -You're done! Celebrate with the appropriate amount of fun. - -=back - -=head2 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 - 2013.05 pmichaud - 2013.08 moritz - 2013.09 moritz - 2013.10 lue - 2013.11 moritz - 2013.12 lue - - 2014.01 tadzik - 2014.03 FROGGS - 2014.04 jnthn - 2014.08 FROGGS - 2014.09 FROGGS - 2014.12 moritz - - 2015.01 moritz - 2015.02 moritz - 2015.03 moritz - 2015.06 FROGGS - 2015.07 moritz - 2015.09 moritz - 2015.11 moritz - - 2016.01 FROGGS - 2016.04 stmuk - 2016.07 stmuk - 2016.10 stmuk - 2016.11 stmuk - - 2017.01 stmuk - 2017.04 stmuk - 2017.07 stmuk - 2017.10 stmuk - - 2018.01 stmuk - 2018.04 stmuk - 2018.06 stmuk - 2018.10 stmuk - - 2019.03 hankache, clarkema - -=cut diff --git a/tools/star/windows-msi.pod b/tools/star/windows-msi.pod deleted file mode 100644 index 8674c22..0000000 --- a/tools/star/windows-msi.pod +++ /dev/null @@ -1,155 +0,0 @@ -=head1 Guide to build MSI packages - -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. The MSI packages are based -on these Star releases. - -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 -MoarVM. The goal is to balance end-user stability needs with -progress being made on the compiler, modules, and other runtime -components. - -=head2 Steps to create an MSI package - -If this is your first time releasing, B<read the whole guide before starting>. -That way you can ask questions and clear up and confusions before you're in the -thick of it. - -If you have done this before, you might want to check for and read any changes -to this release guide since your last run. - -=over 4 - -=item Step 0 - -Download and install WiX Toolset, if needed adjust the PATH environment -variable to point to its bin directory. The tools C<heat>, C<candle> and C<light> -should be available now. - -Install ActivePerl and make sure it is in C<PATH>. C<perl -V> should give a -sensible output. - -If you do not have the C compiler C<cl> installed yet, install the Microsoft -Visual C++ Express for version 2010 or perhaps newer. - -Finally, install the Windows Software Development Kit (SDK) for your Windows -version. - -An alternative to ActivePerl and the Microsoft toolchain is to use Strawberry -Perl which ships with GCC and a mingw toolchain. Run these tools under C<cmd.exe> -and replace all following references to C<nmake> by C<gmake>. - -=item Step 1 - -Make sure there is no C<C:\rakudo> directory, as this will be our installation -target. If there is one, remove it, perhaps after creating backup. - -=item Step 2 - -Use your browser to download the latest star release, replace YYYY.MM by year -and month: https://rakudo.perl6.org/downloads/star/rakudo-star-YYYY.MM.tar.gz - -Unpack this C<.tar.gz> to your hard disk. You will get a folder -C<rakudo-star-YYYY.MM>, again YYYY.MM is year and month of the star release. - -=item Step 3 - -Run the Command Line for Visual Studio from the start menu. Alternatively you -can run C<cmd.exe> followed by C<vcvars32.bat>. - -In either case, this should return a valid path: - - echo %VSINSTALLDIR% - -=item Step 4 - -Change the path to the directory created in step 2, and run: - - perl Configure.pl --prefix=C:\rakudo --gen-moar - -This will create a Makefile and will start to compile the MoarVM backend. - -=item Step 5 - -Compile NQP and Rakudo by doing: - - nmake install - -This will also precompile all modules and install binaries like C<zef>. - -=item Step 6 - -Finally create the MSI package. - - nmake msi - -(Note if you are using Strawberry Perl's GCC use C<build_msi> at this point) - -Depending on your architecture you either rename that msi to: - - rakudo-star-YYYY.MM-x86 (no JIT).msi - -or: - - rakudo-star-YYYY.MM-x86_64 (JIT).msi - - -=item Step 7 - -Delete your C<C:\rakudo> folder and make sure it got deleted. Then run the just -created installer, and do some sanity tests: - - perl6 -e "say $*KERNEL.bits" - zef list --installed - zef install openssl - -If you are using Strawberry Perl then move its directory temporarily to a -different name in order to check all DDLs are correctly installed in the -C<C:\rakudo> folder. - -=item Step 8 - -Stop the release process if step 7 failed. Post any issues to the irc channel -or mailing list. - -=item Step 9 - -Generate a SHA256 sum eg. - - $ sha256sum "rakudo-star-YYYY.MM-x86_64 (JIT).msi" | cut -f1 -d" " > "rakudo-star-YYYY.MM-x86_64 (JIT).msi.sha256.txt" - -=item Step 10 - -Upload the msi package to L<http://rakudo.org/downloads/star> and L<https://rakudo.perl6.org/downloads/star/>: - - scp "rakudo-star-YYYY.MM-x86 (no JIT).msi" rakudo@rakudo.org:public_html/downloads/star - scp "rakudo-star-YYYY.MM-x86 (no JIT).msi" rakudo@www.p6c.org:public_html/downloads/star - -If you don't have permission to do this step, please ask one(pmichaud, jnthn, -masak, PerlJam/perlpilot, tadzik, moritz) on C<#perl6> to do it for you. - -Also upload the sha256 sum eg. C<rakudo-star-YYYY.MM-x86_64 (JIT).msi.sha256.txt> - -=item Step 11 - -Publicize the msi packages in the appropriate places. These include: - -=over 4 - -=item * rakudo.org - -=item * #perl6 - -=back - -=item Step 12 - -You're done! Celebrate with the appropriate amount of fun. - -=back - -=cut |