From 70e269a12e0c099358c4b20759cb7f593027b102 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 25 Oct 2019 12:08:04 +0200 Subject: Update to 2019.07 --- tools/star/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/star/Makefile b/tools/star/Makefile index 661b299..5053d54 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -2,9 +2,9 @@ # 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 = 2019.07 +NQP_VER = 2019.07 +MOAR_VER = 2019.07 STAR_REL = rakudo-star-$(VERSION) STAR_TGZ = $(STAR_REL).tar.gz -- cgit v1.1 From 94f9a92bbde88a341cab3af0962e23cf82ef8e2d Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 25 Oct 2019 12:09:37 +0200 Subject: Update modules to their latest version --- modules/DBIish | 2 +- modules/JSON-Class | 2 +- modules/JSON-Marshal | 2 +- modules/License-SPDX | 2 +- modules/META6 | 2 +- modules/Pod-To-HTML | 2 +- modules/app-prove6 | 2 +- modules/datetime-parse | 2 +- modules/debugger-ui-commandline | 2 +- modules/doc | 2 +- modules/getopt-long6 | 2 +- modules/http-useragent | 2 +- modules/json_fast | 2 +- modules/libdigest-perl6 | 2 +- modules/p6-pod-load | 2 +- modules/perl6-Test-Output | 2 +- modules/perl6-lwp-simple | 2 +- modules/tap-harness6 | 2 +- modules/test-mock | 2 +- modules/uri | 2 +- modules/zef | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/modules/DBIish b/modules/DBIish index 6060896..1131284 160000 --- a/modules/DBIish +++ b/modules/DBIish @@ -1 +1 @@ -Subproject commit 606089631fdbfc526dd86eac7070d736951c7869 +Subproject commit 1131284aa434b630e1ee7bd2602cf5cc73f78c9a diff --git a/modules/JSON-Class b/modules/JSON-Class index 691e591..13b01e7 160000 --- a/modules/JSON-Class +++ b/modules/JSON-Class @@ -1 +1 @@ -Subproject commit 691e59138925d9bfd9130abcabbe5b2d2913f5a4 +Subproject commit 13b01e7c831d6c1dba4ebe1104c8c87711c4f72d diff --git a/modules/JSON-Marshal b/modules/JSON-Marshal index c40bec6..4922642 160000 --- a/modules/JSON-Marshal +++ b/modules/JSON-Marshal @@ -1 +1 @@ -Subproject commit c40bec636cc5948932fa467841725c93e30db328 +Subproject commit 492264295dd88aa7753048c46edce3f546ad3994 diff --git a/modules/License-SPDX b/modules/License-SPDX index 4f43560..6e7d547 160000 --- a/modules/License-SPDX +++ b/modules/License-SPDX @@ -1 +1 @@ -Subproject commit 4f435605326fe8530917d0fdc0e64c5d22b30666 +Subproject commit 6e7d5477a59b364317bee162eb1b00ef8884a25a diff --git a/modules/META6 b/modules/META6 index 04fc2e8..d40ed95 160000 --- a/modules/META6 +++ b/modules/META6 @@ -1 +1 @@ -Subproject commit 04fc2e8ea2c428cb30fdcbad9f4455af235896ba +Subproject commit d40ed95d205a7dfecb7b7e3edd5b67c37ade4f3d diff --git a/modules/Pod-To-HTML b/modules/Pod-To-HTML index 98d16f6..8ddda65 160000 --- a/modules/Pod-To-HTML +++ b/modules/Pod-To-HTML @@ -1 +1 @@ -Subproject commit 98d16f6aac7ec45e0902e23db347c1f153f0e5f4 +Subproject commit 8ddda65e0504ef2ca3f21c17f611aca00011dcce diff --git a/modules/app-prove6 b/modules/app-prove6 index ace4c7c..c3e6232 160000 --- a/modules/app-prove6 +++ b/modules/app-prove6 @@ -1 +1 @@ -Subproject commit ace4c7c758084d5ae62519cc072f3b6937721d60 +Subproject commit c3e62325e3400fc6147b27682a967568e1027a7f diff --git a/modules/datetime-parse b/modules/datetime-parse index ab2401b..acf2f4f 160000 --- a/modules/datetime-parse +++ b/modules/datetime-parse @@ -1 +1 @@ -Subproject commit ab2401b046dc9ea893f8e3282e497136c9399f0e +Subproject commit acf2f4f493891d3accdc25e8209ce275899d5dd2 diff --git a/modules/debugger-ui-commandline b/modules/debugger-ui-commandline index f81ab63..a18de77 160000 --- a/modules/debugger-ui-commandline +++ b/modules/debugger-ui-commandline @@ -1 +1 @@ -Subproject commit f81ab6323f1fb1051aa750e414c75797e6b1bb00 +Subproject commit a18de77df33b9189f093511b6b6249230cd6dc45 diff --git a/modules/doc b/modules/doc index 99c20ef..cfa072a 160000 --- a/modules/doc +++ b/modules/doc @@ -1 +1 @@ -Subproject commit 99c20ef5b400cdb1073fdcab2133f9cffcd8d2b3 +Subproject commit cfa072a239efb33d9517a21534b561cc5f24c998 diff --git a/modules/getopt-long6 b/modules/getopt-long6 index 6f6fb5e..2f83c23 160000 --- a/modules/getopt-long6 +++ b/modules/getopt-long6 @@ -1 +1 @@ -Subproject commit 6f6fb5e83916038ba36483c69fa0fc23bf6c43f4 +Subproject commit 2f83c23fac987fbabcb4bbcc0ee386edff7a27a7 diff --git a/modules/http-useragent b/modules/http-useragent index cfdfc48..c8c96b4 160000 --- a/modules/http-useragent +++ b/modules/http-useragent @@ -1 +1 @@ -Subproject commit cfdfc48c55d312049f90f1db61042718c1de9908 +Subproject commit c8c96b4fef7f4e3146153a6dec528db9d692c47e diff --git a/modules/json_fast b/modules/json_fast index 5ce76c0..3a29ede 160000 --- a/modules/json_fast +++ b/modules/json_fast @@ -1 +1 @@ -Subproject commit 5ce76c039dc143fa9a068f1dfa47b42e58046821 +Subproject commit 3a29ede8ec738b185a71f11b462cbb63bc8b8b70 diff --git a/modules/libdigest-perl6 b/modules/libdigest-perl6 index 39bb469..42ba6be 160000 --- a/modules/libdigest-perl6 +++ b/modules/libdigest-perl6 @@ -1 +1 @@ -Subproject commit 39bb469a81485ede064de7c7aa9284d1c4b327c7 +Subproject commit 42ba6bef6ca5a9e532ad1436465df7af0cd5f70c diff --git a/modules/p6-pod-load b/modules/p6-pod-load index 5a1a2ff..53df221 160000 --- a/modules/p6-pod-load +++ b/modules/p6-pod-load @@ -1 +1 @@ -Subproject commit 5a1a2ffdf881bdb9c21ea8e42bb1ee2e211ac5c7 +Subproject commit 53df2215d8e9980fde1308b4f8e0e5a28edef212 diff --git a/modules/perl6-Test-Output b/modules/perl6-Test-Output index 32f2a33..16bafe1 160000 --- a/modules/perl6-Test-Output +++ b/modules/perl6-Test-Output @@ -1 +1 @@ -Subproject commit 32f2a33cc94b1aa137fe30a1d881ad573652642d +Subproject commit 16bafe1f6d0e5a83b73563d4afd8ced097f559ef diff --git a/modules/perl6-lwp-simple b/modules/perl6-lwp-simple index 46d3fdb..eb48ab9 160000 --- a/modules/perl6-lwp-simple +++ b/modules/perl6-lwp-simple @@ -1 +1 @@ -Subproject commit 46d3fdb698b5ec0cd819e533abf2e8d235f18765 +Subproject commit eb48ab98b3422b40cd0def8faa882abb9184c265 diff --git a/modules/tap-harness6 b/modules/tap-harness6 index e1e1d22..4b27221 160000 --- a/modules/tap-harness6 +++ b/modules/tap-harness6 @@ -1 +1 @@ -Subproject commit e1e1d221ed7e3d15d096ced64d1976f489a9369e +Subproject commit 4b272219941a75809774d6a382d615bfb7779de4 diff --git a/modules/test-mock b/modules/test-mock index bfa37f6..1130427 160000 --- a/modules/test-mock +++ b/modules/test-mock @@ -1 +1 @@ -Subproject commit bfa37f639d42796fcd21ab477d294a054bf22a18 +Subproject commit 1130427f4d9f3866fa39e113251bb142d7fa5cc8 diff --git a/modules/uri b/modules/uri index c5f7d74..abe8c9b 160000 --- a/modules/uri +++ b/modules/uri @@ -1 +1 @@ -Subproject commit c5f7d74feacb752e2dcfb07b17006e24fb473063 +Subproject commit abe8c9bb65947760cb656c6c154f466cd87f6e57 diff --git a/modules/zef b/modules/zef index a56b65a..9db010a 160000 --- a/modules/zef +++ b/modules/zef @@ -1 +1 @@ -Subproject commit a56b65a120d27e2dfb6c470e5f179993ef5c8c95 +Subproject commit 9db010a4f32c4af866832c3979d0fcf5211a64a6 -- cgit v1.1 From 192a6aa228620eda3435a6a55f51cffa47e1d6ec Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 25 Oct 2019 12:10:42 +0200 Subject: Add release announcement --- docs/announce/2019.07.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 docs/announce/2019.07.md diff --git a/docs/announce/2019.07.md b/docs/announce/2019.07.md new file mode 100644 index 0000000..dfe2a37 --- /dev/null +++ b/docs/announce/2019.07.md @@ -0,0 +1,4 @@ +# Rakudo Star (2019.07) + +This is a test release. + -- cgit v1.1 From e6540c6202405d599736f2c6cb428823031142fd Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 25 Oct 2019 12:11:35 +0200 Subject: Set release version --- tools/build/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in index 7152691..59f9480 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 = 2019.07 # install location PREFIX_DIR = @prefix@ -- cgit v1.1 From 9f30d89eb842c5a926b8f07e3eb1bb8b8ef453b4 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 13:16:09 +0100 Subject: Use --/test for module installations --- tools/build/module-install.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build/module-install.pl b/tools/build/module-install.pl index 9f7e038..bba3234 100644 --- a/tools/build/module-install.pl +++ b/tools/build/module-install.pl @@ -16,7 +16,7 @@ while (<>) { $exit ||= system $perl6bin, $zefbin, '--/build-depends', '--/test-depends', '--/depends', '--/p6c', '--/metacpan', '--/cpan', - '--force', 'install', "./modules$path_sep$module"; + '--force', '--/test', 'install', "./modules$path_sep$module"; } exit $exit; -- cgit v1.1 From 176e22fe71baecd761a4af70ad0247e641f170ed Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 14:34:04 +0100 Subject: Attempt to build this for GitLab CI --- .gitlab-ci.yml | 28 ++++++++++++++++++++++++++++ tools/star/Makefile | 6 +++--- 2 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..f8cbbb8 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,28 @@ +stages: + - Build + - Release + +#moar: +# stage: Build +# image: alpine:latest +# before_script: +# - apk add --no-cache bash build-base git perl +# script: +# - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar +# artifacts: +# paths: +# - /usr/local + +tarball: + stage: Release + image: registry.gitlab.com/tyil/docker-perl6:alpine-dev-latest + before_script: + - apk add --no-cache git + script: + - git submodule sync + - git submodule update --init --recursive + - git submodule foreach git pull origin master + - make -f tools/star/Makefile release VERSION=$CI_COOMIT_REF_NAME + artifacts: + paths: + - release diff --git a/tools/star/Makefile b/tools/star/Makefile index 5053d54..0026a5c 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -74,11 +74,11 @@ manifest: modules/DBIish/lib 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) + mkdir -p "release" + $(PREFIX) $(STAR_REL)/ MANIFEST | $(TAR) -zcv -T - -f "release/$(STAR_TGZ)" rm $(STAR_REL) release: tarball -- cgit v1.1 From 4c5bdfbe7dab4f62f269f6e9ff5e434f234a1bc8 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 16:04:34 +0100 Subject: Normalize module setup --- .gitmodules | 296 +++++++++++++++++++------------------- modules/App::Prove6 | 1 + modules/DateTime::Format | 1 + modules/DateTime::Parse | 1 + modules/Debugger::UI::CommandLine | 1 + modules/Digest | 1 + modules/Digest::MD5 | 1 + modules/File::Directory::Tree | 1 + modules/File::Find | 1 + modules/File::Temp | 1 + modules/File::Which | 1 + modules/Getopt::Long | 1 + modules/Grammar-Profiler-Simple | 1 - modules/Grammar::Debugger | 1 + modules/Grammar::Profiler::Simple | 1 + modules/HTTP::Easy | 1 + modules/HTTP::Status | 1 + modules/HTTP::UserAgent | 1 + modules/IO::Capture::Simple | 1 + modules/IO::Socket::SSL | 1 + modules/IO::String | 1 + modules/JSON-Class | 1 - modules/JSON-Marshal | 1 - modules/JSON-Name | 1 - modules/JSON-Unmarshal | 1 - modules/JSON::Class | 1 + modules/JSON::Fast | 1 + modules/JSON::Marshal | 1 + modules/JSON::Name | 1 + modules/JSON::RPC | 1 + modules/JSON::Tiny | 1 + modules/JSON::Unmarshal | 1 + modules/LWP::Simple | 1 + modules/LibraryMake | 1 + modules/License-SPDX | 1 - modules/License::SPDX | 1 + modules/MIME::Base64 | 1 + modules/MODULES.txt | 107 +++++++------- modules/NativeHelpers-Blob | 1 - modules/NativeHelpers::Blob | 1 + modules/OO::Monitors | 1 + modules/OpenSSL | 1 + modules/Perl6-MIME-Base64 | 1 - modules/Pod-To-HTML | 1 - modules/Pod::Load | 1 + modules/Pod::To::BigPage | 1 + modules/Pod::To::HTML | 1 + modules/SVG | 1 + modules/SVG::Plot | 1 + modules/Shell::Command | 1 + modules/TAP | 1 + modules/Temp::Path | 1 + modules/Template-Mojo | 1 - modules/Template::Mojo | 1 + modules/Template::Mustache | 1 + modules/Terminal-ANSIColor | 1 - modules/Terminal::ANSIColor | 1 + modules/Test-META | 1 - modules/Test::META | 1 + modules/Test::Mock | 1 + modules/Test::Output | 1 + modules/Test::Util::ServerPort | 1 + modules/Test::When | 1 + modules/Testo | 1 + modules/URI | 1 + modules/XML::Writer | 1 + modules/app-prove6 | 1 - modules/datetime-parse | 1 - modules/debugger-ui-commandline | 1 - modules/doc | 1 - modules/file-find | 1 - modules/getopt-long6 | 1 - modules/grammar-debugger | 1 - modules/http-useragent | 1 - modules/io-capture-simple | 1 - modules/io-socket-ssl | 1 - modules/json | 1 - modules/json_fast | 1 - modules/jsonrpc | 1 - modules/libdigest-perl6 | 1 - modules/library-make | 1 - modules/oo-monitors | 1 - modules/openssl | 1 - modules/p6-File-Temp | 1 - modules/p6-Template-Mustache | 1 - modules/p6-file-directory-tree | 1 - modules/p6-io-string | 1 - modules/p6-pod-load | 1 - modules/p6doc | 1 + modules/perl6-Temp-Path | 1 - modules/perl6-Test-Output | 1 - modules/perl6-Test-When | 1 - modules/perl6-Testo | 1 - modules/perl6-datetime-format | 1 - modules/perl6-digest-md5 | 1 - modules/perl6-file-which | 1 - modules/perl6-http-easy | 1 - modules/perl6-http-status | 1 - modules/perl6-lwp-simple | 1 - modules/perl6-pod-to-bigpage | 1 - modules/shell-command | 1 - modules/svg | 1 - modules/svg-plot | 1 - modules/tap-harness6 | 1 - modules/test-mock | 1 - modules/test-util-serverport | 1 - modules/uri | 1 - modules/xml-writer | 1 - 108 files changed, 254 insertions(+), 255 deletions(-) create mode 160000 modules/App::Prove6 create mode 160000 modules/DateTime::Format create mode 160000 modules/DateTime::Parse create mode 160000 modules/Debugger::UI::CommandLine create mode 160000 modules/Digest create mode 160000 modules/Digest::MD5 create mode 160000 modules/File::Directory::Tree create mode 160000 modules/File::Find create mode 160000 modules/File::Temp create mode 160000 modules/File::Which create mode 160000 modules/Getopt::Long delete mode 160000 modules/Grammar-Profiler-Simple create mode 160000 modules/Grammar::Debugger create mode 160000 modules/Grammar::Profiler::Simple create mode 160000 modules/HTTP::Easy create mode 160000 modules/HTTP::Status create mode 160000 modules/HTTP::UserAgent create mode 160000 modules/IO::Capture::Simple create mode 160000 modules/IO::Socket::SSL create mode 160000 modules/IO::String delete mode 160000 modules/JSON-Class delete mode 160000 modules/JSON-Marshal delete mode 160000 modules/JSON-Name delete mode 160000 modules/JSON-Unmarshal create mode 160000 modules/JSON::Class create mode 160000 modules/JSON::Fast create mode 160000 modules/JSON::Marshal create mode 160000 modules/JSON::Name create mode 160000 modules/JSON::RPC create mode 160000 modules/JSON::Tiny create mode 160000 modules/JSON::Unmarshal create mode 160000 modules/LWP::Simple create mode 160000 modules/LibraryMake delete mode 160000 modules/License-SPDX create mode 160000 modules/License::SPDX create mode 160000 modules/MIME::Base64 delete mode 160000 modules/NativeHelpers-Blob create mode 160000 modules/NativeHelpers::Blob create mode 160000 modules/OO::Monitors create mode 160000 modules/OpenSSL delete mode 160000 modules/Perl6-MIME-Base64 delete mode 160000 modules/Pod-To-HTML create mode 160000 modules/Pod::Load create mode 160000 modules/Pod::To::BigPage create mode 160000 modules/Pod::To::HTML create mode 160000 modules/SVG create mode 160000 modules/SVG::Plot create mode 160000 modules/Shell::Command create mode 160000 modules/TAP create mode 160000 modules/Temp::Path delete mode 160000 modules/Template-Mojo create mode 160000 modules/Template::Mojo create mode 160000 modules/Template::Mustache delete mode 160000 modules/Terminal-ANSIColor create mode 160000 modules/Terminal::ANSIColor delete mode 160000 modules/Test-META create mode 160000 modules/Test::META create mode 160000 modules/Test::Mock create mode 160000 modules/Test::Output create mode 160000 modules/Test::Util::ServerPort create mode 160000 modules/Test::When create mode 160000 modules/Testo create mode 160000 modules/URI create mode 160000 modules/XML::Writer delete mode 160000 modules/app-prove6 delete mode 160000 modules/datetime-parse delete mode 160000 modules/debugger-ui-commandline delete mode 160000 modules/doc delete mode 160000 modules/file-find delete mode 160000 modules/getopt-long6 delete mode 160000 modules/grammar-debugger delete mode 160000 modules/http-useragent delete mode 160000 modules/io-capture-simple delete mode 160000 modules/io-socket-ssl delete mode 160000 modules/json delete mode 160000 modules/json_fast delete mode 160000 modules/jsonrpc delete mode 160000 modules/libdigest-perl6 delete mode 160000 modules/library-make delete mode 160000 modules/oo-monitors delete mode 160000 modules/openssl delete mode 160000 modules/p6-File-Temp delete mode 160000 modules/p6-Template-Mustache delete mode 160000 modules/p6-file-directory-tree delete mode 160000 modules/p6-io-string delete mode 160000 modules/p6-pod-load create mode 160000 modules/p6doc delete mode 160000 modules/perl6-Temp-Path delete mode 160000 modules/perl6-Test-Output delete mode 160000 modules/perl6-Test-When delete mode 160000 modules/perl6-Testo delete mode 160000 modules/perl6-datetime-format delete mode 160000 modules/perl6-digest-md5 delete mode 160000 modules/perl6-file-which delete mode 160000 modules/perl6-http-easy delete mode 160000 modules/perl6-http-status delete mode 160000 modules/perl6-lwp-simple delete mode 160000 modules/perl6-pod-to-bigpage delete mode 160000 modules/shell-command delete mode 160000 modules/svg delete mode 160000 modules/svg-plot delete mode 160000 modules/tap-harness6 delete mode 160000 modules/test-mock delete mode 160000 modules/test-util-serverport delete mode 160000 modules/uri delete mode 160000 modules/xml-writer diff --git a/.gitmodules b/.gitmodules index 5d1be8c..555b6eb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,177 +1,177 @@ -[submodule "modules/debugger-ui-commandline"] - path = modules/debugger-ui-commandline - url = git://github.com/jnthn/rakudo-debugger -[submodule "modules/xml-writer"] - path = modules/xml-writer - url = git://github.com/masak/xml-writer -[submodule "modules/svg"] - path = modules/svg - url = git://github.com/moritz/svg -[submodule "modules/svg-plot"] - path = modules/svg-plot - url = git://github.com/moritz/svg-plot -[submodule "modules/test-mock"] - path = modules/test-mock - url = git://github.com/jnthn/test-mock -[submodule "modules/Grammar-Profiler-Simple"] - path = modules/Grammar-Profiler-Simple - url = git://github.com/perlpilot/Grammar-Profiler-Simple -[submodule "modules/grammar-debugger"] - path = modules/grammar-debugger - url = git://github.com/jnthn/grammar-debugger -[submodule "modules/json"] - path = modules/json - url = git://github.com/moritz/json -[submodule "modules/perl6-digest-md5"] - path = modules/perl6-digest-md5 - url = git://github.com/cosimo/perl6-digest-md5 -[submodule "modules/perl6-http-status"] - path = modules/perl6-http-status - url = git://github.com/supernovus/perl6-http-status -[submodule "modules/perl6-http-easy"] - path = modules/perl6-http-easy - url = git://github.com/supernovus/perl6-http-easy -[submodule "modules/Template-Mojo"] - path = modules/Template-Mojo - url = git://github.com/tadzik/Template-Mojo +[submodule "modules/Debugger::UI::CommandLine"] + path = modules/Debugger::UI::CommandLine + url = git://github.com/jnthn/rakudo-debugger.git +[submodule "modules/XML::Writer"] + path = modules/XML::Writer + url = git://github.com/masak/xml-writer.git +[submodule "modules/SVG"] + path = modules/SVG + url = git://github.com/moritz/svg.git +[submodule "modules/SVG::Plot"] + path = modules/SVG::Plot + url = git://github.com/moritz/svg-plot.git +[submodule "modules/Test::Mock"] + path = modules/Test::Mock + url = git://github.com/jnthn/test-mock.git +[submodule "modules/Grammar::Profiler::Simple"] + path = modules/Grammar::Profiler::Simple + url = git://github.com/perlpilot/Grammar-Profiler-Simple.git +[submodule "modules/Grammar::Debugger"] + path = modules/Grammar::Debugger + url = git://github.com/jnthn/grammar-debugger.git +[submodule "modules/JSON::Tiny"] + path = modules/JSON::Tiny + url = git://github.com/moritz/json.git +[submodule "modules/Digest::MD5"] + path = modules/Digest::MD5 + url = git://github.com/cosimo/perl6-digest-md5.git +[submodule "modules/HTTP::Status"] + path = modules/HTTP::Status + url = git://github.com/supernovus/perl6-http-status.git +[submodule "modules/HTTP::Easy"] + path = modules/HTTP::Easy + url = git://github.com/supernovus/perl6-http-easy.git +[submodule "modules/Template::Mojo"] + path = modules/Template::Mojo + url = git://github.com/tadzik/Template-Mojo.git [submodule "modules/DBIish"] path = modules/DBIish - url = git://github.com/perl6/DBIish -[submodule "modules/uri"] - path = modules/uri - url = git://github.com/perl6-community-modules/uri -[submodule "modules/perl6-lwp-simple"] - path = modules/perl6-lwp-simple - url = git://github.com/perl6/perl6-lwp-simple -[submodule "modules/jsonrpc"] - path = modules/jsonrpc - url = git://github.com/bbkr/jsonrpc -[submodule "modules/Pod-To-HTML"] - path = modules/Pod-To-HTML - url = git://github.com/perl6/Pod-To-HTML -[submodule "modules/doc"] - path = modules/doc - url = git://github.com/perl6/doc -[submodule "modules/Perl6-MIME-Base64"] - path = modules/Perl6-MIME-Base64 - url = git://github.com/perl6/Perl6-MIME-Base64 + url = git://github.com/perl6/DBIish.git +[submodule "modules/URI"] + path = modules/URI + url = git://github.com/perl6-community-modules/uri.git +[submodule "modules/LWP::Simple"] + path = modules/LWP::Simple + url = git://github.com/perl6/perl6-lwp-simple.git +[submodule "modules/JSON::RPC"] + path = modules/JSON::RPC + url = git://github.com/bbkr/jsonrpc.git +[submodule "modules/Pod::To::HTML"] + path = modules/Pod::To::HTML + url = git://github.com/perl6/Pod-To-HTML.git +[submodule "modules/p6doc"] + path = modules/p6doc + url = git://github.com/perl6/doc.git +[submodule "modules/MIME::Base64"] + path = modules/MIME::Base64 + url = git://github.com/perl6/Perl6-MIME-Base64.git [submodule "modules/PSGI"] path = modules/PSGI - url = git://github.com/supernovus/perl6-psgi -[submodule "modules/shell-command"] - path = modules/shell-command - url = git://github.com/tadzik/Shell-Command -[submodule "modules/file-find"] - path = modules/file-find - url = git://github.com/tadzik/File-Find -[submodule "modules/p6-Template-Mustache"] - path = modules/p6-Template-Mustache - url = git://github.com/softmoth/p6-Template-Mustache -[submodule "modules/p6-File-Temp"] - path = modules/p6-File-Temp - url = git://github.com/perlpilot/p6-File-Temp -[submodule "modules/p6-file-directory-tree"] - path = modules/p6-file-directory-tree - url = git://github.com/labster/p6-file-directory-tree -[submodule "modules/Terminal-ANSIColor"] - path = modules/Terminal-ANSIColor - url = git://github.com/tadzik/Terminal-ANSIColor -[submodule "modules/json_fast"] - path = modules/json_fast - url = git://github.com/timo/json_fast -[submodule "modules/library-make"] - path = modules/library-make - url = https://github.com/retupmoca/P6-LibraryMake/ + url = git://github.com/supernovus/perl6-psgi.git +[submodule "modules/Shell::Command"] + path = modules/Shell::Command + url = git://github.com/tadzik/Shell-Command.git +[submodule "modules/File::Find"] + path = modules/File::Find + url = git://github.com/tadzik/File-Find.git +[submodule "modules/Template::Mustache"] + path = modules/Template::Mustache + url = git://github.com/softmoth/p6-Template-Mustache.git +[submodule "modules/File::Temp"] + path = modules/File::Temp + url = git://github.com/perlpilot/p6-File-Temp.git +[submodule "modules/File::Directory::Tree"] + path = modules/File::Directory::Tree + url = git://github.com/labster/p6-file-directory-tree.git +[submodule "modules/Terminal::ANSIColor"] + path = modules/Terminal::ANSIColor + url = git://github.com/tadzik/Terminal-ANSIColor.git +[submodule "modules/JSON::Fast"] + path = modules/JSON::Fast + url = git://github.com/timo/json_fast.git +[submodule "modules/LibraryMake"] + path = modules/LibraryMake + url = git://github.com/retupmoca/P6-LibraryMake.git [submodule "modules/Linenoise"] path = modules/Linenoise - url = https://github.com/hoelzro/p6-linenoise/ -[submodule "modules/perl6-file-which"] - path = modules/perl6-file-which - url = git://github.com/azawawi/perl6-file-which -[submodule "modules/NativeHelpers-Blob"] - path = modules/NativeHelpers-Blob - url = git://github.com/salortiz/NativeHelpers-Blob -[submodule "modules/perl6-pod-to-bigpage"] - path = modules/perl6-pod-to-bigpage + url = git://github.com/hoelzro/p6-linenoise.git +[submodule "modules/File::Which"] + path = modules/File::Which + url = git://github.com/azawawi/perl6-file-which.git +[submodule "modules/NativeHelpers::Blob"] + path = modules/NativeHelpers::Blob + url = git://github.com/salortiz/NativeHelpers-Blob.git +[submodule "modules/Pod::To::BigPage"] + path = modules/Pod::To::BigPage url = git://github.com/gfldex/perl6-pod-to-bigpage.git [submodule "modules/zef"] path = modules/zef url = git://github.com/ugexe/zef.git -[submodule "modules/oo-monitors"] - path = modules/oo-monitors - url = git://github.com/jnthn/oo-monitors -[submodule "modules/tap-harness6"] - path = modules/tap-harness6 +[submodule "modules/OO::Monitors"] + path = modules/OO::Monitors + url = git://github.com/jnthn/oo-monitors.git +[submodule "modules/TAP"] + path = modules/TAP url = git://github.com/perl6/tap-harness6.git -[submodule "modules/p6-io-string"] - path = modules/p6-io-string +[submodule "modules/IO::String"] + path = modules/IO::String url = git://github.com/hoelzro/p6-io-string.git -[submodule "modules/perl6-Test-When"] - path = modules/perl6-Test-When +[submodule "modules/Test::When"] + path = modules/Test::When url = git://github.com/zoffixznet/perl6-Test-When.git [submodule "modules/perl6-encode"] path = modules/perl6-encode url = git://github.com/sergot/perl6-encode.git -[submodule "modules/Test-META"] - path = modules/Test-META +[submodule "modules/Test::META"] + path = modules/Test::META url = git://github.com/jonathanstowe/Test-META.git -[submodule "modules/perl6-datetime-format"] - path = modules/perl6-datetime-format +[submodule "modules/DateTime::Format"] + path = modules/DateTime::Format url = git://github.com/supernovus/perl6-datetime-format.git [submodule "modules/META6"] path = modules/META6 url = git://github.com/jonathanstowe/META6.git -[submodule "modules/JSON-Class"] - path = modules/JSON-Class +[submodule "modules/JSON::Class"] + path = modules/JSON::Class url = git://github.com/jonathanstowe/JSON-Class.git -[submodule "modules/JSON-Marshal"] - path = modules/JSON-Marshal +[submodule "modules/JSON::Marshal"] + path = modules/JSON::Marshal url = git://github.com/jonathanstowe/JSON-Marshal.git -[submodule "modules/JSON-Name"] - path = modules/JSON-Name +[submodule "modules/JSON::Name"] + path = modules/JSON::Name url = git://github.com/jonathanstowe/JSON-Name -[submodule "modules/JSON-Unmarshal"] - path = modules/JSON-Unmarshal +[submodule "modules/JSON::Unmarshal"] + path = modules/JSON::Unmarshal url = git://github.com/tadzik/JSON-Unmarshal.git -[submodule "modules/http-useragent"] - path = modules/http-useragent +[submodule "modules/HTTP::UserAgent"] + path = modules/HTTP::UserAgent url = git://github.com/sergot/http-useragent.git -[submodule "modules/datetime-parse"] - path = modules/datetime-parse +[submodule "modules/DateTime::Parse"] + path = modules/DateTime::Parse url = git://github.com/sergot/datetime-parse.git -[submodule "modules/io-capture-simple"] - path = modules/io-capture-simple +[submodule "modules/IO::Capture::Simple"] + path = modules/IO::Capture::Simple url = git://github.com/sergot/IO-Capture-Simple.git -[submodule "modules/test-util-serverport"] - path = modules/test-util-serverport +[submodule "modules/Test::Util::ServerPort"] + path = modules/Test::Util::ServerPort url = git://github.com/jonathanstowe/Test-Util-ServerPort.git -[submodule "modules/openssl"] - path = modules/openssl - url = git://github.com/sergot/openssl -[submodule "modules/io-socket-ssl"] - path = modules/io-socket-ssl - url = git://github.com/sergot/io-socket-ssl -[submodule "modules/app-prove6"] - path = modules/app-prove6 - url = git://github.com/Leont/app-prove6 -[submodule "modules/getopt-long6"] - path = modules/getopt-long6 - url = git://github.com/Leont/getopt-long6 -[submodule "modules/p6-pod-load"] - path = modules/p6-pod-load - url = git@github.com:JJ/p6-pod-load -[submodule "modules/perl6-Temp-Path"] - path = modules/perl6-Temp-Path - url = git@github.com:ufobat/perl6-Temp-Path -[submodule "modules/libdigest-perl6"] - path = modules/libdigest-perl6 - url = git@github.com:grondilu/libdigest-perl6 -[submodule "modules/perl6-Testo"] - path = modules/perl6-Testo - url = git@github.com:perl6-community-modules/perl6-Testo -[submodule "modules/License-SPDX"] - path = modules/License-SPDX - url = git@github.com:jonathanstowe/License-SPDX -[submodule "modules/perl6-Test-Output"] - path = modules/perl6-Test-Output - url = git@github.com:perl6-community-modules/perl6-Test-Output +[submodule "modules/OpenSSL"] + path = modules/OpenSSL + url = git://github.com/sergot/openssl.git +[submodule "modules/IO::Socket::SSL"] + path = modules/IO::Socket::SSL + url = git://github.com/sergot/io-socket-ssl.git +[submodule "modules/App::Prove6"] + path = modules/App::Prove6 + url = git://github.com/Leont/app-prove6.git +[submodule "modules/Getopt::Long"] + path = modules/Getopt::Long + url = git://github.com/Leont/getopt-long6.git +[submodule "modules/Pod::Load"] + path = modules/Pod::Load + url = git://github.com/JJ/p6-pod-load.git +[submodule "modules/Temp::Path"] + path = modules/Temp::Path + url = git://github.com/ufobat/perl6-Temp-Path.git +[submodule "modules/Digest"] + path = modules/Digest + url = git://github.com/grondilu/libdigest-perl6.git +[submodule "modules/Testo"] + path = modules/Testo + url = git://github.com/perl6-community-modules/perl6-Testo.git +[submodule "modules/License::SPDX"] + path = modules/License::SPDX + url = git://github.com/jonathanstowe/License-SPDX.git +[submodule "modules/Test::Output"] + path = modules/Test::Output + url = git://github.com/perl6-community-modules/perl6-Test-Output.git diff --git a/modules/App::Prove6 b/modules/App::Prove6 new file mode 160000 index 0000000..c3e6232 --- /dev/null +++ b/modules/App::Prove6 @@ -0,0 +1 @@ +Subproject commit c3e62325e3400fc6147b27682a967568e1027a7f diff --git a/modules/DateTime::Format b/modules/DateTime::Format new file mode 160000 index 0000000..3f3c993 --- /dev/null +++ b/modules/DateTime::Format @@ -0,0 +1 @@ +Subproject commit 3f3c99314e36029e36738097685a51dd94a188cf diff --git a/modules/DateTime::Parse b/modules/DateTime::Parse new file mode 160000 index 0000000..acf2f4f --- /dev/null +++ b/modules/DateTime::Parse @@ -0,0 +1 @@ +Subproject commit acf2f4f493891d3accdc25e8209ce275899d5dd2 diff --git a/modules/Debugger::UI::CommandLine b/modules/Debugger::UI::CommandLine new file mode 160000 index 0000000..a18de77 --- /dev/null +++ b/modules/Debugger::UI::CommandLine @@ -0,0 +1 @@ +Subproject commit a18de77df33b9189f093511b6b6249230cd6dc45 diff --git a/modules/Digest b/modules/Digest new file mode 160000 index 0000000..42ba6be --- /dev/null +++ b/modules/Digest @@ -0,0 +1 @@ +Subproject commit 42ba6bef6ca5a9e532ad1436465df7af0cd5f70c diff --git a/modules/Digest::MD5 b/modules/Digest::MD5 new file mode 160000 index 0000000..2194250 --- /dev/null +++ b/modules/Digest::MD5 @@ -0,0 +1 @@ +Subproject commit 2194250ff2d50a37f92d4f82fac216729f4eba87 diff --git a/modules/File::Directory::Tree b/modules/File::Directory::Tree new file mode 160000 index 0000000..25faef9 --- /dev/null +++ b/modules/File::Directory::Tree @@ -0,0 +1 @@ +Subproject commit 25faef927c83eea1b688b5a324d5e11011f7305f diff --git a/modules/File::Find b/modules/File::Find new file mode 160000 index 0000000..41421e8 --- /dev/null +++ b/modules/File::Find @@ -0,0 +1 @@ +Subproject commit 41421e8f1aec7207a1633de17f7630b7ceba1ff3 diff --git a/modules/File::Temp b/modules/File::Temp new file mode 160000 index 0000000..7f128ad --- /dev/null +++ b/modules/File::Temp @@ -0,0 +1 @@ +Subproject commit 7f128adc5bbad8d172f87e868c52eb85339fc90f diff --git a/modules/File::Which b/modules/File::Which new file mode 160000 index 0000000..1dfbeba --- /dev/null +++ b/modules/File::Which @@ -0,0 +1 @@ +Subproject commit 1dfbeba2f92f8b2b04e8b26619eb20d599198d25 diff --git a/modules/Getopt::Long b/modules/Getopt::Long new file mode 160000 index 0000000..2f83c23 --- /dev/null +++ b/modules/Getopt::Long @@ -0,0 +1 @@ +Subproject commit 2f83c23fac987fbabcb4bbcc0ee386edff7a27a7 diff --git a/modules/Grammar-Profiler-Simple b/modules/Grammar-Profiler-Simple deleted file mode 160000 index c0aca5f..0000000 --- a/modules/Grammar-Profiler-Simple +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c0aca5fab323b2974821dabd6b89330c609e0b7d diff --git a/modules/Grammar::Debugger b/modules/Grammar::Debugger new file mode 160000 index 0000000..0375008 --- /dev/null +++ b/modules/Grammar::Debugger @@ -0,0 +1 @@ +Subproject commit 0375008027c8caa216bd869476ce59ae09b2a702 diff --git a/modules/Grammar::Profiler::Simple b/modules/Grammar::Profiler::Simple new file mode 160000 index 0000000..c0aca5f --- /dev/null +++ b/modules/Grammar::Profiler::Simple @@ -0,0 +1 @@ +Subproject commit c0aca5fab323b2974821dabd6b89330c609e0b7d diff --git a/modules/HTTP::Easy b/modules/HTTP::Easy new file mode 160000 index 0000000..8742272 --- /dev/null +++ b/modules/HTTP::Easy @@ -0,0 +1 @@ +Subproject commit 8742272c4913e6e05895f90c96262cd0c37772d1 diff --git a/modules/HTTP::Status b/modules/HTTP::Status new file mode 160000 index 0000000..c8226cf --- /dev/null +++ b/modules/HTTP::Status @@ -0,0 +1 @@ +Subproject commit c8226cfcfe5ee65536880287fcd0c332f7f409f5 diff --git a/modules/HTTP::UserAgent b/modules/HTTP::UserAgent new file mode 160000 index 0000000..c8c96b4 --- /dev/null +++ b/modules/HTTP::UserAgent @@ -0,0 +1 @@ +Subproject commit c8c96b4fef7f4e3146153a6dec528db9d692c47e diff --git a/modules/IO::Capture::Simple b/modules/IO::Capture::Simple new file mode 160000 index 0000000..360a6be --- /dev/null +++ b/modules/IO::Capture::Simple @@ -0,0 +1 @@ +Subproject commit 360a6bed347723940b9f0fb12be04cb5ec84f350 diff --git a/modules/IO::Socket::SSL b/modules/IO::Socket::SSL new file mode 160000 index 0000000..f07010c --- /dev/null +++ b/modules/IO::Socket::SSL @@ -0,0 +1 @@ +Subproject commit f07010c8965855ff734de297466c883afffbb560 diff --git a/modules/IO::String b/modules/IO::String new file mode 160000 index 0000000..364df27 --- /dev/null +++ b/modules/IO::String @@ -0,0 +1 @@ +Subproject commit 364df2753eef8976d902ed51b4085e77f1dda23c diff --git a/modules/JSON-Class b/modules/JSON-Class deleted file mode 160000 index 13b01e7..0000000 --- a/modules/JSON-Class +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 13b01e7c831d6c1dba4ebe1104c8c87711c4f72d diff --git a/modules/JSON-Marshal b/modules/JSON-Marshal deleted file mode 160000 index 4922642..0000000 --- a/modules/JSON-Marshal +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 492264295dd88aa7753048c46edce3f546ad3994 diff --git a/modules/JSON-Name b/modules/JSON-Name deleted file mode 160000 index f9d52e0..0000000 --- a/modules/JSON-Name +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f9d52e032da0f9621a3f38cd03a825b93ab65675 diff --git a/modules/JSON-Unmarshal b/modules/JSON-Unmarshal deleted file mode 160000 index e1b6288..0000000 --- a/modules/JSON-Unmarshal +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e1b6288c5f3165058f36c0f4e171cdf2dfd640da diff --git a/modules/JSON::Class b/modules/JSON::Class new file mode 160000 index 0000000..13b01e7 --- /dev/null +++ b/modules/JSON::Class @@ -0,0 +1 @@ +Subproject commit 13b01e7c831d6c1dba4ebe1104c8c87711c4f72d diff --git a/modules/JSON::Fast b/modules/JSON::Fast new file mode 160000 index 0000000..3a29ede --- /dev/null +++ b/modules/JSON::Fast @@ -0,0 +1 @@ +Subproject commit 3a29ede8ec738b185a71f11b462cbb63bc8b8b70 diff --git a/modules/JSON::Marshal b/modules/JSON::Marshal new file mode 160000 index 0000000..4922642 --- /dev/null +++ b/modules/JSON::Marshal @@ -0,0 +1 @@ +Subproject commit 492264295dd88aa7753048c46edce3f546ad3994 diff --git a/modules/JSON::Name b/modules/JSON::Name new file mode 160000 index 0000000..f9d52e0 --- /dev/null +++ b/modules/JSON::Name @@ -0,0 +1 @@ +Subproject commit f9d52e032da0f9621a3f38cd03a825b93ab65675 diff --git a/modules/JSON::RPC b/modules/JSON::RPC new file mode 160000 index 0000000..ebccb25 --- /dev/null +++ b/modules/JSON::RPC @@ -0,0 +1 @@ +Subproject commit ebccb25d505ef544e016038f39e21ad9c59c3bd6 diff --git a/modules/JSON::Tiny b/modules/JSON::Tiny new file mode 160000 index 0000000..a5ef8c1 --- /dev/null +++ b/modules/JSON::Tiny @@ -0,0 +1 @@ +Subproject commit a5ef8c179350dae44ce7fb1abb684fc62c1c2b99 diff --git a/modules/JSON::Unmarshal b/modules/JSON::Unmarshal new file mode 160000 index 0000000..e1b6288 --- /dev/null +++ b/modules/JSON::Unmarshal @@ -0,0 +1 @@ +Subproject commit e1b6288c5f3165058f36c0f4e171cdf2dfd640da diff --git a/modules/LWP::Simple b/modules/LWP::Simple new file mode 160000 index 0000000..eb48ab9 --- /dev/null +++ b/modules/LWP::Simple @@ -0,0 +1 @@ +Subproject commit eb48ab98b3422b40cd0def8faa882abb9184c265 diff --git a/modules/LibraryMake b/modules/LibraryMake new file mode 160000 index 0000000..7aae514 --- /dev/null +++ b/modules/LibraryMake @@ -0,0 +1 @@ +Subproject commit 7aae514f09c18b54e2a5d584df340b70d9776a6d diff --git a/modules/License-SPDX b/modules/License-SPDX deleted file mode 160000 index 6e7d547..0000000 --- a/modules/License-SPDX +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6e7d5477a59b364317bee162eb1b00ef8884a25a diff --git a/modules/License::SPDX b/modules/License::SPDX new file mode 160000 index 0000000..6e7d547 --- /dev/null +++ b/modules/License::SPDX @@ -0,0 +1 @@ +Subproject commit 6e7d5477a59b364317bee162eb1b00ef8884a25a diff --git a/modules/MIME::Base64 b/modules/MIME::Base64 new file mode 160000 index 0000000..71f046a --- /dev/null +++ b/modules/MIME::Base64 @@ -0,0 +1 @@ +Subproject commit 71f046ab176a6dd77a5a4103a44778ed5cf1b17f diff --git a/modules/MODULES.txt b/modules/MODULES.txt index 81a3f2f..f0c96cc 100644 --- a/modules/MODULES.txt +++ b/modules/MODULES.txt @@ -1,61 +1,60 @@ # The order of modules here is significant; a module must be listed after # all of its dependencies. -uri -json_fast -JSON-Name -JSON-Unmarshal -JSON-Marshal -JSON-Class +URI +JSON::Fast +JSON::Name +JSON::Unmarshal +JSON::Marshal +JSON::Class META6 -License-SPDX -Test-META -xml-writer -svg # uses XML::Writer -svg-plot # uses SVG -Terminal-ANSIColor -oo-monitors -test-mock -Grammar-Profiler-Simple -grammar-debugger # uses Terminal::ANSIColor -Perl6-MIME-Base64 -uri -json -perl6-encode -openssl -io-socket-ssl -perl6-lwp-simple # uses MIME::Base64, URI, JSON::Tiny -perl6-digest-md5 -perl6-http-status -p6-Template-Mustache +License::SPDX +Test::META +XML::Writer +SVG # XML::Writer +SVG::Plot # SVG +Terminal::ANSIColor +OO::Monitors +Test::Mock +Grammar::Profiler::Simple +Grammar::Debugger # Terminal::ANSIColor +MIME::Base64 +JSON::Tiny +Encode +OpenSSL +IO::Socket::SSL +LWP::Simple # MIME::Base64, URI, JSON::Tiny +Digest::MD5 +HTTP::Status +Template::Mustache PSGI -perl6-http-easy # uses PSGI +HTTP-Easy # PSGI Template-Mojo NativeHelpers-Blob -DBIish # uses NativeHelpers::Blob -perl6-Test-When -p6-file-directory-tree -libdigest-perl6 -perl6-Testo -perl6-Temp-Path # uses Digest::SHA, File::Directory::Tree -p6-pod-load # uses Temp::Path -perl6-Test-Output -Pod-To-HTML # uses Pod::Load -perl6-pod-to-bigpage -p6-File-Temp # uses File::Directory::Tree -file-find -doc # uses File::Temp -debugger-ui-commandline -shell-command -library-make # check needed? +DBIish # NativeHelpers::Blob +Test::When +File-Directory-Tree +Digest +Testo +Temp-Path # Digest::SHA, File::Directory::Tree +Pod::Load # Temp::Path +Test::Output +Pod::To::HTML # Pod::Load +Pod::To::BigPage +File::Temp # File::Directory::Tree +File::Find +p6doc # File::Temp +Debugger::UI::CommandLine +Shell::Command +LibraryMake # check needed? Linenoise -perl6-file-which -p6-io-string -perl6-datetime-format -datetime-parse # dependency for http-useragent -io-capture-simple -test-util-serverport -http-useragent -jsonrpc # uses PSGI & http-useragent -getopt-long6 -tap-harness6 # have last so faster perl5 prove used -app-prove6 +File::Which +IO::String +DateTime::Format +DateTime::Parse # HTTP::UserAgent +IO::Capture::Simple +Test::Util::ServerPort +HTTP::Useragent +JSON::RPC # PSGI, HTTP::Useragent +Getopt::Long +TAP +App::Prove6 diff --git a/modules/NativeHelpers-Blob b/modules/NativeHelpers-Blob deleted file mode 160000 index b00a489..0000000 --- a/modules/NativeHelpers-Blob +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b00a4899ce219dae5fe97e9e414d01dd92874f53 diff --git a/modules/NativeHelpers::Blob b/modules/NativeHelpers::Blob new file mode 160000 index 0000000..b00a489 --- /dev/null +++ b/modules/NativeHelpers::Blob @@ -0,0 +1 @@ +Subproject commit b00a4899ce219dae5fe97e9e414d01dd92874f53 diff --git a/modules/OO::Monitors b/modules/OO::Monitors new file mode 160000 index 0000000..6dc1a36 --- /dev/null +++ b/modules/OO::Monitors @@ -0,0 +1 @@ +Subproject commit 6dc1a363c7859b760bf973d0ada0773cfdb14356 diff --git a/modules/OpenSSL b/modules/OpenSSL new file mode 160000 index 0000000..597e836 --- /dev/null +++ b/modules/OpenSSL @@ -0,0 +1 @@ +Subproject commit 597e836c73684bb53ac5cb4511edca9b4f10ea87 diff --git a/modules/Perl6-MIME-Base64 b/modules/Perl6-MIME-Base64 deleted file mode 160000 index 71f046a..0000000 --- a/modules/Perl6-MIME-Base64 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 71f046ab176a6dd77a5a4103a44778ed5cf1b17f diff --git a/modules/Pod-To-HTML b/modules/Pod-To-HTML deleted file mode 160000 index 8ddda65..0000000 --- a/modules/Pod-To-HTML +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8ddda65e0504ef2ca3f21c17f611aca00011dcce diff --git a/modules/Pod::Load b/modules/Pod::Load new file mode 160000 index 0000000..53df221 --- /dev/null +++ b/modules/Pod::Load @@ -0,0 +1 @@ +Subproject commit 53df2215d8e9980fde1308b4f8e0e5a28edef212 diff --git a/modules/Pod::To::BigPage b/modules/Pod::To::BigPage new file mode 160000 index 0000000..92f2e4e --- /dev/null +++ b/modules/Pod::To::BigPage @@ -0,0 +1 @@ +Subproject commit 92f2e4ef9f20a5031a5f033dc876e72f9d544553 diff --git a/modules/Pod::To::HTML b/modules/Pod::To::HTML new file mode 160000 index 0000000..8ddda65 --- /dev/null +++ b/modules/Pod::To::HTML @@ -0,0 +1 @@ +Subproject commit 8ddda65e0504ef2ca3f21c17f611aca00011dcce diff --git a/modules/SVG b/modules/SVG new file mode 160000 index 0000000..07190c0 --- /dev/null +++ b/modules/SVG @@ -0,0 +1 @@ +Subproject commit 07190c0602aa276e5319f06aa0012452dbff3582 diff --git a/modules/SVG::Plot b/modules/SVG::Plot new file mode 160000 index 0000000..062570a --- /dev/null +++ b/modules/SVG::Plot @@ -0,0 +1 @@ +Subproject commit 062570a78fd38c3c6baba29dfe2fbb8ca014f4de diff --git a/modules/Shell::Command b/modules/Shell::Command new file mode 160000 index 0000000..1145ea0 --- /dev/null +++ b/modules/Shell::Command @@ -0,0 +1 @@ +Subproject commit 1145ea0ff71507b2fe932fca6d2a68d4004c7d12 diff --git a/modules/TAP b/modules/TAP new file mode 160000 index 0000000..4b27221 --- /dev/null +++ b/modules/TAP @@ -0,0 +1 @@ +Subproject commit 4b272219941a75809774d6a382d615bfb7779de4 diff --git a/modules/Temp::Path b/modules/Temp::Path new file mode 160000 index 0000000..5a6acee --- /dev/null +++ b/modules/Temp::Path @@ -0,0 +1 @@ +Subproject commit 5a6acee907d65fc5b681a6ea022aa18217f6e99b diff --git a/modules/Template-Mojo b/modules/Template-Mojo deleted file mode 160000 index 3d38f92..0000000 --- a/modules/Template-Mojo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3d38f92636a0c44dfd4cec2e7b8b67f12e43c026 diff --git a/modules/Template::Mojo b/modules/Template::Mojo new file mode 160000 index 0000000..3d38f92 --- /dev/null +++ b/modules/Template::Mojo @@ -0,0 +1 @@ +Subproject commit 3d38f92636a0c44dfd4cec2e7b8b67f12e43c026 diff --git a/modules/Template::Mustache b/modules/Template::Mustache new file mode 160000 index 0000000..4f09e0a --- /dev/null +++ b/modules/Template::Mustache @@ -0,0 +1 @@ +Subproject commit 4f09e0a97f38fe5d8c75514ca0c858cdfb26d09b diff --git a/modules/Terminal-ANSIColor b/modules/Terminal-ANSIColor deleted file mode 160000 index eeb2dad..0000000 --- a/modules/Terminal-ANSIColor +++ /dev/null @@ -1 +0,0 @@ -Subproject commit eeb2dadd2cc2b7df34588be7869768213fd9fff4 diff --git a/modules/Terminal::ANSIColor b/modules/Terminal::ANSIColor new file mode 160000 index 0000000..eeb2dad --- /dev/null +++ b/modules/Terminal::ANSIColor @@ -0,0 +1 @@ +Subproject commit eeb2dadd2cc2b7df34588be7869768213fd9fff4 diff --git a/modules/Test-META b/modules/Test-META deleted file mode 160000 index 498d80b..0000000 --- a/modules/Test-META +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 498d80bf64af6fbecd6dde40406fbaf8c3e26724 diff --git a/modules/Test::META b/modules/Test::META new file mode 160000 index 0000000..498d80b --- /dev/null +++ b/modules/Test::META @@ -0,0 +1 @@ +Subproject commit 498d80bf64af6fbecd6dde40406fbaf8c3e26724 diff --git a/modules/Test::Mock b/modules/Test::Mock new file mode 160000 index 0000000..1130427 --- /dev/null +++ b/modules/Test::Mock @@ -0,0 +1 @@ +Subproject commit 1130427f4d9f3866fa39e113251bb142d7fa5cc8 diff --git a/modules/Test::Output b/modules/Test::Output new file mode 160000 index 0000000..16bafe1 --- /dev/null +++ b/modules/Test::Output @@ -0,0 +1 @@ +Subproject commit 16bafe1f6d0e5a83b73563d4afd8ced097f559ef diff --git a/modules/Test::Util::ServerPort b/modules/Test::Util::ServerPort new file mode 160000 index 0000000..184ed7e --- /dev/null +++ b/modules/Test::Util::ServerPort @@ -0,0 +1 @@ +Subproject commit 184ed7e575b48c4a1db50dae9bfb606a7de59ad3 diff --git a/modules/Test::When b/modules/Test::When new file mode 160000 index 0000000..a1a0040 --- /dev/null +++ b/modules/Test::When @@ -0,0 +1 @@ +Subproject commit a1a0040520911ed8d56e839e2e00d8ab9a0a24e2 diff --git a/modules/Testo b/modules/Testo new file mode 160000 index 0000000..d1134ec --- /dev/null +++ b/modules/Testo @@ -0,0 +1 @@ +Subproject commit d1134ec7c3b40baf766384d004fd9b379eac27c2 diff --git a/modules/URI b/modules/URI new file mode 160000 index 0000000..abe8c9b --- /dev/null +++ b/modules/URI @@ -0,0 +1 @@ +Subproject commit abe8c9bb65947760cb656c6c154f466cd87f6e57 diff --git a/modules/XML::Writer b/modules/XML::Writer new file mode 160000 index 0000000..4d30a9d --- /dev/null +++ b/modules/XML::Writer @@ -0,0 +1 @@ +Subproject commit 4d30a9d8e06033ca97387971b653817becd5a759 diff --git a/modules/app-prove6 b/modules/app-prove6 deleted file mode 160000 index c3e6232..0000000 --- a/modules/app-prove6 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c3e62325e3400fc6147b27682a967568e1027a7f diff --git a/modules/datetime-parse b/modules/datetime-parse deleted file mode 160000 index acf2f4f..0000000 --- a/modules/datetime-parse +++ /dev/null @@ -1 +0,0 @@ -Subproject commit acf2f4f493891d3accdc25e8209ce275899d5dd2 diff --git a/modules/debugger-ui-commandline b/modules/debugger-ui-commandline deleted file mode 160000 index a18de77..0000000 --- a/modules/debugger-ui-commandline +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a18de77df33b9189f093511b6b6249230cd6dc45 diff --git a/modules/doc b/modules/doc deleted file mode 160000 index cfa072a..0000000 --- a/modules/doc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit cfa072a239efb33d9517a21534b561cc5f24c998 diff --git a/modules/file-find b/modules/file-find deleted file mode 160000 index 41421e8..0000000 --- a/modules/file-find +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 41421e8f1aec7207a1633de17f7630b7ceba1ff3 diff --git a/modules/getopt-long6 b/modules/getopt-long6 deleted file mode 160000 index 2f83c23..0000000 --- a/modules/getopt-long6 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2f83c23fac987fbabcb4bbcc0ee386edff7a27a7 diff --git a/modules/grammar-debugger b/modules/grammar-debugger deleted file mode 160000 index 0375008..0000000 --- a/modules/grammar-debugger +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0375008027c8caa216bd869476ce59ae09b2a702 diff --git a/modules/http-useragent b/modules/http-useragent deleted file mode 160000 index c8c96b4..0000000 --- a/modules/http-useragent +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c8c96b4fef7f4e3146153a6dec528db9d692c47e diff --git a/modules/io-capture-simple b/modules/io-capture-simple deleted file mode 160000 index 360a6be..0000000 --- a/modules/io-capture-simple +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 360a6bed347723940b9f0fb12be04cb5ec84f350 diff --git a/modules/io-socket-ssl b/modules/io-socket-ssl deleted file mode 160000 index f07010c..0000000 --- a/modules/io-socket-ssl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f07010c8965855ff734de297466c883afffbb560 diff --git a/modules/json b/modules/json deleted file mode 160000 index a5ef8c1..0000000 --- a/modules/json +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a5ef8c179350dae44ce7fb1abb684fc62c1c2b99 diff --git a/modules/json_fast b/modules/json_fast deleted file mode 160000 index 3a29ede..0000000 --- a/modules/json_fast +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3a29ede8ec738b185a71f11b462cbb63bc8b8b70 diff --git a/modules/jsonrpc b/modules/jsonrpc deleted file mode 160000 index ebccb25..0000000 --- a/modules/jsonrpc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ebccb25d505ef544e016038f39e21ad9c59c3bd6 diff --git a/modules/libdigest-perl6 b/modules/libdigest-perl6 deleted file mode 160000 index 42ba6be..0000000 --- a/modules/libdigest-perl6 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 42ba6bef6ca5a9e532ad1436465df7af0cd5f70c diff --git a/modules/library-make b/modules/library-make deleted file mode 160000 index 7aae514..0000000 --- a/modules/library-make +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7aae514f09c18b54e2a5d584df340b70d9776a6d diff --git a/modules/oo-monitors b/modules/oo-monitors deleted file mode 160000 index 6dc1a36..0000000 --- a/modules/oo-monitors +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6dc1a363c7859b760bf973d0ada0773cfdb14356 diff --git a/modules/openssl b/modules/openssl deleted file mode 160000 index 597e836..0000000 --- a/modules/openssl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 597e836c73684bb53ac5cb4511edca9b4f10ea87 diff --git a/modules/p6-File-Temp b/modules/p6-File-Temp deleted file mode 160000 index 7f128ad..0000000 --- a/modules/p6-File-Temp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7f128adc5bbad8d172f87e868c52eb85339fc90f diff --git a/modules/p6-Template-Mustache b/modules/p6-Template-Mustache deleted file mode 160000 index 4f09e0a..0000000 --- a/modules/p6-Template-Mustache +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4f09e0a97f38fe5d8c75514ca0c858cdfb26d09b diff --git a/modules/p6-file-directory-tree b/modules/p6-file-directory-tree deleted file mode 160000 index 25faef9..0000000 --- a/modules/p6-file-directory-tree +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 25faef927c83eea1b688b5a324d5e11011f7305f diff --git a/modules/p6-io-string b/modules/p6-io-string deleted file mode 160000 index 364df27..0000000 --- a/modules/p6-io-string +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 364df2753eef8976d902ed51b4085e77f1dda23c diff --git a/modules/p6-pod-load b/modules/p6-pod-load deleted file mode 160000 index 53df221..0000000 --- a/modules/p6-pod-load +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 53df2215d8e9980fde1308b4f8e0e5a28edef212 diff --git a/modules/p6doc b/modules/p6doc new file mode 160000 index 0000000..cfa072a --- /dev/null +++ b/modules/p6doc @@ -0,0 +1 @@ +Subproject commit cfa072a239efb33d9517a21534b561cc5f24c998 diff --git a/modules/perl6-Temp-Path b/modules/perl6-Temp-Path deleted file mode 160000 index 5a6acee..0000000 --- a/modules/perl6-Temp-Path +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5a6acee907d65fc5b681a6ea022aa18217f6e99b diff --git a/modules/perl6-Test-Output b/modules/perl6-Test-Output deleted file mode 160000 index 16bafe1..0000000 --- a/modules/perl6-Test-Output +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 16bafe1f6d0e5a83b73563d4afd8ced097f559ef diff --git a/modules/perl6-Test-When b/modules/perl6-Test-When deleted file mode 160000 index a1a0040..0000000 --- a/modules/perl6-Test-When +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a1a0040520911ed8d56e839e2e00d8ab9a0a24e2 diff --git a/modules/perl6-Testo b/modules/perl6-Testo deleted file mode 160000 index d1134ec..0000000 --- a/modules/perl6-Testo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d1134ec7c3b40baf766384d004fd9b379eac27c2 diff --git a/modules/perl6-datetime-format b/modules/perl6-datetime-format deleted file mode 160000 index 3f3c993..0000000 --- a/modules/perl6-datetime-format +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3f3c99314e36029e36738097685a51dd94a188cf diff --git a/modules/perl6-digest-md5 b/modules/perl6-digest-md5 deleted file mode 160000 index 2194250..0000000 --- a/modules/perl6-digest-md5 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2194250ff2d50a37f92d4f82fac216729f4eba87 diff --git a/modules/perl6-file-which b/modules/perl6-file-which deleted file mode 160000 index 1dfbeba..0000000 --- a/modules/perl6-file-which +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1dfbeba2f92f8b2b04e8b26619eb20d599198d25 diff --git a/modules/perl6-http-easy b/modules/perl6-http-easy deleted file mode 160000 index 8742272..0000000 --- a/modules/perl6-http-easy +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8742272c4913e6e05895f90c96262cd0c37772d1 diff --git a/modules/perl6-http-status b/modules/perl6-http-status deleted file mode 160000 index c8226cf..0000000 --- a/modules/perl6-http-status +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c8226cfcfe5ee65536880287fcd0c332f7f409f5 diff --git a/modules/perl6-lwp-simple b/modules/perl6-lwp-simple deleted file mode 160000 index eb48ab9..0000000 --- a/modules/perl6-lwp-simple +++ /dev/null @@ -1 +0,0 @@ -Subproject commit eb48ab98b3422b40cd0def8faa882abb9184c265 diff --git a/modules/perl6-pod-to-bigpage b/modules/perl6-pod-to-bigpage deleted file mode 160000 index 92f2e4e..0000000 --- a/modules/perl6-pod-to-bigpage +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 92f2e4ef9f20a5031a5f033dc876e72f9d544553 diff --git a/modules/shell-command b/modules/shell-command deleted file mode 160000 index 1145ea0..0000000 --- a/modules/shell-command +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1145ea0ff71507b2fe932fca6d2a68d4004c7d12 diff --git a/modules/svg b/modules/svg deleted file mode 160000 index 07190c0..0000000 --- a/modules/svg +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 07190c0602aa276e5319f06aa0012452dbff3582 diff --git a/modules/svg-plot b/modules/svg-plot deleted file mode 160000 index 062570a..0000000 --- a/modules/svg-plot +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 062570a78fd38c3c6baba29dfe2fbb8ca014f4de diff --git a/modules/tap-harness6 b/modules/tap-harness6 deleted file mode 160000 index 4b27221..0000000 --- a/modules/tap-harness6 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4b272219941a75809774d6a382d615bfb7779de4 diff --git a/modules/test-mock b/modules/test-mock deleted file mode 160000 index 1130427..0000000 --- a/modules/test-mock +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1130427f4d9f3866fa39e113251bb142d7fa5cc8 diff --git a/modules/test-util-serverport b/modules/test-util-serverport deleted file mode 160000 index 184ed7e..0000000 --- a/modules/test-util-serverport +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 184ed7e575b48c4a1db50dae9bfb606a7de59ad3 diff --git a/modules/uri b/modules/uri deleted file mode 160000 index abe8c9b..0000000 --- a/modules/uri +++ /dev/null @@ -1 +0,0 @@ -Subproject commit abe8c9bb65947760cb656c6c154f466cd87f6e57 diff --git a/modules/xml-writer b/modules/xml-writer deleted file mode 160000 index 4d30a9d..0000000 --- a/modules/xml-writer +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4d30a9d8e06033ca97387971b653817becd5a759 -- cgit v1.1 From 1cc72251adecbe640b804d426f23e0ab22c800e6 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 16:20:14 +0100 Subject: Update GitLab CI configuration --- .gitlab-ci.yml | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f8cbbb8..35109e7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,28 +1,31 @@ stages: + - Package - Build - - Release - -#moar: -# stage: Build -# image: alpine:latest -# before_script: -# - apk add --no-cache bash build-base git perl -# script: -# - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar -# artifacts: -# paths: -# - /usr/local tarball: - stage: Release - image: registry.gitlab.com/tyil/docker-perl6:alpine-dev-latest + stage: Package + image: alpine:latest before_script: - apk add --no-cache git script: - git submodule sync - git submodule update --init --recursive - git submodule foreach git pull origin master - - make -f tools/star/Makefile release VERSION=$CI_COOMIT_REF_NAME + - make -f tools/star/Makefile release VERSION=$CI_COMMIT_REF_NAME artifacts: paths: - release + +moar: + stage: Build + image: alpine:latest + before_script: + - apk add --no-cache bash build-base git perl + - cd "$(mktemp -d)" + - tar xf "$CI_PROJECT_DIR/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" + script: + - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar + artifacts: + paths: + - "$CI_COMMIT_REF_NAME/release" + - /usr/local -- cgit v1.1 From ba893d502396ea7aa46d18add41fe4045382a626 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 16:24:39 +0100 Subject: Include make as a dependency for packaging --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 35109e7..c31691f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ tarball: stage: Package image: alpine:latest before_script: - - apk add --no-cache git + - apk add --no-cache git make script: - git submodule sync - git submodule update --init --recursive -- cgit v1.1 From e57d82fda6b689000a67c1b2a6bb3cf5c07ec5b4 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 16:27:01 +0100 Subject: Include perl as a dependency for packaging --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c31691f..3885597 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ tarball: stage: Package image: alpine:latest before_script: - - apk add --no-cache git make + - apk add --no-cache git make perl script: - git submodule sync - git submodule update --init --recursive -- cgit v1.1 From 57c87d3d6137eaa1098fe1e90d89b2add2ad8227 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 16:29:20 +0100 Subject: Remove perl6-encode from modules --- .gitmodules | 3 --- modules/MODULES.txt | 1 - modules/perl6-encode | 1 - 3 files changed, 5 deletions(-) delete mode 160000 modules/perl6-encode diff --git a/.gitmodules b/.gitmodules index 555b6eb..9cd06e3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -109,9 +109,6 @@ [submodule "modules/Test::When"] path = modules/Test::When url = git://github.com/zoffixznet/perl6-Test-When.git -[submodule "modules/perl6-encode"] - path = modules/perl6-encode - url = git://github.com/sergot/perl6-encode.git [submodule "modules/Test::META"] path = modules/Test::META url = git://github.com/jonathanstowe/Test-META.git diff --git a/modules/MODULES.txt b/modules/MODULES.txt index f0c96cc..8e267fa 100644 --- a/modules/MODULES.txt +++ b/modules/MODULES.txt @@ -19,7 +19,6 @@ Grammar::Profiler::Simple Grammar::Debugger # Terminal::ANSIColor MIME::Base64 JSON::Tiny -Encode OpenSSL IO::Socket::SSL LWP::Simple # MIME::Base64, URI, JSON::Tiny diff --git a/modules/perl6-encode b/modules/perl6-encode deleted file mode 160000 index 702214d..0000000 --- a/modules/perl6-encode +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 702214dcedd05ea62d815ffb4c287e1596cee4c9 -- cgit v1.1 From 786945578dd419d862ecb9339d94d06defa6453a Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 16:32:27 +0100 Subject: Change directory to latest release --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3885597..0a08726 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,6 +24,7 @@ moar: - cd "$(mktemp -d)" - tar xf "$CI_PROJECT_DIR/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" script: + - cd "rakudo-star-$CI_COMMIT_REF_NAME" - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar artifacts: paths: -- cgit v1.1 From ba2109d3fb6ecfb15864d0b288ade79371e7049c Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 16:39:36 +0100 Subject: Update GitLab CI --- .gitlab-ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0a08726..7a60ba7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,7 +10,7 @@ tarball: script: - git submodule sync - git submodule update --init --recursive - - git submodule foreach git pull origin master + - make -f tools/star/Makefile - make -f tools/star/Makefile release VERSION=$CI_COMMIT_REF_NAME artifacts: paths: @@ -22,7 +22,7 @@ moar: before_script: - apk add --no-cache bash build-base git perl - cd "$(mktemp -d)" - - tar xf "$CI_PROJECT_DIR/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" + - tar xvf "$CI_PROJECT_DIR/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" script: - cd "rakudo-star-$CI_COMMIT_REF_NAME" - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar @@ -30,3 +30,7 @@ moar: paths: - "$CI_COMMIT_REF_NAME/release" - /usr/local + +# TODO: Run tests +# TODO: Release an updated Docker container +# TODO: Release the tarball to some Raku server -- cgit v1.1 From b0f2bc55aec9df26426a1ed8db257cde2cba6db6 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 17:18:58 +0100 Subject: Remove verbosity for tar --- .gitignore | 18 +++++++++++------- .gitlab-ci.yml | 2 +- Configure.pl | 4 ++-- tools/star/Makefile | 12 +++++++++++- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index a80f75d..3e45564 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,16 @@ +# Editor specific files +*.swp +*~ +\#*# + +# Temporary files used to build a new Rakudo Star release MANIFEST -rakudo -nqp +Makefile MoarVM -src config.status -Makefile install +nqp perl6 -*.swp -*~ -\#*# +rakudo +release +src diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7a60ba7..e243cfc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,7 @@ moar: before_script: - apk add --no-cache bash build-base git perl - cd "$(mktemp -d)" - - tar xvf "$CI_PROJECT_DIR/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" + - tar xf "$CI_PROJECT_DIR/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" script: - cd "rakudo-star-$CI_COMMIT_REF_NAME" - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar diff --git a/Configure.pl b/Configure.pl index 0627b2f..42e053c 100644 --- a/Configure.pl +++ b/Configure.pl @@ -171,7 +171,7 @@ MAIN: { my @prefixes = sort map substr($_, 0, 1), keys %backends; # determine the version of NQP we want - my ($nqp_want) = split(' ', slurp('rakudo/tools/build/NQP_REVISION')); + my ($nqp_want) = split(' ', slurp('rakudo/tools/templates/NQP_REVISION')); my %binaries; my %impls = gen_nqp($nqp_want, prefix => $prefix, backends => join(',', sort keys %backends), %options); @@ -239,7 +239,7 @@ MAIN: { } sorry(@errors) if @errors; - fill_template_file('tools/build/Makefile.in', 'Makefile', %config); + fill_template_file('tools/template/Makefile.in', 'Makefile', %config); unless ($options{'no-clean'}) { no warnings; diff --git a/tools/star/Makefile b/tools/star/Makefile index 0026a5c..afb49ec 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -77,8 +77,18 @@ patch: tarball: manifest [ -n "$(VERSION)" ] || ( echo "\nTry '$(MAKE) release VERSION=yyyy.mm'\n\n"; exit 1 ) [ -d $(STAR_REL) ] || ln -s . $(STAR_REL) + mkdir -p "release" - $(PREFIX) $(STAR_REL)/ MANIFEST | $(TAR) -zcv -T - -f "release/$(STAR_TGZ)" + + $(PREFIX) $(STAR_REL)/ MANIFEST \ + | grep -Ev '^$(STAR_REL)/release/' \ + | $(TAR) -zc -T - -f "release/$(STAR_TGZ)" + rm $(STAR_REL) release: tarball + +clean: + rm -fr rakudo + rm -fr nqp + rm -fr MoarVM -- cgit v1.1 From 7fbb7cf183ee0395d5188d0c81c30d0bb6a7de7e Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 17:22:00 +0100 Subject: Update MOAR_REVISION location --- tools/lib/NQP/Configure.pm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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); -- cgit v1.1 From 9ba5b55cb17fc5c7f616658fe9f342dca24323e3 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 18:26:37 +0100 Subject: Reformat Configure script slightly --- Configure.pl | 49 ++++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/Configure.pl b/Configure.pl index 42e053c..d34e8c9 100644 --- a/Configure.pl +++ b/Configure.pl @@ -49,53 +49,56 @@ MAIN: { } if (-d '.git') { - worry( $options{'force'}, - "I see a .git directory here -- you appear to be trying", - "to run Configure.pl from a clone of the Rakudo Star git", - "repository.", - "You most probably should be following", - " tools/star/release-guide.pod", - "instead. Please be aware that running Configure.pl from", - "a clone of the rakudo star git repo will never be", - "the right thing to do.", - $options{'force'} - ? '--force specified, continuing' - : download_text() + worry( + $options{'force'}, + "I see a .git directory here -- you appear to be trying", + "to run Configure.pl from a clone of the Rakudo Star git", + "repository.", + "You most probably should be following", + " tools/star/release-guide.pod", + "instead. Please be aware that running Configure.pl from", + "a clone of the rakudo star git repo will never be", + "the right thing to do.", + $options{'force'} ? '--force specified, continuing' : download_text() ); } unless (defined $options{prefix}) { - my $default = defined($options{sysroot}) ? '/usr' : File::Spec->catdir(getcwd, 'install'); + + my $default = defined($options{sysroot}) ? '/usr' : File::Spec->catdir(getcwd, 'install'); print "ATTENTION: no --prefix supplied, building and installing to $default\n"; + $options{prefix} = $default; } + $options{prefix} = File::Spec->rel2abs($options{prefix}); my $prefix = $options{'prefix'}; my %known_backends = (jvm => 1, moar => 1); my %letter_to_backend; my $default_backend; + for (keys %known_backends) { $letter_to_backend{ substr($_, 0, 1) } = $_; } + my %backends; + if (defined $options{backends}) { - $options{backends} = 'moar,jvm' - if lc($options{backends}) eq 'all'; + $options{backends} = 'moar,jvm' if lc($options{backends}) eq 'all'; + for my $b (split /,\s*/, $options{backends}) { $b = lc $b; - if ($b eq 'parrot') { - die "Parrot support has been suspended from Rakudo Star. Please use version 2015.02 if you need Parrot support, or otherwise the MoarVM backend.\n"; - } - unless ($known_backends{$b}) { - die "Unknown backend '$b'; Supported backends are: " . - join(", ", sort keys %known_backends) . - "\n"; + + if (!$known_backends{$b}) { + die "Unknown backend '$b'; Supported backends are: " . join(", ", sort keys %known_backends) . "\n"; } + $backends{$b} = 1; $default_backend ||= $b; } - unless (%backends) { + + if (!%backends) { die "--prefix given, but no valid backend?!\n"; } } -- cgit v1.1 From 6e361ed3ac8942e9e26fae1fcf5b69257dbfaf4c Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 18:26:44 +0100 Subject: Bump version in Makefile --- tools/star/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/star/Makefile b/tools/star/Makefile index afb49ec..3bc3214 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -2,9 +2,9 @@ # eg. 2017.07 etc. # Occasionally (mis-)used to pull in fixes (see 'lastmin-fixes.txt') # eg. 2017.07-9-gc0abee7 etc. -RAKUDO_VER = 2019.07 -NQP_VER = 2019.07 -MOAR_VER = 2019.07 +RAKUDO_VER = 2019.07.1 +NQP_VER = 2019.07.1 +MOAR_VER = 2019.07.1 STAR_REL = rakudo-star-$(VERSION) STAR_TGZ = $(STAR_REL).tar.gz -- cgit v1.1 From ebeecae4d53c410a46eb98aa76a0dc653d33aed1 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 20:10:52 +0100 Subject: Update NQP to load from personal dist server --- tools/star/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/star/Makefile b/tools/star/Makefile index 3bc3214..6415344 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -15,7 +15,7 @@ RAKUDO_TGZ = rakudo-$(RAKUDO_VER).tar.gz RAKUDO_URL = https://rakudo.perl6.org/downloads/rakudo/$(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://dist.tyil.nl/raku/nqp/$(NQP_TGZ) NQP_SRC = $(SRC_DIR)/$(NQP_TGZ) MOAR_TGZ = MoarVM-$(MOAR_VER).tar.gz MOAR_URL = https://www.moarvm.org/releases/$(MOAR_TGZ) -- cgit v1.1 From afd561f013ce7686501437ce59d1a4da7636df46 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 20:19:18 +0100 Subject: Make more tars less verbose --- tools/star/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/star/Makefile b/tools/star/Makefile index 6415344..a47664a 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -32,7 +32,7 @@ always: rakudo: nqp $(RAKUDO_SRC) mkdir rakudo - $(TAR) -C rakudo --strip-components 1 -xvzf $(RAKUDO_SRC) + $(TAR) -C rakudo --strip-components 1 -xzf $(RAKUDO_SRC) $(RAKUDO_SRC): mkdir -p $(SRC_DIR) @@ -40,7 +40,7 @@ $(RAKUDO_SRC): nqp: moar $(NQP_SRC) mkdir nqp - $(TAR) -C nqp --strip-components 1 -xvzf $(NQP_SRC) + $(TAR) -C nqp --strip-components 1 -xzf $(NQP_SRC) $(NQP_SRC): mkdir -p $(SRC_DIR) @@ -48,7 +48,7 @@ $(NQP_SRC): moar: $(MOAR_SRC) mkdir MoarVM - $(TAR) -C MoarVM --strip-components 1 -xvzf $(MOAR_SRC) + $(TAR) -C MoarVM --strip-components 1 -xzf $(MOAR_SRC) $(MOAR_SRC): mkdir -p $(SRC_DIR) -- cgit v1.1 From 82aa896d5bd5c365b52a34a3eff1363953f265b1 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 30 Oct 2019 20:20:28 +0100 Subject: Capitalize GitLab CI targets --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e243cfc..2ff54af 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ stages: - Package - Build -tarball: +Tarball: stage: Package image: alpine:latest before_script: @@ -16,7 +16,7 @@ tarball: paths: - release -moar: +MoarVM: stage: Build image: alpine:latest before_script: -- cgit v1.1 From 55732cc3554911f23a7f1c34c724af07d2b8e03b Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 31 Oct 2019 00:46:39 +0100 Subject: Clean src on make clean --- tools/star/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/star/Makefile b/tools/star/Makefile index a47664a..6efd2c6 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -92,3 +92,4 @@ clean: rm -fr rakudo rm -fr nqp rm -fr MoarVM + rm -fr src -- cgit v1.1 From 71be27c335746af2cb71d04e32d791086a599523 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 31 Oct 2019 01:23:05 +0100 Subject: Include both files and directories in tarball --- tools/star/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/star/Makefile b/tools/star/Makefile index 6efd2c6..9d74422 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -67,7 +67,7 @@ manifest: modules/DBIish/lib $(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 + $(PERL) -n -e 'chomp; print "$$_\n"' MANIFEST.1 >MANIFEST sort -o MANIFEST MANIFEST rm MANIFEST.1 -- cgit v1.1 From ac29a397c1257ba84e57796af155a26ee40f0da5 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 31 Oct 2019 01:51:24 +0100 Subject: Update path for Makefile.in --- Configure.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configure.pl b/Configure.pl index d34e8c9..4a1984e 100644 --- a/Configure.pl +++ b/Configure.pl @@ -242,7 +242,7 @@ MAIN: { } sorry(@errors) if @errors; - fill_template_file('tools/template/Makefile.in', 'Makefile', %config); + fill_template_file('tools/build/Makefile.in', 'Makefile', %config); unless ($options{'no-clean'}) { no warnings; -- cgit v1.1 From 2a4183659e70fec3d4d63cfbe48b9aed387adbdf Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 31 Oct 2019 02:14:41 +0100 Subject: Update zef command for installing bundled modules --- tools/build/module-install.pl | 2 -- 1 file changed, 2 deletions(-) diff --git a/tools/build/module-install.pl b/tools/build/module-install.pl index bba3234..0bd4cee 100644 --- a/tools/build/module-install.pl +++ b/tools/build/module-install.pl @@ -14,8 +14,6 @@ while (<>) { next if /^\s*(#|$)/; my ($module) = /(\S+)/; $exit ||= system $perl6bin, $zefbin, - '--/build-depends', '--/test-depends', '--/depends', - '--/p6c', '--/metacpan', '--/cpan', '--force', '--/test', 'install', "./modules$path_sep$module"; } -- cgit v1.1 From c819cba104e6eb22ec55a633a8b9c914e2733584 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 31 Oct 2019 02:23:58 +0100 Subject: Add --make-install to Configure.pl --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2ff54af..cda7a00 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,7 +25,7 @@ MoarVM: - tar xf "$CI_PROJECT_DIR/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" script: - cd "rakudo-star-$CI_COMMIT_REF_NAME" - - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar + - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar --make-install artifacts: paths: - "$CI_COMMIT_REF_NAME/release" -- cgit v1.1 From 5511989854671aa28628a43cf723603211297241 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 31 Oct 2019 12:01:34 +0100 Subject: Use a work directory --- .gitignore | 6 +- .gitlab-ci.yml | 14 +-- Configure.pl | 319 --------------------------------------------------- README | 229 ------------------------------------ bin/mkrelease.sh | 23 ++++ build_msi.bat | 10 -- bundle/Configure.pl | 319 +++++++++++++++++++++++++++++++++++++++++++++++++++ bundle/README.md | 229 ++++++++++++++++++++++++++++++++++++ bundle/build_msi.bat | 10 ++ tools/star/Makefile | 90 +++++++++------ 10 files changed, 644 insertions(+), 605 deletions(-) delete mode 100644 Configure.pl delete mode 100644 README create mode 100755 bin/mkrelease.sh delete mode 100644 build_msi.bat create mode 100644 bundle/Configure.pl create mode 100644 bundle/README.md create mode 100644 bundle/build_msi.bat diff --git a/.gitignore b/.gitignore index 3e45564..435fc1e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,11 +6,7 @@ # Temporary files used to build a new Rakudo Star release MANIFEST Makefile -MoarVM config.status -install -nqp perl6 -rakudo release -src +work diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cda7a00..b5977fd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,26 +10,24 @@ Tarball: script: - git submodule sync - git submodule update --init --recursive - - make -f tools/star/Makefile - - make -f tools/star/Makefile release VERSION=$CI_COMMIT_REF_NAME + - bin/mkrelease.sh "$CI_COMMIT_REF_NAME" artifacts: paths: - - release + - work/release MoarVM: stage: Build image: alpine:latest before_script: - apk add --no-cache bash build-base git perl - - cd "$(mktemp -d)" - - tar xf "$CI_PROJECT_DIR/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" + - cd -- "$(mktemp -d)" + - tar xzf "$CI_PROJECT_DIR/work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" script: - cd "rakudo-star-$CI_COMMIT_REF_NAME" - - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar --make-install + - perl Configure.pl --prefix="$CI_PROJECT_DIR/work/install" --backend=moar --gen-moar --make-install artifacts: paths: - - "$CI_COMMIT_REF_NAME/release" - - /usr/local + - work/install # TODO: Run tests # TODO: Release an updated Docker container diff --git a/Configure.pl b/Configure.pl deleted file mode 100644 index 4a1984e..0000000 --- a/Configure.pl +++ /dev/null @@ -1,319 +0,0 @@ -#! perl -# Copyright (C) 2009-2018 The Perl Foundation - -use 5.008; -use strict; -use warnings; -use Text::ParseWords; -use Getopt::Long; -use File::Spec; -use Cwd; -use lib 'tools/lib'; -use NQP::Configure qw(sorry slurp cmp_rev gen_nqp read_config - fill_template_text fill_template_file - system_or_die verify_install); - -my $lang = 'Rakudo'; -my $lclang = lc $lang; -my $uclang = uc $lang; -my $slash = $^O eq 'MSWin32' ? '\\' : '/'; - - -MAIN: { - if (-r 'config.default') { - unshift @ARGV, shellwords(slurp('config.default')); - } - - my %config = (perl => $^X); - my $config_status = "${lclang}_config_status"; - $config{$config_status} = join ' ', map { qq("$_") } @ARGV; - - my $exe = $NQP::Configure::exe; - - my %options; - GetOptions(\%options, 'help!', 'prefix=s', - 'sysroot=s', 'sdkroot=s', - 'backends=s', 'no-clean!', - 'gen-nqp:s', 'gen-moar:s', 'moar-option=s@', - 'make-install!', 'makefile-timing!', - 'force!', - ) or do { - print_help(); - exit(1); - }; - - # Print help if it's requested - if ($options{'help'}) { - print_help(); - exit(0); - } - - if (-d '.git') { - worry( - $options{'force'}, - "I see a .git directory here -- you appear to be trying", - "to run Configure.pl from a clone of the Rakudo Star git", - "repository.", - "You most probably should be following", - " tools/star/release-guide.pod", - "instead. Please be aware that running Configure.pl from", - "a clone of the rakudo star git repo will never be", - "the right thing to do.", - $options{'force'} ? '--force specified, continuing' : download_text() - ); - } - - unless (defined $options{prefix}) { - - my $default = defined($options{sysroot}) ? '/usr' : File::Spec->catdir(getcwd, 'install'); - print "ATTENTION: no --prefix supplied, building and installing to $default\n"; - - $options{prefix} = $default; - } - - $options{prefix} = File::Spec->rel2abs($options{prefix}); - - my $prefix = $options{'prefix'}; - my %known_backends = (jvm => 1, moar => 1); - my %letter_to_backend; - my $default_backend; - - for (keys %known_backends) { - $letter_to_backend{ substr($_, 0, 1) } = $_; - } - - my %backends; - - if (defined $options{backends}) { - $options{backends} = 'moar,jvm' if lc($options{backends}) eq 'all'; - - for my $b (split /,\s*/, $options{backends}) { - $b = lc $b; - - if (!$known_backends{$b}) { - die "Unknown backend '$b'; Supported backends are: " . join(", ", sort keys %known_backends) . "\n"; - } - - $backends{$b} = 1; - $default_backend ||= $b; - } - - if (!%backends) { - die "--prefix given, but no valid backend?!\n"; - } - } - else { - for my $l (sort keys %letter_to_backend) { - # TODO: needs .exe/.bat magic on windows? - if (-x "$prefix/bin/nqp-$l") { - my $b = $letter_to_backend{$l}; - print "Found $prefix/bin/nqp-$l (backend $b)\n"; - $backends{$b} = 1; - $default_backend ||= $b; - } - } - if (exists $options{'gen-moar'}) { - $backends{moar} = 1; - $default_backend ||= 'moar'; - } - unless (%backends) { - die "No suitable nqp executables found! Please specify some --backends, or a --prefix that contains nqp-{p,j,m} executables\n\n" - . "Example to build for all backends (which will take a while):\n" - . "\tperl Configure.pl --backends=moar,jvm --gen-moar\n\n" - . "Example to build for MoarVM only:\n" - . "\tperl Configure.pl --gen-moar\n\n" - . "Example to build for JVM only:\n" - . "\tperl Configure.pl --backends=jvm --gen-nqp\n\n"; - } - } - - $config{backends} = join ',', keys %backends; - $config{backend_exes} = join ' ', map - { '$(RAKUDO_DIR)/$(PERL6_' . uc(substr $_, 0, 1) . '_EXE)' } - keys %backends; - $config{backend_modules_install} = join ' ', map - { 'modules-install-' . lc(substr $_, 0, 1) } - keys %backends; - $config{backend_modules_test} = join ' ', map - { 'modules-test-' . lc(substr $_, 0, 1) } - keys %backends; - $config{verbose_backend_modules_test} = join ' ', map - { 'verbose-modules-test-' . lc(substr $_, 0, 1) } - keys %backends; - $config{default_backend_exe} = '$(PERL6_' . - uc(substr $default_backend, 0, 1) . - '_INSTALL)'; - - if ($backends{jvm}) { - warn "Warning: JVM backend does not yet support all modules\n"; - } - - # Save options in config.status - unlink('config.status'); - if (open(my $CONFIG_STATUS, '>', 'config.status')) { - print $CONFIG_STATUS - "$^X Configure.pl $config{$config_status} \$*\n"; - close($CONFIG_STATUS); - } - - $config{prefix} = $prefix; - $config{sdkroot} = $options{sdkroot}; - $config{sysroot} = $options{sysroot}; - $config{pass_rakudo_config} = ""; - $config{pass_rakudo_config} .= $options{sdkroot} ? " --sdkroot=\"\$(SDKROOT_DIR)\"" : ""; - $config{pass_rakudo_config} .= $options{sysroot} ? " --sysroot=\"\$(SYSROOT_DIR)\"" : ""; - $config{slash} = $slash; - $config{'makefile-timing'} = $options{'makefile-timing'}; - $config{'stagestats'} = '--stagestats' if $options{'makefile-timing'}; - $config{'cpsep'} = $^O eq 'MSWin32' ? ';' : ':'; - $config{'shell'} = $^O eq 'MSWin32' ? 'cmd' : 'sh'; - $config{'bat'} = $^O eq 'MSWin32' ? '.bat' : ''; - $config{'path'} = $^O ne 'MSWin32' ? 'sh -c "PATH=\'$(STAR_BIN_DIR):$(PATH)\'' : 'cmd /c "path $(STAR_BIN_DIR);$(PATH) && '; - my $make = $config{'make'} = $^O eq 'MSWin32' ? 'nmake' : 'make'; - - my @prefixes = sort map substr($_, 0, 1), keys %backends; - - # determine the version of NQP we want - my ($nqp_want) = split(' ', slurp('rakudo/tools/templates/NQP_REVISION')); - - my %binaries; - my %impls = gen_nqp($nqp_want, prefix => $prefix, backends => join(',', sort keys %backends), %options); - - my @errors; - my %errors; - if ($backends{jvm}) { - $config{j_nqp} = $impls{jvm}{bin}; - $config{j_nqp} =~ s{/}{\\}g if $^O eq 'MSWin32'; - my %nqp_config; - if ( $impls{jvm}{config} ) { - %nqp_config = %{ $impls{jvm}{config} }; - } - else { - push @errors, "Unable to read configuration from NQP on the JVM"; - } - my $bin = $impls{jvm}{bin}; - - if (!@errors && !defined $nqp_config{'jvm::runtime.jars'}) { - push @errors, "jvm::runtime.jars value not available from $bin --show-config."; - } - - $errors{jvm}{'no gen-nqp'} = @errors && !defined $options{'gen-nqp'}; - - unless (@errors) { - %config = (%nqp_config, %config); - print "Using $bin.\n"; - } - } - if ($backends{moar}) { - $config{m_nqp} = $impls{moar}{bin}; - $config{m_nqp} =~ s{/}{\\}g if $^O eq 'MSWin32'; - my %nqp_config; - if ( $impls{moar}{config} ) { - %nqp_config = %{ $impls{moar}{config} }; - } - else { - push @errors, "Unable to read configuration from NQP on MoarVM"; - } - - $errors{moar}{'no gen-nqp'} = @errors && !defined $options{'gen-nqp'}; - - unless (@errors) { - %config = (%nqp_config, %config); - print "Using $config{m_nqp} (version $nqp_config{'nqp::version'} / MoarVM $nqp_config{'moar::version'}).\n"; - } - } - - if ($errors{jvm}{'no gen-nqp'} || $errors{moar}{'no gen-nqp'}) { - my @options_to_pass; - push @options_to_pass, "--gen-moar" if $backends{moar}; - push @options_to_pass, "--gen-nqp" unless @options_to_pass; - my $options_to_pass = join ' ', @options_to_pass; - my $want_executables = - $backends{moar} - ? ' and MoarVM' - : ''; - my $s1 = @options_to_pass > 1 ? 's' : ''; - my $s2 = $want_executables ? 's' : ''; - push @errors, - "\nTo automatically clone (git) and build a copy of NQP $nqp_want,", - "try re-running Configure.pl with the '$options_to_pass' option$s1.", - "Or, use '--prefix=' to explicitly specify the path where the NQP$want_executables", - "executable$s2 can be found that are use to build $lang."; - } - sorry(@errors) if @errors; - - fill_template_file('tools/build/Makefile.in', 'Makefile', %config); - - unless ($options{'no-clean'}) { - no warnings; - print "Cleaning up ...\n"; - for my $p ('', map { "-$_" } @prefixes) { - if (open my $CLEAN, '-|', "$make configclean$p") { - my @slurp = <$CLEAN>; - close($CLEAN); - } - } - } - - if ($options{'make-install'}) { - system_or_die($make); - system_or_die($make, 'install'); - print "\n$lang has been built and installed.\n"; - } - else { - print "\nYou can now use '$make' to build $lang.\n"; - print "After that, '$make test' will run some tests and\n"; - print "'$make install' will install $lang.\n"; - } - - exit 0; -} - - -# Print some help text. -sub print_help { - print <<"END"; -Configure.pl - $lang Configure - -General Options: - --help Show this text - --prefix=dir Install files in dir; also look for executables there - --sdkroot=dir When given, use for searching build tools here, e.g. - nqp, java etc. - --sysroot=dir When given, use for searching runtime components here - --backends=jvm,moar - Which backend(s) to use - --gen-moar[=branch] - Download and build a copy of MoarVM - --gen-nqp[=branch] - Download and build a copy of NQP - --makefile-timing Enable timing of individual makefile commands - --moar-option='--option=value' - Options to pass to MoarVM's Configure.pl - -Configure.pl also reads options from 'config.default' in the current directory. -END - - return; -} - -sub download_text { - ("The git repository contains the tools needed to build a Rakudo Star", - "release, but does not contain a complete Rakudo Star release.", - "To download and build the latest release of Rakudo Star, please", - "download a .tar.gz file from https://rakudo.perl6.org/downloads/star/ .") -} - -sub worry { - my ($force, @text) = @_; - sorry(@text) unless $force; - print join "\n", @text, ''; -} - - -# Local Variables: -# mode: cperl -# cperl-indent-level: 4 -# fill-column: 100 -# End: -# vim: expandtab shiftwidth=4: diff --git a/README b/README deleted file mode 100644 index 857b3a6..0000000 --- a/README +++ /dev/null @@ -1,229 +0,0 @@ -This is Rakudo Star, a useful, usable Rakudo Perl 6 production distribution. - -This is the 2019.03 release of Rakudo Star for the 6.d version of Perl 6. - -Rakudo Star is Copyright (C) 2010 - 2019 by the Rakudo Star Team. - - -License Information -------------------- -Rakudo Star is distributed under the terms of the Artistic License 2.0. -This distribution contains software collected from other sources; see the -individual source subdirectories (in rakudo/, MoarVM/ and modules/) -for copyright and licensing information of those components. - - -Overview --------- -The Rakudo Perl 6 compiler can target MoarVM and the JVM. Rakudo Star fully -supports MoarVM; not all modules work on the JVM at present. You can choose -to build and install Rakudo for one or more of these virtual machines at -configure time. - - -Build Prerequisites for Rakudo on MoarVM ----------------------------------------- -To build Rakudo Star on MoarVM, you need at least a 'make' utility, a C -compiler, and Perl 5.10.0 or newer. Building Rakudo on MoarVM needs a -machine with a gigabyte of memory; for a 32-bit build, you may get by -with less. - - -Build Prerequisites for Rakudo on the JVM ------------------------------------------ -Please note that this release of Rakudo Star is *not* fully functional with the -JVM backend from the Rakudo compiler. Use the JVM backend only if you are -trying to help with fixing JVM support (which is best done upstream with the -monthly Rakudo release). This is a known issue and it's not worth reporting -JVM failures as bugs unless you have patches. - -To build an experimental Rakudo Star on the JVM, you need at least a 'make' -utility, both 'java' and 'javac' available in your path, and Perl 5.10.0 or -newer. The 'java' and 'javac' are obtained by installing a Java Development -kit, for example openjdk-8 or the Oracle JDK. - -The newer the JDK you have the better; due to bugs in the invokedynamic -instruction in early releases, JDK 8 or above is needed. The build can -complete within a gigabyte of memory. - - -Configuring Rakudo Star ------------------------ -The easiest way to build Rakudo Star for a particular backend is: - - $ perl Configure.pl --backend=moar --gen-moar # MoarVM - $ perl Configure.pl --backend=jvm --gen-nqp # JVM - -You can also build for all backends: - - $ perl Configure.pl --backend=moar,jvm --gen-moar - -Note that --gen-moar automatically builds a MoarVM for you, and implies ---gen-nqp, which builds NQP, a subset of Perl 6 that is used to implement -Rakudo. - -Configured this way, one or more Perl 6 executables and selected Perl 6 -modules will be installed into the install/ subdirectory, which resides inside -the source archive directory. Running make install will *not* install anything -into /usr/local. If you want to change this behavior, specify the install -prefix using the --prefix option. - -Configuring with the --prefix option ------------------------------------- -If you want to install rakudo into a system-wide directory, you must either -have root privileges or own the desired installation directory. Assuming you -are root, use any of the desired configuration commands shown above and add -"--prefix=$INSTDIR" to the end where $INSTDIR is the installation directory -of choice. - -Building Rakudo Star --------------------- -After configuration, build Rakudo Star on a UNIX-like system with: - - $ make - $ make install - -Rakudo Star can be built on Windows either using Microsoft tools (MSVC) and -nmake or using gcc and gmake as bundled with Strawberry Perl. In the latter -case use cmd.exe rather than bash as a shell. - -Note that possible platform-specific errata may be covered under: -https://perl6.org/downloads/ - -Setting up the environment --------------------------- -To set up the environment under a UNIX type system you will need to add the -absolute path of the local "install/bin" directory under your source build -directory or system-wide "${INSTDIR}/bin" directory (if you used the ---prefix option) to your PATH environment variable. - -Note also that other executable scripts such as "p6doc" will be installed -under "${INSTDIR}/share/perl6/site/bin" so you also need to add that to the -PATH for development convenience. - -You will have to append the %PATH% in a similar way under Windows. You -may have to use Windows type directory path separators. - -You will be reminded of the two additions to the PATH by a welcome message -after the source build completes. - -Once Rakudo Star is installed (and assuming perl6 is in your PATH), you can -run Perl 6 programs by doing: - - $ perl6 hello.p6 - -If the Rakudo compiler is invoked without an explicit script to run, it -enters a small interactive mode that allows Perl 6 statements to be executed -from the command line. - - -Running the Perl 6 test suite ------------------------------ -Entering "make rakudo-test" will run a small test suite that comes bundled -with Rakudo. This is a simple suite of tests, designed to make sure that the -Rakudo compiler is basically working and that it's capable of running a simple -test harness. - -Running "make rakudo-spectest" will run the Perl 6 specification test suite -("roast") that was bundled with the Rakudo compiler release. - -Running "make modules-test" will run the test suites of any installed modules. -The modules currently have to be installed (via 'make install' or 'make -modules-install') before the tests can be run. - -Currently a number of roast tests may be reported as missing due to a known -issue with test suite versioning. This can be ignored and it's hoped this will -be fixed shortly. - - -Perl 6 Documentation --------------------- -The official documentation site is https://docs.perl6.org/ - -This distribution also contains documentation in the docs/ directory: - - docs/cheatsheet.txt — Perl 6 cheat sheet - docs/2015-spw-perl6-course.pdf — A short Perl 6 course - docs/perl6intro.pdf — Recent snapshot of https://perl6intro.com/ - docs/announce/ — Detailed release announcements - -https://perl6intro.com/ is available in multiple languages, French, German, -Japanese, Spanish, Portuguese, Dutch, Bulgarian, Chinese, Italian, Turkish, -Indonesian and Russian at the time of writing. - - -Installing Perl 6 Modules -------------------------- -zef is a module installer bundled with Rakudo Star. - -See https://github.com/ugexe/zef for zef documentation. - -A list of modules available in the "ecosystem" is at https://modules.perl6.org/ - -Git is useful for zef. - -When upgrading between versions of perl 6 it may be necessary to remove -~/.perl6 and/or ~/.zef due to a possible toolchain bug. If you see this issue -please email details as suggested in the "Reporting Bugs" section below. - - -Where to get help or answers to questions ------------------------------------------ -'p6doc faq' will display a version of the FAQ. - -Also see https://faq.perl6.org/ - -There are several mailing lists, IRC channels, and wikis available with help -for Perl 6 and Rakudo. - -A friendly IRC channel for new starter questions is irc.freenode.net/#perl6 - -The Rakudo and MoarVM development teams tend to hang out on IRC a fair bit, on -irc.freenode.net/#perl6-dev and irc.freenode.net/#moarvm, respectively. - -IRC tends to be busier than the mailing lists but if you have a question about -Perl 6 syntax or the right way to approach a problem using Perl 6, you could -use the perl6-users@perl.org mailing list. This list is primarily for the -people who want to use Perl 6 to write programs, as opposed to those who are -implementing or developing the Perl 6 language itself. - -Questions about the Rakudo compiler can go to perl6-compiler@perl.org. - -The https://perl6.org/ website contains a great many links to resources for Perl -6 development, and is generally the starting point for information about Perl -6. - -Rakudo's official web site is https://rakudo.org/, where you can -find useful information for developers and users alike. - - -Reporting bugs --------------- -Bug reports about Rakudo Star or the Perl 6 specification should be sent to -rakudobug@perl.org with the moniker [BUG] (including the brackets) at the -start of the subject so that it gets appropriately tagged in the RT system -(https://rt.perl.org/rt3/). Please include or attach any sample source code -that exhibits the bug, and include either the release name/date or the git -commit identifier. You find this information in the output from "perl6 ---version". There's no need to Cc: the perl6-compiler mailing list, as the RT -system will handle this on its own. - - -Submitting patches ------------------- -Patches to the Rakudo compiler itself should be submitted to -'rakudobug@perl.org'. Patches for individual modules should be submitted to -the module authors (see the module source code for details). - -We'll generally accept patches in any form if we can get them to work, but -unified diff from the 'git' command is greatly preferred. See further -instructions in the rakudo/ subdirectory for more details. Other ways to -create and submit patches are discussed at -https://github.com/rakudo/rakudo/wiki/contrib-introduction - - -AUTHOR ------- -Patrick Michaud (pmichaud@pobox.com) was originally the primary author and -maintainer for Rakudo Star. See docs/CREDITS for further Rakudo Star authors, -and */CREDITS for authors of other collected components. diff --git a/bin/mkrelease.sh b/bin/mkrelease.sh new file mode 100755 index 0000000..7c712e0 --- /dev/null +++ b/bin/mkrelease.sh @@ -0,0 +1,23 @@ +#! /usr/bin/env sh + +readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P) + +main() +{ + if [ -z "$1" ] + then + usage + exit 1 + fi + + cd -- "$BASEDIR" + make -f tools/star/Makefile all VERSION="$1" + make -f tools/star/Makefile release VERSION="$1" +} + +usage() +{ + print "NYI" +} + +main "$@" diff --git a/build_msi.bat b/build_msi.bat deleted file mode 100644 index 270c5f9..0000000 --- a/build_msi.bat +++ /dev/null @@ -1,10 +0,0 @@ -rem needs strawberry perl installed and WiX Toolset in the %path% -rmdir /q/s \rakudo -perl Configure.pl --prefix=C:\rakudo --gen-moar -gmake install -rem following two lines are temporary hack -rem main rakudo star Configure.pl needs fixing for windows -copy c:\strawberry\perl\bin\libgcc_s_sjlj-1.dll c:\rakudo\bin -copy c:\strawberry\perl\bin\libwinpthread-1.dll c:\rakudo\bin -copy c:\strawberry\perl\bin\libgcc_s_seh-1.dll c:\rakudo\bin -gmake msi diff --git a/bundle/Configure.pl b/bundle/Configure.pl new file mode 100644 index 0000000..4a1984e --- /dev/null +++ b/bundle/Configure.pl @@ -0,0 +1,319 @@ +#! perl +# Copyright (C) 2009-2018 The Perl Foundation + +use 5.008; +use strict; +use warnings; +use Text::ParseWords; +use Getopt::Long; +use File::Spec; +use Cwd; +use lib 'tools/lib'; +use NQP::Configure qw(sorry slurp cmp_rev gen_nqp read_config + fill_template_text fill_template_file + system_or_die verify_install); + +my $lang = 'Rakudo'; +my $lclang = lc $lang; +my $uclang = uc $lang; +my $slash = $^O eq 'MSWin32' ? '\\' : '/'; + + +MAIN: { + if (-r 'config.default') { + unshift @ARGV, shellwords(slurp('config.default')); + } + + my %config = (perl => $^X); + my $config_status = "${lclang}_config_status"; + $config{$config_status} = join ' ', map { qq("$_") } @ARGV; + + my $exe = $NQP::Configure::exe; + + my %options; + GetOptions(\%options, 'help!', 'prefix=s', + 'sysroot=s', 'sdkroot=s', + 'backends=s', 'no-clean!', + 'gen-nqp:s', 'gen-moar:s', 'moar-option=s@', + 'make-install!', 'makefile-timing!', + 'force!', + ) or do { + print_help(); + exit(1); + }; + + # Print help if it's requested + if ($options{'help'}) { + print_help(); + exit(0); + } + + if (-d '.git') { + worry( + $options{'force'}, + "I see a .git directory here -- you appear to be trying", + "to run Configure.pl from a clone of the Rakudo Star git", + "repository.", + "You most probably should be following", + " tools/star/release-guide.pod", + "instead. Please be aware that running Configure.pl from", + "a clone of the rakudo star git repo will never be", + "the right thing to do.", + $options{'force'} ? '--force specified, continuing' : download_text() + ); + } + + unless (defined $options{prefix}) { + + my $default = defined($options{sysroot}) ? '/usr' : File::Spec->catdir(getcwd, 'install'); + print "ATTENTION: no --prefix supplied, building and installing to $default\n"; + + $options{prefix} = $default; + } + + $options{prefix} = File::Spec->rel2abs($options{prefix}); + + my $prefix = $options{'prefix'}; + my %known_backends = (jvm => 1, moar => 1); + my %letter_to_backend; + my $default_backend; + + for (keys %known_backends) { + $letter_to_backend{ substr($_, 0, 1) } = $_; + } + + my %backends; + + if (defined $options{backends}) { + $options{backends} = 'moar,jvm' if lc($options{backends}) eq 'all'; + + for my $b (split /,\s*/, $options{backends}) { + $b = lc $b; + + if (!$known_backends{$b}) { + die "Unknown backend '$b'; Supported backends are: " . join(", ", sort keys %known_backends) . "\n"; + } + + $backends{$b} = 1; + $default_backend ||= $b; + } + + if (!%backends) { + die "--prefix given, but no valid backend?!\n"; + } + } + else { + for my $l (sort keys %letter_to_backend) { + # TODO: needs .exe/.bat magic on windows? + if (-x "$prefix/bin/nqp-$l") { + my $b = $letter_to_backend{$l}; + print "Found $prefix/bin/nqp-$l (backend $b)\n"; + $backends{$b} = 1; + $default_backend ||= $b; + } + } + if (exists $options{'gen-moar'}) { + $backends{moar} = 1; + $default_backend ||= 'moar'; + } + unless (%backends) { + die "No suitable nqp executables found! Please specify some --backends, or a --prefix that contains nqp-{p,j,m} executables\n\n" + . "Example to build for all backends (which will take a while):\n" + . "\tperl Configure.pl --backends=moar,jvm --gen-moar\n\n" + . "Example to build for MoarVM only:\n" + . "\tperl Configure.pl --gen-moar\n\n" + . "Example to build for JVM only:\n" + . "\tperl Configure.pl --backends=jvm --gen-nqp\n\n"; + } + } + + $config{backends} = join ',', keys %backends; + $config{backend_exes} = join ' ', map + { '$(RAKUDO_DIR)/$(PERL6_' . uc(substr $_, 0, 1) . '_EXE)' } + keys %backends; + $config{backend_modules_install} = join ' ', map + { 'modules-install-' . lc(substr $_, 0, 1) } + keys %backends; + $config{backend_modules_test} = join ' ', map + { 'modules-test-' . lc(substr $_, 0, 1) } + keys %backends; + $config{verbose_backend_modules_test} = join ' ', map + { 'verbose-modules-test-' . lc(substr $_, 0, 1) } + keys %backends; + $config{default_backend_exe} = '$(PERL6_' . + uc(substr $default_backend, 0, 1) . + '_INSTALL)'; + + if ($backends{jvm}) { + warn "Warning: JVM backend does not yet support all modules\n"; + } + + # Save options in config.status + unlink('config.status'); + if (open(my $CONFIG_STATUS, '>', 'config.status')) { + print $CONFIG_STATUS + "$^X Configure.pl $config{$config_status} \$*\n"; + close($CONFIG_STATUS); + } + + $config{prefix} = $prefix; + $config{sdkroot} = $options{sdkroot}; + $config{sysroot} = $options{sysroot}; + $config{pass_rakudo_config} = ""; + $config{pass_rakudo_config} .= $options{sdkroot} ? " --sdkroot=\"\$(SDKROOT_DIR)\"" : ""; + $config{pass_rakudo_config} .= $options{sysroot} ? " --sysroot=\"\$(SYSROOT_DIR)\"" : ""; + $config{slash} = $slash; + $config{'makefile-timing'} = $options{'makefile-timing'}; + $config{'stagestats'} = '--stagestats' if $options{'makefile-timing'}; + $config{'cpsep'} = $^O eq 'MSWin32' ? ';' : ':'; + $config{'shell'} = $^O eq 'MSWin32' ? 'cmd' : 'sh'; + $config{'bat'} = $^O eq 'MSWin32' ? '.bat' : ''; + $config{'path'} = $^O ne 'MSWin32' ? 'sh -c "PATH=\'$(STAR_BIN_DIR):$(PATH)\'' : 'cmd /c "path $(STAR_BIN_DIR);$(PATH) && '; + my $make = $config{'make'} = $^O eq 'MSWin32' ? 'nmake' : 'make'; + + my @prefixes = sort map substr($_, 0, 1), keys %backends; + + # determine the version of NQP we want + my ($nqp_want) = split(' ', slurp('rakudo/tools/templates/NQP_REVISION')); + + my %binaries; + my %impls = gen_nqp($nqp_want, prefix => $prefix, backends => join(',', sort keys %backends), %options); + + my @errors; + my %errors; + if ($backends{jvm}) { + $config{j_nqp} = $impls{jvm}{bin}; + $config{j_nqp} =~ s{/}{\\}g if $^O eq 'MSWin32'; + my %nqp_config; + if ( $impls{jvm}{config} ) { + %nqp_config = %{ $impls{jvm}{config} }; + } + else { + push @errors, "Unable to read configuration from NQP on the JVM"; + } + my $bin = $impls{jvm}{bin}; + + if (!@errors && !defined $nqp_config{'jvm::runtime.jars'}) { + push @errors, "jvm::runtime.jars value not available from $bin --show-config."; + } + + $errors{jvm}{'no gen-nqp'} = @errors && !defined $options{'gen-nqp'}; + + unless (@errors) { + %config = (%nqp_config, %config); + print "Using $bin.\n"; + } + } + if ($backends{moar}) { + $config{m_nqp} = $impls{moar}{bin}; + $config{m_nqp} =~ s{/}{\\}g if $^O eq 'MSWin32'; + my %nqp_config; + if ( $impls{moar}{config} ) { + %nqp_config = %{ $impls{moar}{config} }; + } + else { + push @errors, "Unable to read configuration from NQP on MoarVM"; + } + + $errors{moar}{'no gen-nqp'} = @errors && !defined $options{'gen-nqp'}; + + unless (@errors) { + %config = (%nqp_config, %config); + print "Using $config{m_nqp} (version $nqp_config{'nqp::version'} / MoarVM $nqp_config{'moar::version'}).\n"; + } + } + + if ($errors{jvm}{'no gen-nqp'} || $errors{moar}{'no gen-nqp'}) { + my @options_to_pass; + push @options_to_pass, "--gen-moar" if $backends{moar}; + push @options_to_pass, "--gen-nqp" unless @options_to_pass; + my $options_to_pass = join ' ', @options_to_pass; + my $want_executables = + $backends{moar} + ? ' and MoarVM' + : ''; + my $s1 = @options_to_pass > 1 ? 's' : ''; + my $s2 = $want_executables ? 's' : ''; + push @errors, + "\nTo automatically clone (git) and build a copy of NQP $nqp_want,", + "try re-running Configure.pl with the '$options_to_pass' option$s1.", + "Or, use '--prefix=' to explicitly specify the path where the NQP$want_executables", + "executable$s2 can be found that are use to build $lang."; + } + sorry(@errors) if @errors; + + fill_template_file('tools/build/Makefile.in', 'Makefile', %config); + + unless ($options{'no-clean'}) { + no warnings; + print "Cleaning up ...\n"; + for my $p ('', map { "-$_" } @prefixes) { + if (open my $CLEAN, '-|', "$make configclean$p") { + my @slurp = <$CLEAN>; + close($CLEAN); + } + } + } + + if ($options{'make-install'}) { + system_or_die($make); + system_or_die($make, 'install'); + print "\n$lang has been built and installed.\n"; + } + else { + print "\nYou can now use '$make' to build $lang.\n"; + print "After that, '$make test' will run some tests and\n"; + print "'$make install' will install $lang.\n"; + } + + exit 0; +} + + +# Print some help text. +sub print_help { + print <<"END"; +Configure.pl - $lang Configure + +General Options: + --help Show this text + --prefix=dir Install files in dir; also look for executables there + --sdkroot=dir When given, use for searching build tools here, e.g. + nqp, java etc. + --sysroot=dir When given, use for searching runtime components here + --backends=jvm,moar + Which backend(s) to use + --gen-moar[=branch] + Download and build a copy of MoarVM + --gen-nqp[=branch] + Download and build a copy of NQP + --makefile-timing Enable timing of individual makefile commands + --moar-option='--option=value' + Options to pass to MoarVM's Configure.pl + +Configure.pl also reads options from 'config.default' in the current directory. +END + + return; +} + +sub download_text { + ("The git repository contains the tools needed to build a Rakudo Star", + "release, but does not contain a complete Rakudo Star release.", + "To download and build the latest release of Rakudo Star, please", + "download a .tar.gz file from https://rakudo.perl6.org/downloads/star/ .") +} + +sub worry { + my ($force, @text) = @_; + sorry(@text) unless $force; + print join "\n", @text, ''; +} + + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 100 +# End: +# vim: expandtab shiftwidth=4: diff --git a/bundle/README.md b/bundle/README.md new file mode 100644 index 0000000..857b3a6 --- /dev/null +++ b/bundle/README.md @@ -0,0 +1,229 @@ +This is Rakudo Star, a useful, usable Rakudo Perl 6 production distribution. + +This is the 2019.03 release of Rakudo Star for the 6.d version of Perl 6. + +Rakudo Star is Copyright (C) 2010 - 2019 by the Rakudo Star Team. + + +License Information +------------------- +Rakudo Star is distributed under the terms of the Artistic License 2.0. +This distribution contains software collected from other sources; see the +individual source subdirectories (in rakudo/, MoarVM/ and modules/) +for copyright and licensing information of those components. + + +Overview +-------- +The Rakudo Perl 6 compiler can target MoarVM and the JVM. Rakudo Star fully +supports MoarVM; not all modules work on the JVM at present. You can choose +to build and install Rakudo for one or more of these virtual machines at +configure time. + + +Build Prerequisites for Rakudo on MoarVM +---------------------------------------- +To build Rakudo Star on MoarVM, you need at least a 'make' utility, a C +compiler, and Perl 5.10.0 or newer. Building Rakudo on MoarVM needs a +machine with a gigabyte of memory; for a 32-bit build, you may get by +with less. + + +Build Prerequisites for Rakudo on the JVM +----------------------------------------- +Please note that this release of Rakudo Star is *not* fully functional with the +JVM backend from the Rakudo compiler. Use the JVM backend only if you are +trying to help with fixing JVM support (which is best done upstream with the +monthly Rakudo release). This is a known issue and it's not worth reporting +JVM failures as bugs unless you have patches. + +To build an experimental Rakudo Star on the JVM, you need at least a 'make' +utility, both 'java' and 'javac' available in your path, and Perl 5.10.0 or +newer. The 'java' and 'javac' are obtained by installing a Java Development +kit, for example openjdk-8 or the Oracle JDK. + +The newer the JDK you have the better; due to bugs in the invokedynamic +instruction in early releases, JDK 8 or above is needed. The build can +complete within a gigabyte of memory. + + +Configuring Rakudo Star +----------------------- +The easiest way to build Rakudo Star for a particular backend is: + + $ perl Configure.pl --backend=moar --gen-moar # MoarVM + $ perl Configure.pl --backend=jvm --gen-nqp # JVM + +You can also build for all backends: + + $ perl Configure.pl --backend=moar,jvm --gen-moar + +Note that --gen-moar automatically builds a MoarVM for you, and implies +--gen-nqp, which builds NQP, a subset of Perl 6 that is used to implement +Rakudo. + +Configured this way, one or more Perl 6 executables and selected Perl 6 +modules will be installed into the install/ subdirectory, which resides inside +the source archive directory. Running make install will *not* install anything +into /usr/local. If you want to change this behavior, specify the install +prefix using the --prefix option. + +Configuring with the --prefix option +------------------------------------ +If you want to install rakudo into a system-wide directory, you must either +have root privileges or own the desired installation directory. Assuming you +are root, use any of the desired configuration commands shown above and add +"--prefix=$INSTDIR" to the end where $INSTDIR is the installation directory +of choice. + +Building Rakudo Star +-------------------- +After configuration, build Rakudo Star on a UNIX-like system with: + + $ make + $ make install + +Rakudo Star can be built on Windows either using Microsoft tools (MSVC) and +nmake or using gcc and gmake as bundled with Strawberry Perl. In the latter +case use cmd.exe rather than bash as a shell. + +Note that possible platform-specific errata may be covered under: +https://perl6.org/downloads/ + +Setting up the environment +-------------------------- +To set up the environment under a UNIX type system you will need to add the +absolute path of the local "install/bin" directory under your source build +directory or system-wide "${INSTDIR}/bin" directory (if you used the +--prefix option) to your PATH environment variable. + +Note also that other executable scripts such as "p6doc" will be installed +under "${INSTDIR}/share/perl6/site/bin" so you also need to add that to the +PATH for development convenience. + +You will have to append the %PATH% in a similar way under Windows. You +may have to use Windows type directory path separators. + +You will be reminded of the two additions to the PATH by a welcome message +after the source build completes. + +Once Rakudo Star is installed (and assuming perl6 is in your PATH), you can +run Perl 6 programs by doing: + + $ perl6 hello.p6 + +If the Rakudo compiler is invoked without an explicit script to run, it +enters a small interactive mode that allows Perl 6 statements to be executed +from the command line. + + +Running the Perl 6 test suite +----------------------------- +Entering "make rakudo-test" will run a small test suite that comes bundled +with Rakudo. This is a simple suite of tests, designed to make sure that the +Rakudo compiler is basically working and that it's capable of running a simple +test harness. + +Running "make rakudo-spectest" will run the Perl 6 specification test suite +("roast") that was bundled with the Rakudo compiler release. + +Running "make modules-test" will run the test suites of any installed modules. +The modules currently have to be installed (via 'make install' or 'make +modules-install') before the tests can be run. + +Currently a number of roast tests may be reported as missing due to a known +issue with test suite versioning. This can be ignored and it's hoped this will +be fixed shortly. + + +Perl 6 Documentation +-------------------- +The official documentation site is https://docs.perl6.org/ + +This distribution also contains documentation in the docs/ directory: + + docs/cheatsheet.txt — Perl 6 cheat sheet + docs/2015-spw-perl6-course.pdf — A short Perl 6 course + docs/perl6intro.pdf — Recent snapshot of https://perl6intro.com/ + docs/announce/ — Detailed release announcements + +https://perl6intro.com/ is available in multiple languages, French, German, +Japanese, Spanish, Portuguese, Dutch, Bulgarian, Chinese, Italian, Turkish, +Indonesian and Russian at the time of writing. + + +Installing Perl 6 Modules +------------------------- +zef is a module installer bundled with Rakudo Star. + +See https://github.com/ugexe/zef for zef documentation. + +A list of modules available in the "ecosystem" is at https://modules.perl6.org/ + +Git is useful for zef. + +When upgrading between versions of perl 6 it may be necessary to remove +~/.perl6 and/or ~/.zef due to a possible toolchain bug. If you see this issue +please email details as suggested in the "Reporting Bugs" section below. + + +Where to get help or answers to questions +----------------------------------------- +'p6doc faq' will display a version of the FAQ. + +Also see https://faq.perl6.org/ + +There are several mailing lists, IRC channels, and wikis available with help +for Perl 6 and Rakudo. + +A friendly IRC channel for new starter questions is irc.freenode.net/#perl6 + +The Rakudo and MoarVM development teams tend to hang out on IRC a fair bit, on +irc.freenode.net/#perl6-dev and irc.freenode.net/#moarvm, respectively. + +IRC tends to be busier than the mailing lists but if you have a question about +Perl 6 syntax or the right way to approach a problem using Perl 6, you could +use the perl6-users@perl.org mailing list. This list is primarily for the +people who want to use Perl 6 to write programs, as opposed to those who are +implementing or developing the Perl 6 language itself. + +Questions about the Rakudo compiler can go to perl6-compiler@perl.org. + +The https://perl6.org/ website contains a great many links to resources for Perl +6 development, and is generally the starting point for information about Perl +6. + +Rakudo's official web site is https://rakudo.org/, where you can +find useful information for developers and users alike. + + +Reporting bugs +-------------- +Bug reports about Rakudo Star or the Perl 6 specification should be sent to +rakudobug@perl.org with the moniker [BUG] (including the brackets) at the +start of the subject so that it gets appropriately tagged in the RT system +(https://rt.perl.org/rt3/). Please include or attach any sample source code +that exhibits the bug, and include either the release name/date or the git +commit identifier. You find this information in the output from "perl6 +--version". There's no need to Cc: the perl6-compiler mailing list, as the RT +system will handle this on its own. + + +Submitting patches +------------------ +Patches to the Rakudo compiler itself should be submitted to +'rakudobug@perl.org'. Patches for individual modules should be submitted to +the module authors (see the module source code for details). + +We'll generally accept patches in any form if we can get them to work, but +unified diff from the 'git' command is greatly preferred. See further +instructions in the rakudo/ subdirectory for more details. Other ways to +create and submit patches are discussed at +https://github.com/rakudo/rakudo/wiki/contrib-introduction + + +AUTHOR +------ +Patrick Michaud (pmichaud@pobox.com) was originally the primary author and +maintainer for Rakudo Star. See docs/CREDITS for further Rakudo Star authors, +and */CREDITS for authors of other collected components. diff --git a/bundle/build_msi.bat b/bundle/build_msi.bat new file mode 100644 index 0000000..270c5f9 --- /dev/null +++ b/bundle/build_msi.bat @@ -0,0 +1,10 @@ +rem needs strawberry perl installed and WiX Toolset in the %path% +rmdir /q/s \rakudo +perl Configure.pl --prefix=C:\rakudo --gen-moar +gmake install +rem following two lines are temporary hack +rem main rakudo star Configure.pl needs fixing for windows +copy c:\strawberry\perl\bin\libgcc_s_sjlj-1.dll c:\rakudo\bin +copy c:\strawberry\perl\bin\libwinpthread-1.dll c:\rakudo\bin +copy c:\strawberry\perl\bin\libgcc_s_seh-1.dll c:\rakudo\bin +gmake msi diff --git a/tools/star/Makefile b/tools/star/Makefile index 9d74422..a1b879a 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -9,7 +9,9 @@ MOAR_VER = 2019.07.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) @@ -26,29 +28,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 -xzf $(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 -xzf $(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 -xzf $(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,37 +59,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; 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 [ -n "$(VERSION)" ] || ( echo "\nTry '$(MAKE) release VERSION=yyyy.mm'\n\n"; exit 1 ) - [ -d $(STAR_REL) ] || ln -s . $(STAR_REL) - - mkdir -p "release" - $(PREFIX) $(STAR_REL)/ MANIFEST \ - | grep -Ev '^$(STAR_REL)/release/' \ - | $(TAR) -zc -T - -f "release/$(STAR_TGZ)" + 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)/." - rm $(STAR_REL) + cd -- work && $(PREFIX) $(STAR_REL)/ "$(WORKDIR)/MANIFEST" \ + | $(TAR) -zc -T - -f "$(RELEASE_DIR)/$(STAR_TGZ)" release: tarball clean: - rm -fr rakudo - rm -fr nqp - rm -fr MoarVM - rm -fr src + rm -fr work -- cgit v1.1 From 0e92a12c3429afec0f2c4787c2ed14e9cce961cd Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 10:14:28 +0100 Subject: Fix latest modules in MODULES.txt --- modules/MODULES.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/MODULES.txt b/modules/MODULES.txt index 8e267fa..fa07ea6 100644 --- a/modules/MODULES.txt +++ b/modules/MODULES.txt @@ -26,15 +26,15 @@ Digest::MD5 HTTP::Status Template::Mustache PSGI -HTTP-Easy # PSGI -Template-Mojo -NativeHelpers-Blob +HTTP::Easy # PSGI +Template::Mojo +NativeHelpers::Blob DBIish # NativeHelpers::Blob Test::When -File-Directory-Tree +File::Directory::Tree Digest Testo -Temp-Path # Digest::SHA, File::Directory::Tree +Temp::Path # Digest::SHA, File::Directory::Tree Pod::Load # Temp::Path Test::Output Pod::To::HTML # Pod::Load -- cgit v1.1 From e0416bf1a9bf810e2ca1591b88c9fc4508fd33c5 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 11:48:30 +0100 Subject: Update release documentation --- README.md | 36 +-- bin/mkchecksum.sh | 24 ++ bin/mkrelease.sh | 2 +- docs/guides/adding-new-community-modules.md | 9 + docs/guides/mac-dmg.pod | 142 +++++++++++ docs/guides/release-guide.pod | 273 ++++++++++++++++++++++ docs/guides/windows-msi.pod | 155 ++++++++++++ tools/star/mac-dmg.pod | 142 ----------- tools/star/release-guide.pod | 350 ---------------------------- tools/star/windows-msi.pod | 155 ------------ 10 files changed, 624 insertions(+), 664 deletions(-) create mode 100644 bin/mkchecksum.sh create mode 100644 docs/guides/adding-new-community-modules.md create mode 100644 docs/guides/mac-dmg.pod create mode 100644 docs/guides/release-guide.pod create mode 100644 docs/guides/windows-msi.pod delete mode 100644 tools/star/mac-dmg.pod delete mode 100644 tools/star/release-guide.pod delete mode 100644 tools/star/windows-msi.pod diff --git a/README.md b/README.md index 5b10faa..14d50a8 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,29 @@ # Rakudo Star -This git repository contains _only_ the tools needed to create a Rakudo Star distribution. +Rakudo Star is a user-oriented distribution of the Raku programming language, +and a number of common community modules. -The `tar` files available from `github.com` -are NOT suitable for building Rakudo Star; do not use them. +This git repository contains _only_ the tools needed to create a Rakudo Star +distribution, not the sources of individual components of the distribution. +These are fetched when you build the distribution tarball. -## Get Rakudo Star -To get the latest release of Rakudo Star, please download the corresponding file depending on your platform. +The `tar` files available from `github.com` for MoarVM, NQP and Rakudo are NOT +suitable for building Rakudo Star; do not use them. Instead, use the tarballs +found on the individual projects' sites, which correctly contain all the +utilities and dependencies used by them. -* [Linux](https://rakudo.org/latest/star/source) -* [Windows](https://rakudo.org/latest/star/win64) -* [macOS](https://rakudo.org/latest/star/macos) +## Get Rakudo Star -## Build Rakudo Star -If you're a Rakudo Star release manager, or someone who wants to create a new Perl 6 -distribution based on the tools here, then run `make -f tools/star/Makefile` to -populate a distribution image. +To get the latest release of Rakudo Star, please download the corresponding +file depending on your platform. -## Guides -* [Release guide](tools/star/release-guide.pod) +- [Linux](https://rakudo.org/latest/star/source) +- [Windows](https://rakudo.org/latest/star/win64) +- [macOS](https://rakudo.org/latest/star/macos) -* [Guide to build MSI packages](tools/star/windows-msi.pod) +## Build Rakudo Star -* [Guide to build DMG packages](tools/star/mac-dmg.pod) +If you're a Rakudo Star release manager, or someone who wants to create a +user-friendly Raku distribution based on the tools here, check the `guides` +directory. This contains documentation on how to make a Rakudo Star tarball, as +well as information on how to create Windows `.msi` and MacOS `.dmg` packages. diff --git a/bin/mkchecksum.sh b/bin/mkchecksum.sh new file mode 100644 index 0000000..735570c --- /dev/null +++ b/bin/mkchecksum.sh @@ -0,0 +1,24 @@ +#! /usr/bin/env sh + +main() +{ + if [ -z "$1" ] + then + usage + exit 1 + fi + + printf "md5 %s\n" "$(md5sum "$1" | cut -f1 -d" ")" + printf "sha1 %s\n" "$(sha1sum "$1" | cut -f1 -d" ")" + printf "sha224 %s\n" "$(sha224sum "$1" | cut -f1 -d" ")" + printf "sha256 %s\n" "$(sha256sum "$1" | cut -f1 -d" ")" + printf "sha384 %s\n" "$(sha384sum "$1" | cut -f1 -d" ")" + printf "sha512 %s\n" "$(sha512sum "$1" | cut -f1 -d" ")" +} + +usage() +{ + printf "NYI\n" +} + +main "$@" diff --git a/bin/mkrelease.sh b/bin/mkrelease.sh index 7c712e0..67df86d 100755 --- a/bin/mkrelease.sh +++ b/bin/mkrelease.sh @@ -17,7 +17,7 @@ main() usage() { - print "NYI" + print "NYI\n" } main "$@" diff --git a/docs/guides/adding-new-community-modules.md b/docs/guides/adding-new-community-modules.md new file mode 100644 index 0000000..42c429f --- /dev/null +++ b/docs/guides/adding-new-community-modules.md @@ -0,0 +1,9 @@ + + +If there are any new modules to be added, use C to add +its repo to the modules/ directory. Also add the module directory +name to the C 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." diff --git a/docs/guides/mac-dmg.pod b/docs/guides/mac-dmg.pod new file mode 100644 index 0000000..7ebc64a --- /dev/null +++ b/docs/guides/mac-dmg.pod @@ -0,0 +1,142 @@ +=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. 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 from Apple if you don't already have the C 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, 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 in the top +level directory before rerunning the previous step. + +Note the C<--build> option will automatically delete the binary destination +directory of C 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 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 + +To sanity test + + open Temp_build/Rakudo-Star-YYYY-MM.dmg + +This should automount C 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 folder to the Applications Link folder (with arrow) +should repopulate C. + +Append your C as suggested in the C 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. + +=item Step 8 + +Upload the dmg and SHA256 to L: + + 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/docs/guides/release-guide.pod b/docs/guides/release-guide.pod new file mode 100644 index 0000000..5bd8ce2 --- /dev/null +++ b/docs/guides/release-guide.pod @@ -0,0 +1,273 @@ +# Rakudo Star release guide + +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. + +## Creating a release distribution + +If this is your first time releasing, **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. + +### Clone this repository + + git clone git://gitlab.com/tyil/rakudo-star.git + +If this is not your first time, you probably already have a copy of this +repository, in which case you should pull the latest changes. + + git pull origin master + +### Branch out + +Since all the information is stored in git, this is a great moment to create a +new branch. This will make it easier to roll back if things go horribly wrong, +and to create a merge request later on to get other people to review the +changes. + + git switch -c $VERSION-rc1 + +### Update all community modules + +All community modules that are going to be bundled with this release need to be +made up-to-date. These are managed as submodules, so `git submodule` comes in +handy here. + + git submodule sync + git submodule update --init --recursive + git submodule foreach git pull origin master + git commit -m "Update submodules" + +At this point `git status` should report a clean repository. + +### Set component versions + +Inside the repository is a Makefile which indicates which versions of upstream +components should be used. This file can be found at `tools/star/Makefile`. +These version numbers are *usually* similar, but not necesarily. Specifically, +it is about the values for `RAKUDO_VER`, `NQP_VER`, `MOAR_VER`. + +If unsure, ask for the specific value for `RAKUDO_VER` in `#raku-dev` on +`irc.freenode.net`. The `NQP_VER` can be found inside the Rakudo repository, in +`tools/build/NQP_REVISION`, and the `MOAR_VER` can be found in the NQP +repository in the `tools/build/MOAR_REVISION` file. + + $EDITOR tools/star/Makefile + git commit -m "Bump component versions" + +### Create a release announcement + +For every release, an announcement should be made. These can be found in +`docs/announce`. They follow the same versioning scheme as Rakudo Star itself, +and as such, the name for the new one should have the current version number, +followed by `.md` since the announcements are in Markdown. + +You should include the latest version number changes, community module changes +(updated ones, deleted ones, new ones), and any other information which might +be relevant to end-users or package maintainers. + + $EDITOR docs/announce/$VERSION.md + git add !$ + git commit -m "Add release announcement for $VERSION" + +### Bump Rakudo Star version number + +The version number for Rakudo Star itself is referred to in another file, +`Makefile.in`, which needs updating. + + $EDITOR tools/build/Makefile.in. + git commit -m "Bump Rakudo Star version" + +### Publish changes + +With all the prep-work done, it is time to build an actual release +distribution. This is done using GitLab CI, so all you need to do now is push +the changes back to the repository. Generally, this would be done through a +merge request, so the changes can be reviewed and approved. Luckily, you're +already using a seperate branch, so this is pretty straightforward as well. + + git push origin $VERSION-rc1 + +This should give you an URL to create a merge request directly, however, if it +does not, you'll have to use your `$BROWSER` to go to the repository web page, +and make one manually. + +### Creating the release candidate + +GitLab CI has been set up to create a new release on every branch or tag. As +such, the previous `git push` should have started a CI job to build a +distribution tarball. If it did not, please consult `#raku-dev` on +`irc.freenode.net`. + +The CI setup also contains a testing phase, where the resulting tarball is +compiled and tested. If any of these steps fail, a solution must be found. The +best place to discuss options would be, again, the `#raku-dev` channel. + +### Creating the official release + +Once the release candidate has been approved to become an official release, the +branch can be merged into `master`. Afterwards, create a new tag for the new +release, and push it to the remote repository. GitLab CI will make a tarball +for you. + + git switch master + git pull origin master + git tag -s $VERSION + git push origin $VERSION + +The `-s` option for `git tag` makes you sign this particular tag with your PGP +key. All tags must be signed, so if you lack a PGP key, you should [strongly +consider to get yourself one](https://fedoraproject.org/wiki/Creating_GPG_Keys). + +### Publishing the official release + +Once GitLab CI has built and tested the final image, you can download it as an +artifact from the job. The job is of stage "Package, and name "Tarball". +Downloading the artifacts will get you a zip file with the tarball inside of +it. Extract the zipfile to some temporary location. Next, create a PGP +signature and checksums for it, to allow other people to verify they got the +right thing. + +For checksumming, a small utility can be found in the `bin` directory, +`mkchecksum`, which will generate a number or checksum formats for a given +file. + + cd -- "$(mktemp -d)" + wget "$ARTIFACTS_URL" + unzip download + cd work/release + gpg --armor --detach-sig *.tar.gz + mkchecksum *.tar.gz > rakudo-star-$VERSION.tar.gz.checksum.txt + +Lastly, the three files you have right now should be uploaded to the remote +server hosting official releases. + +TODO: I currently don't have any information on this step yet! + + 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. + +### Announce the new release + +Now that a new release has been made, you're *technically* done. However, it +would be much appreciated if you also announce to the rest of the world that a +new release has been published. The most important place would be `rakudo.org`. + +#### rakudo.org +The sources of this site can be found in the +[`perl6/rakudo.org`](https://github.com/perl6/rakudo.org repository on GitHub). +It contains a small script to make this easier, called +`push-latest-rakudo-star-announcement.p6`. You will need to have a working +`perl6` in your `$PATH`, and have the `WWW` module installed. + + cd -- "$(mktemp -d)" + git clone git@github.com:perl6/rakudo.org . + ./push-latest-rakudo-star-announcement.p6 $VERSION + +You will also have to bump versions manually in C in +the rakudo.org repo. + +#### Other places of importance + +There are more places around the 'net that should be informed of the new +release. These are not all documented, so you may have to ask around to get +access. + +- http://perl6.org/ +- perl6-users@perl.org +- perl6-language@perl.org +- perl6-compiler@perl.org +- http://en.wikipedia.org/wiki/Rakudo_Perl_6 (latest release date is mentioned in the main text) +- http://en.wikipedia.org/wiki/Perl_6 + +You should actively ask others to advertise the release as well. This includes +their social media accounts and blogs. Notable places include: + +- http://blogs.perl.org/ +- [Perl 6 Facebook Page](https://www.facebook.com/groups/1595443877388632/) +- Reddit: [r/perl](https://www.reddit.com/r/perl/), + [r/rakulang](https://www.reddit.com/r/rakulang/), + [r/programming](https://www.reddit.com/r/programming/) +- [Hacker News](https://news.ycombinator.com/news) +- Twitter: [@rakudoperl](https://twitter.com/rakudoperl) + +### Give yourself some credit + +Add this release and your name to the list of releases at the end of this +document, to eternalize your fame. This may also help other people interested +in making releases to find people to help them when any issues arrive. + + $EDITOR docs/guides/release-guide.md + +You may want to commit and push this file as well, of course. + +**You're done!** Celebrate with the appropriate amount of fun. + +## Rakudo Star release list + +- `2019.03`: hankache, clarkema +- `2018.10`: stmuk +- `2018.06`: stmuk +- `2018.04`: stmuk +- `2018.01`: stmuk +- `2017.10`: stmuk +- `2017.07`: stmuk +- `2017.04`: stmuk +- `2017.01`: stmuk +- `2016.11`: stmuk +- `2016.10`: stmuk +- `2016.07`: stmuk +- `2016.04`: stmuk +- `2016.01`: FROGGS +- `2015.11`: moritz +- `2015.09`: moritz +- `2015.07`: moritz +- `2015.06`: FROGGS +- `2015.03`: moritz +- `2015.02`: moritz +- `2015.01`: moritz +- `2014.12`: moritz +- `2014.09`: FROGGS +- `2014.08`: FROGGS +- `2014.04`: jnthn +- `2014.03`: FROGGS +- `2014.01`: tadzik +- `2013.12`: lue +- `2013.11`: moritz +- `2013.10`: lue +- `2013.09`: moritz +- `2013.08`: moritz +- `2013.05`: pmichaud +- `2013.02`: moritz +- `2013.01`: moritz +- `2012.12`: moritz +- `2012.11`: moritz +- `2012.10`: jnthn +- `2012.09`: pmichaud +- `2012.08`: pmichaud +- `2012.07`: pmichaud +- `2012.06`: moritz +- `2012.05`: moritz +- `2012.04`: moritz +- `2012.02`: jnthn +- `2012.01`: jnthn +- `2011.07`: pmichaud +- `2011.04`: pmichaud +- `2011.01`: pmichaud +- `2010.12`: pmichaud +- `2010.11`: pmichaud +- `2010.10`: pmichaud +- `2010.09`: pmichaud +- `2010.08`: pmichaud +- `2010.07`: pmichaud diff --git a/docs/guides/windows-msi.pod b/docs/guides/windows-msi.pod new file mode 100644 index 0000000..8674c22 --- /dev/null +++ b/docs/guides/windows-msi.pod @@ -0,0 +1,155 @@ +=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. +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, C and C +should be available now. + +Install ActivePerl and make sure it is in C. C should give a +sensible output. + +If you do not have the C compiler C 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 +and replace all following references to C by C. + +=item Step 1 + +Make sure there is no C 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, 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 followed by C. + +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. + +=item Step 6 + +Finally create the MSI package. + + nmake msi + +(Note if you are using Strawberry Perl's GCC use C 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 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 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 and L: + + 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 + +=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 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. 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 from Apple if you don't already have the C 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, 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 in the top -level directory before rerunning the previous step. - -Note the C<--build> option will automatically delete the binary destination -directory of C 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 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 - -To sanity test - - open Temp_build/Rakudo-Star-YYYY-MM.dmg - -This should automount C 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 folder to the Applications Link folder (with arrow) -should repopulate C. - -Append your C as suggested in the C 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. - -=item Step 8 - -Upload the dmg and SHA256 to L: - - 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. 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 binary in your C<$PATH>. Refer to -L 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 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 file, and the MoarVM version that -is in the F file that is included in the NQP -release. - - $ cd star - $ vi tools/star/Makefile - -=item Step 3 - -Run C 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 to add -its repo to the modules/ directory. Also add the module directory -name to the C 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 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. 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 and C 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 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, C, or -C, 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. 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 - -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 and L: - - $ scp rakudo-star-2012.08.tar.gz rakudo@rakudo.org:public_html/downloads/star - -Also upload the detached signature eg. C -and sha256 sum eg. C - -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 in the C and to C 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 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 - -=item * L - -=item * Reddit: L, L, -and L - -=item * L - -=item * L - -=back - -=item Step 14 - -Add this release and your name to the list of releases at the end of this -document (F). - - $ 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. -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, C and C -should be available now. - -Install ActivePerl and make sure it is in C. C should give a -sensible output. - -If you do not have the C compiler C 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 -and replace all following references to C by C. - -=item Step 1 - -Make sure there is no C 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, 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 followed by C. - -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. - -=item Step 6 - -Finally create the MSI package. - - nmake msi - -(Note if you are using Strawberry Perl's GCC use C 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 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 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 and L: - - 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 - -=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 -- cgit v1.1 From 8eefd1c44de429f7f28815efadd5a57910d3757f Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 11:49:54 +0100 Subject: Use the superiour indentation method --- bin/mkchecksum.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/bin/mkchecksum.sh b/bin/mkchecksum.sh index 735570c..45f3416 100644 --- a/bin/mkchecksum.sh +++ b/bin/mkchecksum.sh @@ -2,23 +2,23 @@ main() { - if [ -z "$1" ] - then - usage - exit 1 - fi + if [ -z "$1" ] + then + usage + exit 1 + fi - printf "md5 %s\n" "$(md5sum "$1" | cut -f1 -d" ")" - printf "sha1 %s\n" "$(sha1sum "$1" | cut -f1 -d" ")" - printf "sha224 %s\n" "$(sha224sum "$1" | cut -f1 -d" ")" - printf "sha256 %s\n" "$(sha256sum "$1" | cut -f1 -d" ")" - printf "sha384 %s\n" "$(sha384sum "$1" | cut -f1 -d" ")" - printf "sha512 %s\n" "$(sha512sum "$1" | cut -f1 -d" ")" + printf "md5 %s\n" "$(md5sum "$1" | cut -f1 -d" ")" + printf "sha1 %s\n" "$(sha1sum "$1" | cut -f1 -d" ")" + printf "sha224 %s\n" "$(sha224sum "$1" | cut -f1 -d" ")" + printf "sha256 %s\n" "$(sha256sum "$1" | cut -f1 -d" ")" + printf "sha384 %s\n" "$(sha384sum "$1" | cut -f1 -d" ")" + printf "sha512 %s\n" "$(sha512sum "$1" | cut -f1 -d" ")" } usage() { - printf "NYI\n" + printf "NYI\n" } main "$@" -- cgit v1.1 From 0e62786a8761cb838184b42014a1c0f6bbf33fe9 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 11:51:29 +0100 Subject: Output checksums during CI --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b5977fd..bbaa2d0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,6 +11,7 @@ Tarball: - git submodule sync - git submodule update --init --recursive - bin/mkrelease.sh "$CI_COMMIT_REF_NAME" + - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" artifacts: paths: - work/release @@ -21,6 +22,7 @@ MoarVM: before_script: - apk add --no-cache bash build-base git perl - cd -- "$(mktemp -d)" + - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" - tar xzf "$CI_PROJECT_DIR/work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" script: - cd "rakudo-star-$CI_COMMIT_REF_NAME" -- cgit v1.1 From 49a51fc2974d4284c76b9930fbaf1e34feac3a00 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 11:57:57 +0100 Subject: Add a Test stage --- .gitlab-ci.yml | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bbaa2d0..63d9268 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ stages: - Package - Build + - Test Tarball: stage: Package @@ -16,21 +17,44 @@ Tarball: paths: - work/release -MoarVM: +Rakudo Star: stage: Build image: alpine:latest before_script: - apk add --no-cache bash build-base git perl - - cd -- "$(mktemp -d)" + - cd -- "$CI_PROJECT_DIR/work/build" - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" - tar xzf "$CI_PROJECT_DIR/work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" script: - - cd "rakudo-star-$CI_COMMIT_REF_NAME" + - cd -- "rakudo-star-$CI_COMMIT_REF_NAME" - perl Configure.pl --prefix="$CI_PROJECT_DIR/work/install" --backend=moar --gen-moar --make-install artifacts: paths: - - work/install + - work/build + +Rakudo Test: + stage: Test + image: alpine:latest + before_script: + - apk add --no-cache make + script: + - make rakudo-test + +Rakudo Spectest: + stage: Test + image: alpine:latest + before_script: + - apk add --no-cache make + script: + - make rakudo-spectest + +Community Modules: + stage: Test + image: alpine:latest + before_script: + - apk add --no-cache build-base + script: + - make modules-test -# TODO: Run tests # TODO: Release an updated Docker container # TODO: Release the tarball to some Raku server -- cgit v1.1 From c374126c536e4d80a8035230301db2f56dc50c81 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 12:00:16 +0100 Subject: Make mkchecksum executable --- bin/mkchecksum.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 bin/mkchecksum.sh diff --git a/bin/mkchecksum.sh b/bin/mkchecksum.sh old mode 100644 new mode 100755 -- cgit v1.1 From 43730c85ac0ea90fd15f8886bed6e492ba45dda4 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 12:03:56 +0100 Subject: Add coreutils to Alpine for sha* checksum utils --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 63d9268..4ef4ccd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,7 @@ Tarball: stage: Package image: alpine:latest before_script: - - apk add --no-cache git make perl + - apk add --no-cache coreutils git make perl script: - git submodule sync - git submodule update --init --recursive @@ -21,7 +21,7 @@ Rakudo Star: stage: Build image: alpine:latest before_script: - - apk add --no-cache bash build-base git perl + - apk add --no-cache coreutils bash build-base git perl - cd -- "$CI_PROJECT_DIR/work/build" - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" - tar xzf "$CI_PROJECT_DIR/work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" -- cgit v1.1 From 1f9d532778fd48baacc5563a48c22ab8861d9eca Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 12:04:42 +0100 Subject: Create build directory before starting a build --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4ef4ccd..baad6f4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,6 +22,7 @@ Rakudo Star: image: alpine:latest before_script: - apk add --no-cache coreutils bash build-base git perl + - mkdir -p "$CI_PROJECT_DIR/work/build" - cd -- "$CI_PROJECT_DIR/work/build" - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" - tar xzf "$CI_PROJECT_DIR/work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" -- cgit v1.1 From 3d98a19cdb2810a69de88fa43d266c1dc559dd5c Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 12:07:04 +0100 Subject: Run checksums before changing directory --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index baad6f4..9b777aa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,9 +22,9 @@ Rakudo Star: image: alpine:latest before_script: - apk add --no-cache coreutils bash build-base git perl + - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" - mkdir -p "$CI_PROJECT_DIR/work/build" - cd -- "$CI_PROJECT_DIR/work/build" - - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" - tar xzf "$CI_PROJECT_DIR/work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" script: - cd -- "rakudo-star-$CI_COMMIT_REF_NAME" -- cgit v1.1 From d61aab53d5b8eacae03648429caec336264fa857 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 13:09:15 +0100 Subject: Remove dependency reference for Pod::Load According to the maintainer of Pod::Load (jmerelo), it no longer depends on Temp::Path. A pull request was added for this on the GitHub repository of this project, but seemingly ignored. --- modules/MODULES.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/MODULES.txt b/modules/MODULES.txt index fa07ea6..ce332f3 100644 --- a/modules/MODULES.txt +++ b/modules/MODULES.txt @@ -26,7 +26,7 @@ Digest::MD5 HTTP::Status Template::Mustache PSGI -HTTP::Easy # PSGI +HTTP::Easy # PSGI Template::Mojo NativeHelpers::Blob DBIish # NativeHelpers::Blob @@ -34,8 +34,8 @@ Test::When File::Directory::Tree Digest Testo -Temp::Path # Digest::SHA, File::Directory::Tree -Pod::Load # Temp::Path +Temp::Path # Digest::SHA, File::Directory::Tree +Pod::Load Test::Output Pod::To::HTML # Pod::Load Pod::To::BigPage -- cgit v1.1 From 4786bf0c5ebb74fc51deab33b4b82230d455fac9 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 13:11:23 +0100 Subject: cd to install directory for testing --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9b777aa..fdf25e4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,6 +38,7 @@ Rakudo Test: image: alpine:latest before_script: - apk add --no-cache make + - cd -- work/install script: - make rakudo-test @@ -46,6 +47,7 @@ Rakudo Spectest: image: alpine:latest before_script: - apk add --no-cache make + - cd -- work/install script: - make rakudo-spectest @@ -54,6 +56,7 @@ Community Modules: image: alpine:latest before_script: - apk add --no-cache build-base + - cd -- work/install script: - make modules-test -- cgit v1.1 From 059cddf9f557b827b21803c9dac61066e07a336e Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 13:21:37 +0100 Subject: Add Dockerfile --- .gitlab-ci.yml | 12 +++++++++++- Dockerfile | 15 +++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fdf25e4..e0294a1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ stages: - Package - Build - Test + - Release Tarball: stage: Package @@ -60,5 +61,14 @@ Community Modules: script: - make modules-test -# TODO: Release an updated Docker container +Docker: + stage: Release + image: docker:stable + services: + - docker:dind + before_script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker build --build-arg "VERSION=$CI_COMMIT_REF_NAME" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" . + - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" + # TODO: Release the tarball to some Raku server diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..09ea8bc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM alpine:latest AS build + +ARG VERSION + +COPY work /tmp + +RUN cd -- /tmp/rakudo-star-$VERSION +RUN apk add --no-cache build-base git perl perl-utils libressl +RUN perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar --make-install + +FROM alpine:latest + +COPY --from=build /usr/local /usr/local + +CMD [ "perl6" ] -- cgit v1.1 From d0b15ec84518b1c44671f4c4d646663afde8976c Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 13:30:57 +0100 Subject: Include work/install as artifact --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e0294a1..9596330 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,6 +33,7 @@ Rakudo Star: artifacts: paths: - work/build + - work/install Rakudo Test: stage: Test -- cgit v1.1 From f2e6d8307317a155ed0bc9b20c1c70d19fe184b2 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 13:31:52 +0100 Subject: Add script to Docker --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9596330..260214b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -69,6 +69,7 @@ Docker: - docker:dind before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + script: - docker build --build-arg "VERSION=$CI_COMMIT_REF_NAME" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" . - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" -- cgit v1.1 From ee55f8f93ce57f0db6aa12b34f38b7a4bf894de5 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 14:01:03 +0100 Subject: Use work/build instead of work/install --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 260214b..4ff4288 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -40,7 +40,7 @@ Rakudo Test: image: alpine:latest before_script: - apk add --no-cache make - - cd -- work/install + - cd -- work/build script: - make rakudo-test @@ -49,7 +49,7 @@ Rakudo Spectest: image: alpine:latest before_script: - apk add --no-cache make - - cd -- work/install + - cd -- work/build script: - make rakudo-spectest @@ -58,7 +58,7 @@ Community Modules: image: alpine:latest before_script: - apk add --no-cache build-base - - cd -- work/install + - cd -- work/build script: - make modules-test -- cgit v1.1 From 319d4a8ba74389df1b84b3263b0692a54c2925b7 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 15:26:28 +0100 Subject: Update directory for tests once more --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4ff4288..ec69283 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -40,7 +40,7 @@ Rakudo Test: image: alpine:latest before_script: - apk add --no-cache make - - cd -- work/build + - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make rakudo-test @@ -49,7 +49,7 @@ Rakudo Spectest: image: alpine:latest before_script: - apk add --no-cache make - - cd -- work/build + - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make rakudo-spectest @@ -58,7 +58,7 @@ Community Modules: image: alpine:latest before_script: - apk add --no-cache build-base - - cd -- work/build + - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make modules-test -- cgit v1.1 From 58db608bab33a5d6533d43575e0ff7f5b65b0997 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 15:28:45 +0100 Subject: Include linenoise-dev in build step --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ec69283..a42121d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,7 @@ Rakudo Star: stage: Build image: alpine:latest before_script: - - apk add --no-cache coreutils bash build-base git perl + - apk add --no-cache coreutils bash build-base git linenoise-dev perl - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" - mkdir -p "$CI_PROJECT_DIR/work/build" - cd -- "$CI_PROJECT_DIR/work/build" -- cgit v1.1 From f709fbe0b41844f0b58aa3af79385e53a38e0ce9 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 16:43:06 +0100 Subject: Use both base-devel and perl for test targets --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a42121d..9d35bd6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,7 +39,7 @@ Rakudo Test: stage: Test image: alpine:latest before_script: - - apk add --no-cache make + - apk add --no-cache build-base perl - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make rakudo-test @@ -48,7 +48,7 @@ Rakudo Spectest: stage: Test image: alpine:latest before_script: - - apk add --no-cache make + - apk add --no-cache build-base perl - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make rakudo-spectest @@ -57,7 +57,7 @@ Community Modules: stage: Test image: alpine:latest before_script: - - apk add --no-cache build-base + - apk add --no-cache build-base perl - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make modules-test -- cgit v1.1 From 700b8add62f8eb4188f83152e5001af8611f4178 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Fri, 1 Nov 2019 19:53:55 +0100 Subject: Add git to the spectest --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9d35bd6..5e09733 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,7 +48,7 @@ Rakudo Spectest: stage: Test image: alpine:latest before_script: - - apk add --no-cache build-base perl + - apk add --no-cache build-base git perl - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make rakudo-spectest -- cgit v1.1 From fff41301bcf80a131fcbb6ee79007a1418ce1c52 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 2 Nov 2019 18:04:42 +0100 Subject: Add a debug test This test is intended for debugging issues during the GitLab CI building, installing or testing phases. --- .gitlab-ci.yml | 9 +++++++++ dev-bin/ci-debug.sh | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 dev-bin/ci-debug.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5e09733..87c7a69 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -53,6 +53,15 @@ Rakudo Spectest: script: - make rakudo-spectest +Debug Test: + stage: Test + image: alpine:latest + before_script: + - apk add --no-cache build-base git perl + - export PATH="$CI_PROJECT_DIR/work/install/bin:$CI_PROJECT_DIR/work/install/share/perl6/site/bin:$PATH" + script: + - sh "$CI_PROJECT_DIR/dev-bin/ci-debug.sh" + Community Modules: stage: Test image: alpine:latest diff --git a/dev-bin/ci-debug.sh b/dev-bin/ci-debug.sh new file mode 100644 index 0000000..f7a460a --- /dev/null +++ b/dev-bin/ci-debug.sh @@ -0,0 +1,21 @@ +#! /usr/bin/env sh + +# +# This is an additional script, ran during CI testing. This is intended to +# debug issues that show up only during CI testing. +# + +main() +{ + perl6 -v + perl6 -e 'dd $*KERNEL.signal("SIGHUP"), $*KERNEL.signal("HUP")' + perl6 -e 'dd $*KERNEL.signal(SIGHUP)' + perl6 -e 'dd $*KERNEL.signal("SIGHUP")' + perl6 -e 'dd $*KERNEL.signal(HUP)' + perl6 -e 'dd $*KERNEL.signal("HUP")' + perl6 -e 'dd Signal.enums' + perl6 -e 'dd $*KERNEL.signals' + uname -a +} + +main "$@" -- cgit v1.1 From 05aed947e3bc4bd4213b93537a5c72ce87c2dec1 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 2 Nov 2019 18:05:27 +0100 Subject: Allow the spectest to fail, for now --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 87c7a69..f2ac750 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,6 +47,7 @@ Rakudo Test: Rakudo Spectest: stage: Test image: alpine:latest + allow_failure: true before_script: - apk add --no-cache build-base git perl - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" -- cgit v1.1 From fce4fd307412688ea304a2b59e116f1d4731b219 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 2 Nov 2019 18:59:58 +0100 Subject: Upload releases to dist.tyil.nl --- .gitlab-ci.yml | 11 ++++++++++- bin/release-ftp.sh | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100755 bin/release-ftp.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f2ac750..125e4c5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -83,4 +83,13 @@ Docker: - docker build --build-arg "VERSION=$CI_COMMIT_REF_NAME" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" . - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" -# TODO: Release the tarball to some Raku server +dist.tyil.nl: + stage: Release + image: alpine:latest + env: + FTP_HOST: minion4.tyil.net + FTP_PORT: "3386" + before_script: + - apk add --no-cache lftp + script: + - bin/release-ftp.sh diff --git a/bin/release-ftp.sh b/bin/release-ftp.sh new file mode 100755 index 0000000..8837a22 --- /dev/null +++ b/bin/release-ftp.sh @@ -0,0 +1,38 @@ +#! /usr/bin/env sh + +readonly DISTNAME="rakudo-star-$CI_COMMIT_REF_NAME" + +main() +{ + if list_releases | grep -Fq "$DISTNAME" + then + printf "A release named %s already exists!\n" "$DISTNAME" + exit 1 + fi + + upload_release +} + +list_releases() +{ + lftp -e <<-EOI + open $FTP_HOST:${FTP_PORT:-21}; + user sftp://$FTP_USER $FTP_PASSWORD; + cd ${FTP_DIR:-rakudo-star}; + ls; + bye; + EOI +} + +upload_release() +{ + lftp -e <<-EOI + open $FTP_HOST:${FTP_PORT:-21}; + user sftp://$FTP_USER $FTP_PASSWORD; + cd ${FTP_DIR:-rakudo-star}; + put work/release/rakudo-star-$CI_COMMIT_REF_NAME; + bye; + EOI +} + +main "$@" -- cgit v1.1 From 6c39d09b0bef1e6641871e31568aca09ba1766c9 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 2 Nov 2019 19:01:09 +0100 Subject: Use the correct name in .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 125e4c5..336af88 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -86,7 +86,7 @@ Docker: dist.tyil.nl: stage: Release image: alpine:latest - env: + environment: FTP_HOST: minion4.tyil.net FTP_PORT: "3386" before_script: -- cgit v1.1 From c765ce9ebe81215fab21c021de147cc009ef61af Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 2 Nov 2019 19:05:03 +0100 Subject: Upload checksums over FTP --- .gitlab-ci.yml | 2 +- bin/release-ftp.sh | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 336af88..dfc3577 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -90,6 +90,6 @@ dist.tyil.nl: FTP_HOST: minion4.tyil.net FTP_PORT: "3386" before_script: - - apk add --no-cache lftp + - apk add --no-cache coreutils lftp script: - bin/release-ftp.sh diff --git a/bin/release-ftp.sh b/bin/release-ftp.sh index 8837a22..046b872 100755 --- a/bin/release-ftp.sh +++ b/bin/release-ftp.sh @@ -1,5 +1,6 @@ #! /usr/bin/env sh +readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P) readonly DISTNAME="rakudo-star-$CI_COMMIT_REF_NAME" main() @@ -26,11 +27,15 @@ list_releases() upload_release() { + checksums=$(mktemp) + $BASEDIR/bin/mkchecksum.sh "work/release/$DISTNAME" > "$checksums" + lftp -e <<-EOI open $FTP_HOST:${FTP_PORT:-21}; user sftp://$FTP_USER $FTP_PASSWORD; cd ${FTP_DIR:-rakudo-star}; - put work/release/rakudo-star-$CI_COMMIT_REF_NAME; + put work/release/$DISTNAME; + put $checksums -o $DISTNAME.checksums.txt; bye; EOI } -- cgit v1.1 From 55ba38644e98c58beec5bbcb9e5aa71bc04b5a63 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 2 Nov 2019 19:06:45 +0100 Subject: Documentation is hard --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dfc3577..f0eb313 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -86,7 +86,7 @@ Docker: dist.tyil.nl: stage: Release image: alpine:latest - environment: + variables: FTP_HOST: minion4.tyil.net FTP_PORT: "3386" before_script: -- cgit v1.1 From 9ea39b4d80b278ede426d647b7c2867d1017ac4f Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 2 Nov 2019 19:21:46 +0100 Subject: Add artifacts to release stage --- .gitlab-ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f0eb313..b5de7e8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -82,6 +82,9 @@ Docker: script: - docker build --build-arg "VERSION=$CI_COMMIT_REF_NAME" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" . - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" + artifacts: + paths: + - work dist.tyil.nl: stage: Release @@ -93,3 +96,6 @@ dist.tyil.nl: - apk add --no-cache coreutils lftp script: - bin/release-ftp.sh + artifacts: + paths: + - work/release -- cgit v1.1 From a38a40c626ba0721589f486d3beed555299690da Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 2 Nov 2019 19:22:39 +0100 Subject: Release before testing This is done for now, since testing takes a very long time (the spectest lasts almost an hour), but there's new phases that need to debugged after those as well. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b5de7e8..3711e96 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,8 @@ stages: - Package - Build - - Test - Release + - Test Tarball: stage: Package -- cgit v1.1 From 85973fe63d197d7584a219cbbfb4c1ec96cf6a7e Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Mon, 4 Nov 2019 12:59:36 +0100 Subject: Remove the FTP to dist.tyil.nl GitLab CI seems to not play nice with its CI variables, and I don't have the time to fix more right now. --- .gitlab-ci.yml | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3711e96..93616d4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,8 @@ stages: - Package - Build - - Release - Test + - Release Tarball: stage: Package @@ -85,17 +85,3 @@ Docker: artifacts: paths: - work - -dist.tyil.nl: - stage: Release - image: alpine:latest - variables: - FTP_HOST: minion4.tyil.net - FTP_PORT: "3386" - before_script: - - apk add --no-cache coreutils lftp - script: - - bin/release-ftp.sh - artifacts: - paths: - - work/release -- cgit v1.1 From ac4dcc41d3748fe79801c1b0ccfde0e346c3f35a Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Mon, 4 Nov 2019 16:40:09 +0100 Subject: Update Docker target --- .gitlab-ci.yml | 3 --- Dockerfile | 6 +++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 93616d4..bcb0eff 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -82,6 +82,3 @@ Docker: script: - docker build --build-arg "VERSION=$CI_COMMIT_REF_NAME" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" . - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" - artifacts: - paths: - - work diff --git a/Dockerfile b/Dockerfile index 09ea8bc..ef78892 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,12 +4,16 @@ ARG VERSION COPY work /tmp -RUN cd -- /tmp/rakudo-star-$VERSION +RUN cd -- "$(mktemp -d)" +RUN tar xzf "/tmp/release/rakudo-star-$VERSION.tar.gz" +RUN cd -- "rakudo-star-$VERSION" RUN apk add --no-cache build-base git perl perl-utils libressl RUN perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar --make-install FROM alpine:latest +RUN apk add --no-cache libressl + COPY --from=build /usr/local /usr/local CMD [ "perl6" ] -- cgit v1.1 From 215447a103a4f050c3c5bd544f2628890a649882 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Mon, 4 Nov 2019 18:42:03 +0100 Subject: Update Dockerfile --- Dockerfile | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index ef78892..012e31e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,16 +2,19 @@ FROM alpine:latest AS build ARG VERSION -COPY work /tmp +COPY work /tmp/work + +WORKDIR /tmp/rakudo-star -RUN cd -- "$(mktemp -d)" -RUN tar xzf "/tmp/release/rakudo-star-$VERSION.tar.gz" -RUN cd -- "rakudo-star-$VERSION" RUN apk add --no-cache build-base git perl perl-utils libressl -RUN perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar --make-install +RUN tar xzf "/tmp/work/release/rakudo-star-$VERSION.tar.gz" +RUN cd -- "rakudo-star-$VERSION" \ + && perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar --make-install FROM alpine:latest +WORKDIR /root + RUN apk add --no-cache libressl COPY --from=build /usr/local /usr/local -- cgit v1.1 From 4dd6d96c16adeee22e88c167f3b8deef683939e1 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Tue, 5 Nov 2019 09:17:39 +0100 Subject: Update scripts --- bin/build-release.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ bin/mkchecksum.sh | 36 +++++++++++++++++++++++++++------ bin/mkrelease.sh | 43 ++++++++++++++++++++++++++++++++++------ bin/release-ftp.sh | 43 ---------------------------------------- 4 files changed, 123 insertions(+), 55 deletions(-) create mode 100755 bin/build-release.sh delete mode 100755 bin/release-ftp.sh diff --git a/bin/build-release.sh b/bin/build-release.sh new file mode 100755 index 0000000..0c32d14 --- /dev/null +++ b/bin/build-release.sh @@ -0,0 +1,56 @@ +#! /usr/bin/env sh + +readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P) + +main() +{ + # Handle opts + opts "$@" + shift "$OPTS" + unset OPTS + + # Show help + [ "$OPT_HELP_ONLY" ] && usage && exit 0 + [ -z "$1" ] && usage && exit 1 + + # Build Rakudo Star from the release tarball + mkdir -p -- "$BASEDIR/work/build" + cd -- "$BASEDIR/work/build" + tar xzf "$BASEDIR/work/release/rakudo-star-$1.tar.gz" + cd "rakudo-star-$1" + perl Configure.pl --prefix="$BASEDIR/work/install" --backend=moar --gen-moar +} + +opts() +{ + OPTS=0 + + while getopts ":h" opt + do + case "$opt" in + h) OPT_HELP_ONLY=1 ;; + *) + printf "Invalid option passed: %s\n" "$OPTARG" >&2 + ;; + esac + done +} + +usage() +{ + cat < + +Build Rakudo Star from a release tarball in $BASEDIR/work/release. This tarball +can be easily made using mkrelease.sh in this repository. This will not install +Raku in $BASEDIR/work/install, only build all the required components needed +for testing. + +Options: + -h Show this help text and exit. +EOF +} + +main "$@" diff --git a/bin/mkchecksum.sh b/bin/mkchecksum.sh index 45f3416..5a7ac1f 100755 --- a/bin/mkchecksum.sh +++ b/bin/mkchecksum.sh @@ -2,11 +2,14 @@ main() { - if [ -z "$1" ] - then - usage - exit 1 - fi + # Handle opts + opts "$@" + shift "$OPTS" + unset OPTS + + # Show help + [ "$OPT_HELP_ONLY" ] && usage && exit 0 + [ -z "$1" ] && usage && exit 1 printf "md5 %s\n" "$(md5sum "$1" | cut -f1 -d" ")" printf "sha1 %s\n" "$(sha1sum "$1" | cut -f1 -d" ")" @@ -16,9 +19,30 @@ main() printf "sha512 %s\n" "$(sha512sum "$1" | cut -f1 -d" ")" } +opts() +{ + OPTS=0 + + while getopts ":h" opt + do + case "$opt" in + h) OPT_HELP_ONLY=1 ;; + *) + printf "Invalid option passed: %s\n" "$OPTARG" >&2 + ;; + esac + done +} + usage() { - printf "NYI\n" + cat < + +Make a number of checksums of a given file. +EOF } main "$@" diff --git a/bin/mkrelease.sh b/bin/mkrelease.sh index 67df86d..b5de149 100755 --- a/bin/mkrelease.sh +++ b/bin/mkrelease.sh @@ -4,20 +4,51 @@ readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P) main() { - if [ -z "$1" ] - then - usage - exit 1 - fi + # Handle opts + opts "$@" + shift "$OPTS" + unset OPTS + # Show help + [ "$OPT_HELP_ONLY" ] && usage && exit 0 + [ -z "$1" ] && usage && exit 1 + + # Make the release cd -- "$BASEDIR" make -f tools/star/Makefile all VERSION="$1" make -f tools/star/Makefile release VERSION="$1" } +opts() +{ + OPTS=0 + + while getopts ":h" opt + do + case "$opt" in + h) OPT_HELP_ONLY=1 ;; + *) + printf "Invalid option passed: %s\n" "$OPTARG" >&2 + ;; + esac + done +} + usage() { - print "NYI\n" + cat < + +Make a releasable tarball of Rakudo Star. You must specify a version number, +which will be used to name the tarball. The tarball will be put in +$BASEDIR/work/release. You will still have to manually create checksums and a +PGP signature. + +Options: + -h Show this help text and exit. +EOF } main "$@" diff --git a/bin/release-ftp.sh b/bin/release-ftp.sh deleted file mode 100755 index 046b872..0000000 --- a/bin/release-ftp.sh +++ /dev/null @@ -1,43 +0,0 @@ -#! /usr/bin/env sh - -readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P) -readonly DISTNAME="rakudo-star-$CI_COMMIT_REF_NAME" - -main() -{ - if list_releases | grep -Fq "$DISTNAME" - then - printf "A release named %s already exists!\n" "$DISTNAME" - exit 1 - fi - - upload_release -} - -list_releases() -{ - lftp -e <<-EOI - open $FTP_HOST:${FTP_PORT:-21}; - user sftp://$FTP_USER $FTP_PASSWORD; - cd ${FTP_DIR:-rakudo-star}; - ls; - bye; - EOI -} - -upload_release() -{ - checksums=$(mktemp) - $BASEDIR/bin/mkchecksum.sh "work/release/$DISTNAME" > "$checksums" - - lftp -e <<-EOI - open $FTP_HOST:${FTP_PORT:-21}; - user sftp://$FTP_USER $FTP_PASSWORD; - cd ${FTP_DIR:-rakudo-star}; - put work/release/$DISTNAME; - put $checksums -o $DISTNAME.checksums.txt; - bye; - EOI -} - -main "$@" -- cgit v1.1 From 01762e8554ef4548239d468ee9d43bd75f57bbaa Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 7 Nov 2019 16:01:42 +0100 Subject: Revert changes to module-install.pl Linenoise fails to install for everyone, and this script may be the cause. To test this out, the easiest thing to do would be reverting this file, and see if things work fine now. --- tools/build/module-install.pl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/build/module-install.pl b/tools/build/module-install.pl index 0bd4cee..9f7e038 100644 --- a/tools/build/module-install.pl +++ b/tools/build/module-install.pl @@ -14,7 +14,9 @@ while (<>) { next if /^\s*(#|$)/; my ($module) = /(\S+)/; $exit ||= system $perl6bin, $zefbin, - '--force', '--/test', 'install', "./modules$path_sep$module"; + '--/build-depends', '--/test-depends', '--/depends', + '--/p6c', '--/metacpan', '--/cpan', + '--force', 'install', "./modules$path_sep$module"; } exit $exit; -- cgit v1.1 From 7f7713382f18886e7ca60181891b5cad95e73236 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Mon, 11 Nov 2019 09:52:31 +0100 Subject: Use the .md extension for the release guide --- docs/guides/release-guide.md | 273 ++++++++++++++++++++++++++++++++++++++++++ docs/guides/release-guide.pod | 273 ------------------------------------------ 2 files changed, 273 insertions(+), 273 deletions(-) create mode 100644 docs/guides/release-guide.md delete mode 100644 docs/guides/release-guide.pod diff --git a/docs/guides/release-guide.md b/docs/guides/release-guide.md new file mode 100644 index 0000000..5bd8ce2 --- /dev/null +++ b/docs/guides/release-guide.md @@ -0,0 +1,273 @@ +# Rakudo Star release guide + +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. + +## Creating a release distribution + +If this is your first time releasing, **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. + +### Clone this repository + + git clone git://gitlab.com/tyil/rakudo-star.git + +If this is not your first time, you probably already have a copy of this +repository, in which case you should pull the latest changes. + + git pull origin master + +### Branch out + +Since all the information is stored in git, this is a great moment to create a +new branch. This will make it easier to roll back if things go horribly wrong, +and to create a merge request later on to get other people to review the +changes. + + git switch -c $VERSION-rc1 + +### Update all community modules + +All community modules that are going to be bundled with this release need to be +made up-to-date. These are managed as submodules, so `git submodule` comes in +handy here. + + git submodule sync + git submodule update --init --recursive + git submodule foreach git pull origin master + git commit -m "Update submodules" + +At this point `git status` should report a clean repository. + +### Set component versions + +Inside the repository is a Makefile which indicates which versions of upstream +components should be used. This file can be found at `tools/star/Makefile`. +These version numbers are *usually* similar, but not necesarily. Specifically, +it is about the values for `RAKUDO_VER`, `NQP_VER`, `MOAR_VER`. + +If unsure, ask for the specific value for `RAKUDO_VER` in `#raku-dev` on +`irc.freenode.net`. The `NQP_VER` can be found inside the Rakudo repository, in +`tools/build/NQP_REVISION`, and the `MOAR_VER` can be found in the NQP +repository in the `tools/build/MOAR_REVISION` file. + + $EDITOR tools/star/Makefile + git commit -m "Bump component versions" + +### Create a release announcement + +For every release, an announcement should be made. These can be found in +`docs/announce`. They follow the same versioning scheme as Rakudo Star itself, +and as such, the name for the new one should have the current version number, +followed by `.md` since the announcements are in Markdown. + +You should include the latest version number changes, community module changes +(updated ones, deleted ones, new ones), and any other information which might +be relevant to end-users or package maintainers. + + $EDITOR docs/announce/$VERSION.md + git add !$ + git commit -m "Add release announcement for $VERSION" + +### Bump Rakudo Star version number + +The version number for Rakudo Star itself is referred to in another file, +`Makefile.in`, which needs updating. + + $EDITOR tools/build/Makefile.in. + git commit -m "Bump Rakudo Star version" + +### Publish changes + +With all the prep-work done, it is time to build an actual release +distribution. This is done using GitLab CI, so all you need to do now is push +the changes back to the repository. Generally, this would be done through a +merge request, so the changes can be reviewed and approved. Luckily, you're +already using a seperate branch, so this is pretty straightforward as well. + + git push origin $VERSION-rc1 + +This should give you an URL to create a merge request directly, however, if it +does not, you'll have to use your `$BROWSER` to go to the repository web page, +and make one manually. + +### Creating the release candidate + +GitLab CI has been set up to create a new release on every branch or tag. As +such, the previous `git push` should have started a CI job to build a +distribution tarball. If it did not, please consult `#raku-dev` on +`irc.freenode.net`. + +The CI setup also contains a testing phase, where the resulting tarball is +compiled and tested. If any of these steps fail, a solution must be found. The +best place to discuss options would be, again, the `#raku-dev` channel. + +### Creating the official release + +Once the release candidate has been approved to become an official release, the +branch can be merged into `master`. Afterwards, create a new tag for the new +release, and push it to the remote repository. GitLab CI will make a tarball +for you. + + git switch master + git pull origin master + git tag -s $VERSION + git push origin $VERSION + +The `-s` option for `git tag` makes you sign this particular tag with your PGP +key. All tags must be signed, so if you lack a PGP key, you should [strongly +consider to get yourself one](https://fedoraproject.org/wiki/Creating_GPG_Keys). + +### Publishing the official release + +Once GitLab CI has built and tested the final image, you can download it as an +artifact from the job. The job is of stage "Package, and name "Tarball". +Downloading the artifacts will get you a zip file with the tarball inside of +it. Extract the zipfile to some temporary location. Next, create a PGP +signature and checksums for it, to allow other people to verify they got the +right thing. + +For checksumming, a small utility can be found in the `bin` directory, +`mkchecksum`, which will generate a number or checksum formats for a given +file. + + cd -- "$(mktemp -d)" + wget "$ARTIFACTS_URL" + unzip download + cd work/release + gpg --armor --detach-sig *.tar.gz + mkchecksum *.tar.gz > rakudo-star-$VERSION.tar.gz.checksum.txt + +Lastly, the three files you have right now should be uploaded to the remote +server hosting official releases. + +TODO: I currently don't have any information on this step yet! + + 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. + +### Announce the new release + +Now that a new release has been made, you're *technically* done. However, it +would be much appreciated if you also announce to the rest of the world that a +new release has been published. The most important place would be `rakudo.org`. + +#### rakudo.org +The sources of this site can be found in the +[`perl6/rakudo.org`](https://github.com/perl6/rakudo.org repository on GitHub). +It contains a small script to make this easier, called +`push-latest-rakudo-star-announcement.p6`. You will need to have a working +`perl6` in your `$PATH`, and have the `WWW` module installed. + + cd -- "$(mktemp -d)" + git clone git@github.com:perl6/rakudo.org . + ./push-latest-rakudo-star-announcement.p6 $VERSION + +You will also have to bump versions manually in C in +the rakudo.org repo. + +#### Other places of importance + +There are more places around the 'net that should be informed of the new +release. These are not all documented, so you may have to ask around to get +access. + +- http://perl6.org/ +- perl6-users@perl.org +- perl6-language@perl.org +- perl6-compiler@perl.org +- http://en.wikipedia.org/wiki/Rakudo_Perl_6 (latest release date is mentioned in the main text) +- http://en.wikipedia.org/wiki/Perl_6 + +You should actively ask others to advertise the release as well. This includes +their social media accounts and blogs. Notable places include: + +- http://blogs.perl.org/ +- [Perl 6 Facebook Page](https://www.facebook.com/groups/1595443877388632/) +- Reddit: [r/perl](https://www.reddit.com/r/perl/), + [r/rakulang](https://www.reddit.com/r/rakulang/), + [r/programming](https://www.reddit.com/r/programming/) +- [Hacker News](https://news.ycombinator.com/news) +- Twitter: [@rakudoperl](https://twitter.com/rakudoperl) + +### Give yourself some credit + +Add this release and your name to the list of releases at the end of this +document, to eternalize your fame. This may also help other people interested +in making releases to find people to help them when any issues arrive. + + $EDITOR docs/guides/release-guide.md + +You may want to commit and push this file as well, of course. + +**You're done!** Celebrate with the appropriate amount of fun. + +## Rakudo Star release list + +- `2019.03`: hankache, clarkema +- `2018.10`: stmuk +- `2018.06`: stmuk +- `2018.04`: stmuk +- `2018.01`: stmuk +- `2017.10`: stmuk +- `2017.07`: stmuk +- `2017.04`: stmuk +- `2017.01`: stmuk +- `2016.11`: stmuk +- `2016.10`: stmuk +- `2016.07`: stmuk +- `2016.04`: stmuk +- `2016.01`: FROGGS +- `2015.11`: moritz +- `2015.09`: moritz +- `2015.07`: moritz +- `2015.06`: FROGGS +- `2015.03`: moritz +- `2015.02`: moritz +- `2015.01`: moritz +- `2014.12`: moritz +- `2014.09`: FROGGS +- `2014.08`: FROGGS +- `2014.04`: jnthn +- `2014.03`: FROGGS +- `2014.01`: tadzik +- `2013.12`: lue +- `2013.11`: moritz +- `2013.10`: lue +- `2013.09`: moritz +- `2013.08`: moritz +- `2013.05`: pmichaud +- `2013.02`: moritz +- `2013.01`: moritz +- `2012.12`: moritz +- `2012.11`: moritz +- `2012.10`: jnthn +- `2012.09`: pmichaud +- `2012.08`: pmichaud +- `2012.07`: pmichaud +- `2012.06`: moritz +- `2012.05`: moritz +- `2012.04`: moritz +- `2012.02`: jnthn +- `2012.01`: jnthn +- `2011.07`: pmichaud +- `2011.04`: pmichaud +- `2011.01`: pmichaud +- `2010.12`: pmichaud +- `2010.11`: pmichaud +- `2010.10`: pmichaud +- `2010.09`: pmichaud +- `2010.08`: pmichaud +- `2010.07`: pmichaud diff --git a/docs/guides/release-guide.pod b/docs/guides/release-guide.pod deleted file mode 100644 index 5bd8ce2..0000000 --- a/docs/guides/release-guide.pod +++ /dev/null @@ -1,273 +0,0 @@ -# Rakudo Star release guide - -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. - -## Creating a release distribution - -If this is your first time releasing, **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. - -### Clone this repository - - git clone git://gitlab.com/tyil/rakudo-star.git - -If this is not your first time, you probably already have a copy of this -repository, in which case you should pull the latest changes. - - git pull origin master - -### Branch out - -Since all the information is stored in git, this is a great moment to create a -new branch. This will make it easier to roll back if things go horribly wrong, -and to create a merge request later on to get other people to review the -changes. - - git switch -c $VERSION-rc1 - -### Update all community modules - -All community modules that are going to be bundled with this release need to be -made up-to-date. These are managed as submodules, so `git submodule` comes in -handy here. - - git submodule sync - git submodule update --init --recursive - git submodule foreach git pull origin master - git commit -m "Update submodules" - -At this point `git status` should report a clean repository. - -### Set component versions - -Inside the repository is a Makefile which indicates which versions of upstream -components should be used. This file can be found at `tools/star/Makefile`. -These version numbers are *usually* similar, but not necesarily. Specifically, -it is about the values for `RAKUDO_VER`, `NQP_VER`, `MOAR_VER`. - -If unsure, ask for the specific value for `RAKUDO_VER` in `#raku-dev` on -`irc.freenode.net`. The `NQP_VER` can be found inside the Rakudo repository, in -`tools/build/NQP_REVISION`, and the `MOAR_VER` can be found in the NQP -repository in the `tools/build/MOAR_REVISION` file. - - $EDITOR tools/star/Makefile - git commit -m "Bump component versions" - -### Create a release announcement - -For every release, an announcement should be made. These can be found in -`docs/announce`. They follow the same versioning scheme as Rakudo Star itself, -and as such, the name for the new one should have the current version number, -followed by `.md` since the announcements are in Markdown. - -You should include the latest version number changes, community module changes -(updated ones, deleted ones, new ones), and any other information which might -be relevant to end-users or package maintainers. - - $EDITOR docs/announce/$VERSION.md - git add !$ - git commit -m "Add release announcement for $VERSION" - -### Bump Rakudo Star version number - -The version number for Rakudo Star itself is referred to in another file, -`Makefile.in`, which needs updating. - - $EDITOR tools/build/Makefile.in. - git commit -m "Bump Rakudo Star version" - -### Publish changes - -With all the prep-work done, it is time to build an actual release -distribution. This is done using GitLab CI, so all you need to do now is push -the changes back to the repository. Generally, this would be done through a -merge request, so the changes can be reviewed and approved. Luckily, you're -already using a seperate branch, so this is pretty straightforward as well. - - git push origin $VERSION-rc1 - -This should give you an URL to create a merge request directly, however, if it -does not, you'll have to use your `$BROWSER` to go to the repository web page, -and make one manually. - -### Creating the release candidate - -GitLab CI has been set up to create a new release on every branch or tag. As -such, the previous `git push` should have started a CI job to build a -distribution tarball. If it did not, please consult `#raku-dev` on -`irc.freenode.net`. - -The CI setup also contains a testing phase, where the resulting tarball is -compiled and tested. If any of these steps fail, a solution must be found. The -best place to discuss options would be, again, the `#raku-dev` channel. - -### Creating the official release - -Once the release candidate has been approved to become an official release, the -branch can be merged into `master`. Afterwards, create a new tag for the new -release, and push it to the remote repository. GitLab CI will make a tarball -for you. - - git switch master - git pull origin master - git tag -s $VERSION - git push origin $VERSION - -The `-s` option for `git tag` makes you sign this particular tag with your PGP -key. All tags must be signed, so if you lack a PGP key, you should [strongly -consider to get yourself one](https://fedoraproject.org/wiki/Creating_GPG_Keys). - -### Publishing the official release - -Once GitLab CI has built and tested the final image, you can download it as an -artifact from the job. The job is of stage "Package, and name "Tarball". -Downloading the artifacts will get you a zip file with the tarball inside of -it. Extract the zipfile to some temporary location. Next, create a PGP -signature and checksums for it, to allow other people to verify they got the -right thing. - -For checksumming, a small utility can be found in the `bin` directory, -`mkchecksum`, which will generate a number or checksum formats for a given -file. - - cd -- "$(mktemp -d)" - wget "$ARTIFACTS_URL" - unzip download - cd work/release - gpg --armor --detach-sig *.tar.gz - mkchecksum *.tar.gz > rakudo-star-$VERSION.tar.gz.checksum.txt - -Lastly, the three files you have right now should be uploaded to the remote -server hosting official releases. - -TODO: I currently don't have any information on this step yet! - - 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. - -### Announce the new release - -Now that a new release has been made, you're *technically* done. However, it -would be much appreciated if you also announce to the rest of the world that a -new release has been published. The most important place would be `rakudo.org`. - -#### rakudo.org -The sources of this site can be found in the -[`perl6/rakudo.org`](https://github.com/perl6/rakudo.org repository on GitHub). -It contains a small script to make this easier, called -`push-latest-rakudo-star-announcement.p6`. You will need to have a working -`perl6` in your `$PATH`, and have the `WWW` module installed. - - cd -- "$(mktemp -d)" - git clone git@github.com:perl6/rakudo.org . - ./push-latest-rakudo-star-announcement.p6 $VERSION - -You will also have to bump versions manually in C in -the rakudo.org repo. - -#### Other places of importance - -There are more places around the 'net that should be informed of the new -release. These are not all documented, so you may have to ask around to get -access. - -- http://perl6.org/ -- perl6-users@perl.org -- perl6-language@perl.org -- perl6-compiler@perl.org -- http://en.wikipedia.org/wiki/Rakudo_Perl_6 (latest release date is mentioned in the main text) -- http://en.wikipedia.org/wiki/Perl_6 - -You should actively ask others to advertise the release as well. This includes -their social media accounts and blogs. Notable places include: - -- http://blogs.perl.org/ -- [Perl 6 Facebook Page](https://www.facebook.com/groups/1595443877388632/) -- Reddit: [r/perl](https://www.reddit.com/r/perl/), - [r/rakulang](https://www.reddit.com/r/rakulang/), - [r/programming](https://www.reddit.com/r/programming/) -- [Hacker News](https://news.ycombinator.com/news) -- Twitter: [@rakudoperl](https://twitter.com/rakudoperl) - -### Give yourself some credit - -Add this release and your name to the list of releases at the end of this -document, to eternalize your fame. This may also help other people interested -in making releases to find people to help them when any issues arrive. - - $EDITOR docs/guides/release-guide.md - -You may want to commit and push this file as well, of course. - -**You're done!** Celebrate with the appropriate amount of fun. - -## Rakudo Star release list - -- `2019.03`: hankache, clarkema -- `2018.10`: stmuk -- `2018.06`: stmuk -- `2018.04`: stmuk -- `2018.01`: stmuk -- `2017.10`: stmuk -- `2017.07`: stmuk -- `2017.04`: stmuk -- `2017.01`: stmuk -- `2016.11`: stmuk -- `2016.10`: stmuk -- `2016.07`: stmuk -- `2016.04`: stmuk -- `2016.01`: FROGGS -- `2015.11`: moritz -- `2015.09`: moritz -- `2015.07`: moritz -- `2015.06`: FROGGS -- `2015.03`: moritz -- `2015.02`: moritz -- `2015.01`: moritz -- `2014.12`: moritz -- `2014.09`: FROGGS -- `2014.08`: FROGGS -- `2014.04`: jnthn -- `2014.03`: FROGGS -- `2014.01`: tadzik -- `2013.12`: lue -- `2013.11`: moritz -- `2013.10`: lue -- `2013.09`: moritz -- `2013.08`: moritz -- `2013.05`: pmichaud -- `2013.02`: moritz -- `2013.01`: moritz -- `2012.12`: moritz -- `2012.11`: moritz -- `2012.10`: jnthn -- `2012.09`: pmichaud -- `2012.08`: pmichaud -- `2012.07`: pmichaud -- `2012.06`: moritz -- `2012.05`: moritz -- `2012.04`: moritz -- `2012.02`: jnthn -- `2012.01`: jnthn -- `2011.07`: pmichaud -- `2011.04`: pmichaud -- `2011.01`: pmichaud -- `2010.12`: pmichaud -- `2010.11`: pmichaud -- `2010.10`: pmichaud -- `2010.09`: pmichaud -- `2010.08`: pmichaud -- `2010.07`: pmichaud -- cgit v1.1 From 68a028f13521a2c8718079d4f4965ae92c09fee9 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Mon, 11 Nov 2019 11:23:32 +0100 Subject: Rewrite module-install After some debugging, it appeared to be the options to disable certain sources that caused issues with the command from running in the old fashion. Let's see if keeping the rest is going to fix Linenoise. --- tools/build/module-install.pl | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/tools/build/module-install.pl b/tools/build/module-install.pl index 9f7e038..af6845f 100644 --- a/tools/build/module-install.pl +++ b/tools/build/module-install.pl @@ -2,21 +2,31 @@ 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', '--/test-depends', '--/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; -- cgit v1.1 From 0bd6af6b9ccb4760dc8ac57ed25084ab36668aa8 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Mon, 11 Nov 2019 11:24:32 +0100 Subject: Add a quickstart to the README --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 14d50a8..4bbd9d6 100644 --- a/README.md +++ b/README.md @@ -27,3 +27,12 @@ If you're a Rakudo Star release manager, or someone who wants to create a user-friendly Raku distribution based on the tools here, check the `guides` directory. This contains documentation on how to make a Rakudo Star tarball, as well as information on how to create Windows `.msi` and MacOS `.dmg` packages. + +### Quickstart + + export VERSION=quickstart # Update to whatever version number you want to use + ./bin/mkrelease.sh "$VERSION" + mkdir -p work/build + tar xzf "work/release/rakudo-star-$VERSION.tar.gz" -C work/build + cd "work/build/rakudo-star-$VERSION" + perl Configure.pl --prefix="../../install" --backend=moar --gen-moar --make-install -- cgit v1.1 From f7e7679bcdaada8926df21e9de5ae101addf45ee Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 16 Nov 2019 16:29:43 +0100 Subject: Replace Linenoise with Readline --- .gitlab-ci.yml | 2 +- .gitmodules | 6 ++++++ Dockerfile | 2 +- modules/LibraryCheck | 1 + modules/Linenoise | 1 - modules/MODULES.txt | 7 ++++--- modules/Readline | 1 + 7 files changed, 14 insertions(+), 6 deletions(-) create mode 160000 modules/LibraryCheck delete mode 160000 modules/Linenoise create mode 160000 modules/Readline diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bcb0eff..2e0e1a2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,7 @@ Rakudo Star: stage: Build image: alpine:latest before_script: - - apk add --no-cache coreutils bash build-base git linenoise-dev perl + - apk add --no-cache coreutils bash build-base git openssl-dev perl readline-dev - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" - mkdir -p "$CI_PROJECT_DIR/work/build" - cd -- "$CI_PROJECT_DIR/work/build" diff --git a/.gitmodules b/.gitmodules index 9cd06e3..6583850 100644 --- a/.gitmodules +++ b/.gitmodules @@ -172,3 +172,9 @@ [submodule "modules/Test::Output"] path = modules/Test::Output url = git://github.com/perl6-community-modules/perl6-Test-Output.git +[submodule "modules/LibraryCheck"] + path = modules/LibraryCheck + url = git://github.com/jonathanstowe/LibraryCheck.git +[submodule "modules/Readline"] + path = modules/Readline + url = git://github.com/drforr/perl6-readline.git diff --git a/Dockerfile b/Dockerfile index 012e31e..3117420 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ COPY work /tmp/work WORKDIR /tmp/rakudo-star -RUN apk add --no-cache build-base git perl perl-utils libressl +RUN apk add --no-cache build-base git perl perl-utils openssl-dev readline-dev RUN tar xzf "/tmp/work/release/rakudo-star-$VERSION.tar.gz" RUN cd -- "rakudo-star-$VERSION" \ && perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar --make-install diff --git a/modules/LibraryCheck b/modules/LibraryCheck new file mode 160000 index 0000000..e713a7f --- /dev/null +++ b/modules/LibraryCheck @@ -0,0 +1 @@ +Subproject commit e713a7f773f3352801bd43d399e3bdcb3baae5f0 diff --git a/modules/Linenoise b/modules/Linenoise deleted file mode 160000 index 480fd91..0000000 --- a/modules/Linenoise +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 480fd919b2c082e691c518fd50c19ad8719532b6 diff --git a/modules/MODULES.txt b/modules/MODULES.txt index ce332f3..c02c62f 100644 --- a/modules/MODULES.txt +++ b/modules/MODULES.txt @@ -43,10 +43,9 @@ File::Temp # File::Directory::Tree File::Find p6doc # File::Temp Debugger::UI::CommandLine -Shell::Command -LibraryMake # check needed? -Linenoise File::Which +Shell::Command # File::Which, File::Temp +LibraryMake # Shell::Command IO::String DateTime::Format DateTime::Parse # HTTP::UserAgent @@ -57,3 +56,5 @@ JSON::RPC # PSGI, HTTP::Useragent Getopt::Long TAP App::Prove6 +LibraryCheck +Readline # LibraryCheck diff --git a/modules/Readline b/modules/Readline new file mode 160000 index 0000000..054a8e9 --- /dev/null +++ b/modules/Readline @@ -0,0 +1 @@ +Subproject commit 054a8e9461e79473099b2e75e4a5e0797adae3a7 -- cgit v1.1 From b8d2d98b77acc7489ec2e5cab9afcbf6c0167a66 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 16 Nov 2019 17:10:51 +0100 Subject: Fix typo in HTTP::UserAgent entry --- modules/MODULES.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/MODULES.txt b/modules/MODULES.txt index c02c62f..ce308a1 100644 --- a/modules/MODULES.txt +++ b/modules/MODULES.txt @@ -51,8 +51,8 @@ DateTime::Format DateTime::Parse # HTTP::UserAgent IO::Capture::Simple Test::Util::ServerPort -HTTP::Useragent -JSON::RPC # PSGI, HTTP::Useragent +HTTP::UserAgent +JSON::RPC # PSGI, HTTP::UserAgent Getopt::Long TAP App::Prove6 -- cgit v1.1 From cd3796deea1b2778db82c47425265955c37a805d Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sat, 16 Nov 2019 17:44:57 +0100 Subject: Add Encode as dependency for HTTP::UserAgent --- .gitmodules | 3 +++ modules/Encode | 1 + modules/MODULES.txt | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) create mode 160000 modules/Encode diff --git a/.gitmodules b/.gitmodules index 6583850..46597d9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -178,3 +178,6 @@ [submodule "modules/Readline"] path = modules/Readline url = git://github.com/drforr/perl6-readline.git +[submodule "modules/Encode"] + path = modules/Encode + url = git://github.com/sergot/perl6-encode.git diff --git a/modules/Encode b/modules/Encode new file mode 160000 index 0000000..702214d --- /dev/null +++ b/modules/Encode @@ -0,0 +1 @@ +Subproject commit 702214dcedd05ea62d815ffb4c287e1596cee4c9 diff --git a/modules/MODULES.txt b/modules/MODULES.txt index ce308a1..3a489b7 100644 --- a/modules/MODULES.txt +++ b/modules/MODULES.txt @@ -51,7 +51,8 @@ DateTime::Format DateTime::Parse # HTTP::UserAgent IO::Capture::Simple Test::Util::ServerPort -HTTP::UserAgent +Encode +HTTP::UserAgent # Encode JSON::RPC # PSGI, HTTP::UserAgent Getopt::Long TAP -- cgit v1.1 From 883ab86093d8ce507cefb4e28aaa753a2f9082dc Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 14:57:31 +0100 Subject: Update distribution modules --- modules/DBIish | 2 +- modules/Encode | 2 +- modules/File::Directory::Tree | 2 +- modules/JSON::Fast | 2 +- modules/License::SPDX | 2 +- modules/Readline | 2 +- modules/p6doc | 2 +- modules/zef | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/DBIish b/modules/DBIish index 1131284..496aed3 160000 --- a/modules/DBIish +++ b/modules/DBIish @@ -1 +1 @@ -Subproject commit 1131284aa434b630e1ee7bd2602cf5cc73f78c9a +Subproject commit 496aed3fd2abd5cfc73b910335e090197e810996 diff --git a/modules/Encode b/modules/Encode index 702214d..4c7c0e3 160000 --- a/modules/Encode +++ b/modules/Encode @@ -1 +1 @@ -Subproject commit 702214dcedd05ea62d815ffb4c287e1596cee4c9 +Subproject commit 4c7c0e3b4f86216c2dace7855197f1d9086a7775 diff --git a/modules/File::Directory::Tree b/modules/File::Directory::Tree index 25faef9..12f1ab5 160000 --- a/modules/File::Directory::Tree +++ b/modules/File::Directory::Tree @@ -1 +1 @@ -Subproject commit 25faef927c83eea1b688b5a324d5e11011f7305f +Subproject commit 12f1ab52191efa38787de26e5a8d4c01a94d03a8 diff --git a/modules/JSON::Fast b/modules/JSON::Fast index 3a29ede..eb6ae0d 160000 --- a/modules/JSON::Fast +++ b/modules/JSON::Fast @@ -1 +1 @@ -Subproject commit 3a29ede8ec738b185a71f11b462cbb63bc8b8b70 +Subproject commit eb6ae0d339ed2441eb9df7758e3e1b6609eb5141 diff --git a/modules/License::SPDX b/modules/License::SPDX index 6e7d547..f37cdac 160000 --- a/modules/License::SPDX +++ b/modules/License::SPDX @@ -1 +1 @@ -Subproject commit 6e7d5477a59b364317bee162eb1b00ef8884a25a +Subproject commit f37cdac8d3177c82ea095a66907331e033152e08 diff --git a/modules/Readline b/modules/Readline index 054a8e9..0d380bc 160000 --- a/modules/Readline +++ b/modules/Readline @@ -1 +1 @@ -Subproject commit 054a8e9461e79473099b2e75e4a5e0797adae3a7 +Subproject commit 0d380bc191698d09ec0557e773e16ba773088d3e diff --git a/modules/p6doc b/modules/p6doc index cfa072a..5bb0e8c 160000 --- a/modules/p6doc +++ b/modules/p6doc @@ -1 +1 @@ -Subproject commit cfa072a239efb33d9517a21534b561cc5f24c998 +Subproject commit 5bb0e8c8f980f3f31517d5e9df664a23bd1de421 diff --git a/modules/zef b/modules/zef index 9db010a..0484e30 160000 --- a/modules/zef +++ b/modules/zef @@ -1 +1 @@ -Subproject commit 9db010a4f32c4af866832c3979d0fcf5211a64a6 +Subproject commit 0484e30ba82f7860b785e2a1d7759379b2c78488 -- cgit v1.1 From 7324559471ba0fe65b0e79b4fac8a9983dca20ea Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 14:57:56 +0100 Subject: Bump component versions --- tools/star/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/star/Makefile b/tools/star/Makefile index a1b879a..dff0044 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -2,9 +2,9 @@ # eg. 2017.07 etc. # Occasionally (mis-)used to pull in fixes (see 'lastmin-fixes.txt') # eg. 2017.07-9-gc0abee7 etc. -RAKUDO_VER = 2019.07.1 -NQP_VER = 2019.07.1 -MOAR_VER = 2019.07.1 +RAKUDO_VER = 2019.11 +NQP_VER = 2019.11 +MOAR_VER = 2019.11 STAR_REL = rakudo-star-$(VERSION) STAR_TGZ = $(STAR_REL).tar.gz -- cgit v1.1 From 7ddedb42b8dd97c5e4f97f74d0787f48b3580dda Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 14:58:53 +0100 Subject: Bump Rakudo Star version --- tools/build/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in index 59f9480..9befd0c 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.07 +STAR_VERSION = 2019.11 # install location PREFIX_DIR = @prefix@ -- cgit v1.1 From 5939f06f4dc29cd3c39b625c00dfa8fd5d1374d8 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 15:11:48 +0100 Subject: Update the source URLs in the Makefile to use upstream --- tools/star/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/star/Makefile b/tools/star/Makefile index dff0044..3744e21 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -17,7 +17,7 @@ RAKUDO_TGZ = rakudo-$(RAKUDO_VER).tar.gz RAKUDO_URL = https://rakudo.perl6.org/downloads/rakudo/$(RAKUDO_TGZ) RAKUDO_SRC = $(SRC_DIR)/$(RAKUDO_TGZ) NQP_TGZ = nqp-$(NQP_VER).tar.gz -NQP_URL = https://dist.tyil.nl/raku/nqp/$(NQP_TGZ) +NQP_URL = https://rakudo.perl6.org/downloads/nqp/$(NQP_TGZ) NQP_SRC = $(SRC_DIR)/$(NQP_TGZ) MOAR_TGZ = MoarVM-$(MOAR_VER).tar.gz MOAR_URL = https://www.moarvm.org/releases/$(MOAR_TGZ) -- cgit v1.1 From 009aa7e91793ce43e73324dad22bed9917500756 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 16:06:11 +0100 Subject: Skip testing phase when installing Rakudo Star --- tools/build/module-install.pl | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/build/module-install.pl b/tools/build/module-install.pl index af6845f..eadb99e 100644 --- a/tools/build/module-install.pl +++ b/tools/build/module-install.pl @@ -17,9 +17,15 @@ while (<>) { # Create the command list my @cmd = ( - $perl6bin, $zefbin, - '--/build-depends', '--/test-depends', '--/depends', - '--force', 'install', "./modules$path_sep$module" + $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 -- cgit v1.1 From bbbcf20d4c15a9378d89b5cccbc19a48c65d5f22 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 16:10:33 +0100 Subject: Add openssl and readline development packages for testing --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2e0e1a2..98b7ad8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -67,7 +67,7 @@ Community Modules: stage: Test image: alpine:latest before_script: - - apk add --no-cache build-base perl + - apk add --no-cache build-base openssl-dev perl readline-dev - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make modules-test -- cgit v1.1 From 00f451632167fff34c94b5b9c81117e16b67d94a Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 16:54:54 +0100 Subject: Use verbose module testing --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 98b7ad8..84a9592 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -70,7 +70,7 @@ Community Modules: - apk add --no-cache build-base openssl-dev perl readline-dev - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - - make modules-test + - make verbose-modules-test Docker: stage: Release -- cgit v1.1 From fe8e97975194a47772ecdaef4462cd99d9e5c891 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 16:55:08 +0100 Subject: Update modules-test script --- tools/build/modules-test.pl | 49 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/tools/build/modules-test.pl b/tools/build/modules-test.pl index 396f066..1c8239b 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; @@ -9,17 +12,39 @@ my $base = shift @ARGV; my $perl6 = shift @ARGV; 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+)/; + + # Run the tests through prove + if (-d "$base/modules/$moduledir/t") { + 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 "@cmd\n"; + + # Actually run the command + my $exit = system "@cmd"; + + # Exit early if any errors occurred + exit 1 if $exit; + } + else { + print "...no t/ directory found.\n"; + } + + print "\n"; } -0; +# If we reach this, no errors have been found +exit 0; -- cgit v1.1 From 4f00646962d0bad4972be457aa244fc58b3c35ab Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 17:32:38 +0100 Subject: Include Test::Harness package for module testing --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 84a9592..d8c68ef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -67,7 +67,7 @@ Community Modules: stage: Test image: alpine:latest before_script: - - apk add --no-cache build-base openssl-dev perl readline-dev + - apk add --no-cache build-base openssl-dev perl perl-test-harness readline-dev - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make verbose-modules-test -- cgit v1.1 From 1308da5062946cd56573894af89e98ba8ce45ac5 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 21:05:02 +0100 Subject: Update modules-test to show cwd --- tools/build/modules-test.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/build/modules-test.pl b/tools/build/modules-test.pl index 1c8239b..3d70fcf 100644 --- a/tools/build/modules-test.pl +++ b/tools/build/modules-test.pl @@ -31,7 +31,7 @@ while (<>) { ); # Show the command that's going to be ran, for debugging purposes - print "@cmd\n"; + print "[" . getcwd . "] @cmd\n"; # Actually run the command my $exit = system "@cmd"; -- cgit v1.1 From ee9f3d495da01bc6d43e906c01b1ef5a5b8bc762 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 22:31:20 +0100 Subject: Use -utils to get prove --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d8c68ef..be33ba3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -67,7 +67,7 @@ Community Modules: stage: Test image: alpine:latest before_script: - - apk add --no-cache build-base openssl-dev perl perl-test-harness readline-dev + - apk add --no-cache build-base openssl-dev perl perl-test-harness-utils readline-dev - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: - make verbose-modules-test -- cgit v1.1 From 08eca0b69dc4ac7d9c2c0e012d441899298ca70c Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 23:04:31 +0100 Subject: Don't reinstall modules for testing --- tools/build/Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in index 9befd0c..5ce58e2 100644 --- a/tools/build/Makefile.in +++ b/tools/build/Makefile.in @@ -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) -- cgit v1.1 From 6e8c904bbf0ad34b21e645897490de5ebc405d2a Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 5 Dec 2019 23:09:57 +0100 Subject: Make perl6 available during module testing --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index be33ba3..22bdad8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,8 +58,8 @@ Debug Test: stage: Test image: alpine:latest before_script: - - apk add --no-cache build-base git perl - export PATH="$CI_PROJECT_DIR/work/install/bin:$CI_PROJECT_DIR/work/install/share/perl6/site/bin:$PATH" + - apk add --no-cache build-base git perl script: - sh "$CI_PROJECT_DIR/dev-bin/ci-debug.sh" @@ -67,6 +67,7 @@ Community Modules: stage: Test image: alpine:latest before_script: + - export PATH="$CI_PROJECT_DIR/work/install/bin:$CI_PROJECT_DIR/work/install/share/perl6/site/bin:$PATH" - apk add --no-cache build-base openssl-dev perl perl-test-harness-utils readline-dev - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" script: -- cgit v1.1 From 2df30e9b1c45d22371f9d7fd3e504e6cbffe5250 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sun, 8 Dec 2019 15:41:42 +0100 Subject: Make modules-test not exit after first failure --- tools/build/modules-test.pl | 49 +++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/tools/build/modules-test.pl b/tools/build/modules-test.pl index 3d70fcf..c4b9d00 100644 --- a/tools/build/modules-test.pl +++ b/tools/build/modules-test.pl @@ -10,6 +10,7 @@ GetOptions('verbose' => \my $verbose); my $base = shift @ARGV; my $perl6 = shift @ARGV; +my @failures; while (<>) { # Skip comments @@ -18,33 +19,43 @@ while (<>) { # 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 - if (-d "$base/modules/$moduledir/t") { - chdir("$base/modules/$moduledir"); + chdir("$base/modules/$moduledir"); - my @cmd = ( - 'prove', - $verbose ? '-v' : (), - '-e', $perl6, - '-r', - 't', - ); + 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"; + # Show the command that's going to be ran, for debugging purposes + print "[" . getcwd . "] @cmd\n"; - # Actually run the command - my $exit = system "@cmd"; + # Actually run the command + my $exit = system "@cmd"; - # Exit early if any errors occurred - exit 1 if $exit; - } - else { - print "...no t/ directory found.\n"; + # Exit early if any errors occurred + if ($exit) { + push @failures, $_; } print "\n"; } # If we reach this, no errors have been found -exit 0; +if (@failures) { + print "The following modules failed their tests:\n"; + + foreach (@failures) { + print "- $_\n"; + } + + exit 1; +} -- cgit v1.1 From a5824552c7a850b25fcc6f4410df6873ad16450b Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Mon, 23 Dec 2019 14:50:24 +0100 Subject: Add a release announcement for 2019.11 --- docs/announce/2019.11.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 docs/announce/2019.11.md diff --git a/docs/announce/2019.11.md b/docs/announce/2019.11.md new file mode 100644 index 0000000..8af3599 --- /dev/null +++ b/docs/announce/2019.11.md @@ -0,0 +1,35 @@ +# Announce: Rakudo Star Release 2019.11 + +Just in time for the end of the year, Rakudo Star 2019.11. Only the second +release this year, compared to the usual four releases per year, but it beats +having only a single one. + +Many systems received a couple slight tweaks in order to keep them working for +newer releases. Some of these received them only to make them easier to +understand for me. After a lot of hard work, and with help from people all +around the community, this release was made possible. + +A big thanks to everyone involved! + +## Changes + +- The build system itself received some rigorous changes. All work is now done + in the `work` subdirectory, instead of in the root directory. A number of + scripts were altered to output some more information as well, which is mostly + intended to help Rakudo Star maintainers figure out issues. + +- Perl 6 is being renamed to Raku, and this is the first Rakudo Star release + containing `raku` as executable. It's just a symbolic link to `rakudo` right + now, but it allows you to run programs usin `raku`. + +### Ecosystem Modules + +- `Linenoise` has been dropped in favour of `Readline`. This also got + `LibraryCheck` included, as this is a dependency for `Readline`. + +## Downloads + +- [Rakudo Star 2019.11](https://dist.tyil.nl/raku/rakudo-star/rakudo-star-2019.11.tar.gz) +- [Rakudo Star 2019.11 checksums](https://dist.tyil.nl/raku/rakudo-star/rakudo-star-2019.11.tar.gz.checksums.txt) +- [Rakudo Star 2019.11 PGP signature](https://dist.tyil.nl/raku/rakudo-star/rakudo-star-2019.11.tar.gz.asc) +- [PGP key (0x7A6AC285E2D98827)](https://www.tyil.nl/pubkey.txt) -- cgit v1.1 From c2beccdafb2f98b76594f5680d4e9dab70ad3d77 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Tue, 28 Jan 2020 14:57:01 +0100 Subject: Update submodules --- bin/mkdocker.sh | 52 +++++++++++++++++++++++++++++++++++++++ modules/DBIish | 2 +- modules/Debugger::UI::CommandLine | 2 +- modules/Encode | 2 +- modules/HTTP::UserAgent | 2 +- modules/JSON::Class | 2 +- modules/License::SPDX | 2 +- modules/META6 | 2 +- modules/OO::Monitors | 2 +- modules/TAP | 2 +- modules/p6doc | 2 +- modules/zef | 2 +- 12 files changed, 63 insertions(+), 11 deletions(-) create mode 100755 bin/mkdocker.sh diff --git a/bin/mkdocker.sh b/bin/mkdocker.sh new file mode 100755 index 0000000..8c6e1b8 --- /dev/null +++ b/bin/mkdocker.sh @@ -0,0 +1,52 @@ +#! /usr/bin/env sh + +readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P) + +main() +{ + # Handle opts + opts "$@" + shift "$OPTS" + unset OPTS + + # Show help + [ "$OPT_HELP_ONLY" ] && usage && exit 0 + [ -z "$1" ] && usage && exit 1 + + # Make the Docker image + cd -- "$BASEDIR" + docker build --build-arg "VERSION=$1" -t "rakudo-star:$1" . + docker tag "rakudo-star:$1" rakudo-star:latest +} + +opts() +{ + OPTS=0 + + while getopts ":h" opt + do + case "$opt" in + h) OPT_HELP_ONLY=1 ;; + *) + printf "Invalid option passed: %s\n" "$OPTARG" >&2 + ;; + esac + done +} + +usage() +{ + cat < + +Make a Docker image for Rakudo Star. This requires a release tarball to exist. +You must specify the same version argument as you supplied to mkrelease.sh. + +Options: + -h Show this help text and exit. +EOF +} + +main "$@" diff --git a/modules/DBIish b/modules/DBIish index 496aed3..0c50fd9 160000 --- a/modules/DBIish +++ b/modules/DBIish @@ -1 +1 @@ -Subproject commit 496aed3fd2abd5cfc73b910335e090197e810996 +Subproject commit 0c50fd9a6aa3fa3bc4365e0b81f1c07cae1e944e diff --git a/modules/Debugger::UI::CommandLine b/modules/Debugger::UI::CommandLine index a18de77..45817dc 160000 --- a/modules/Debugger::UI::CommandLine +++ b/modules/Debugger::UI::CommandLine @@ -1 +1 @@ -Subproject commit a18de77df33b9189f093511b6b6249230cd6dc45 +Subproject commit 45817dc77f4e1d0f50d3bd9b64e76f1033cc1973 diff --git a/modules/Encode b/modules/Encode index 4c7c0e3..7561b5f 160000 --- a/modules/Encode +++ b/modules/Encode @@ -1 +1 @@ -Subproject commit 4c7c0e3b4f86216c2dace7855197f1d9086a7775 +Subproject commit 7561b5f48cd666f5f767d400c5fa7444f546e3a0 diff --git a/modules/HTTP::UserAgent b/modules/HTTP::UserAgent index c8c96b4..590680d 160000 --- a/modules/HTTP::UserAgent +++ b/modules/HTTP::UserAgent @@ -1 +1 @@ -Subproject commit c8c96b4fef7f4e3146153a6dec528db9d692c47e +Subproject commit 590680d9679a6a1184ef224ec03b86bd0df26036 diff --git a/modules/JSON::Class b/modules/JSON::Class index 13b01e7..6037517 160000 --- a/modules/JSON::Class +++ b/modules/JSON::Class @@ -1 +1 @@ -Subproject commit 13b01e7c831d6c1dba4ebe1104c8c87711c4f72d +Subproject commit 6037517c6843a6a58d55c778dbe0e2575e04d835 diff --git a/modules/License::SPDX b/modules/License::SPDX index f37cdac..2165ab2 160000 --- a/modules/License::SPDX +++ b/modules/License::SPDX @@ -1 +1 @@ -Subproject commit f37cdac8d3177c82ea095a66907331e033152e08 +Subproject commit 2165ab27ed6e58d3e68eea21bb21d9908d473f40 diff --git a/modules/META6 b/modules/META6 index d40ed95..335492a 160000 --- a/modules/META6 +++ b/modules/META6 @@ -1 +1 @@ -Subproject commit d40ed95d205a7dfecb7b7e3edd5b67c37ade4f3d +Subproject commit 335492ad357a76e5d31166d4f700b66562054d55 diff --git a/modules/OO::Monitors b/modules/OO::Monitors index 6dc1a36..b59fb97 160000 --- a/modules/OO::Monitors +++ b/modules/OO::Monitors @@ -1 +1 @@ -Subproject commit 6dc1a363c7859b760bf973d0ada0773cfdb14356 +Subproject commit b59fb975fe0340cf16c075bc2bc9994a8d9eca64 diff --git a/modules/TAP b/modules/TAP index 4b27221..f014310 160000 --- a/modules/TAP +++ b/modules/TAP @@ -1 +1 @@ -Subproject commit 4b272219941a75809774d6a382d615bfb7779de4 +Subproject commit f0143104bfe37a34ce0c1b0daea08365302dfbf4 diff --git a/modules/p6doc b/modules/p6doc index 5bb0e8c..ac95173 160000 --- a/modules/p6doc +++ b/modules/p6doc @@ -1 +1 @@ -Subproject commit 5bb0e8c8f980f3f31517d5e9df664a23bd1de421 +Subproject commit ac9517314fb567898beaae24a88c831d7154dfb3 diff --git a/modules/zef b/modules/zef index 0484e30..7bbc663 160000 --- a/modules/zef +++ b/modules/zef @@ -1 +1 @@ -Subproject commit 0484e30ba82f7860b785e2a1d7759379b2c78488 +Subproject commit 7bbc6638aa62fa5535aad77252f9a3bc61e87ce1 -- cgit v1.1 From e05c0291f51b420c63234e49ff41a0245160446e Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Tue, 28 Jan 2020 15:37:07 +0100 Subject: Bump component versions --- tools/build/Makefile.in | 2 +- tools/star/Makefile | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in index 5ce58e2..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.11 +STAR_VERSION = 2020.01 # install location PREFIX_DIR = @prefix@ diff --git a/tools/star/Makefile b/tools/star/Makefile index 3744e21..33679a8 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -2,9 +2,9 @@ # eg. 2017.07 etc. # Occasionally (mis-)used to pull in fixes (see 'lastmin-fixes.txt') # eg. 2017.07-9-gc0abee7 etc. -RAKUDO_VER = 2019.11 -NQP_VER = 2019.11 -MOAR_VER = 2019.11 +RAKUDO_VER = 2020.01 +NQP_VER = 2020.01 +MOAR_VER = 2020.01.1 STAR_REL = rakudo-star-$(VERSION) STAR_TGZ = $(STAR_REL).tar.gz -- cgit v1.1 From 8f5849052f6ba7f9115f7f68a1fd0e7eaa1fe7b8 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Tue, 28 Jan 2020 15:37:37 +0100 Subject: Update Makefile to use GitHub as source for Rakudo and NQP --- tools/star/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/star/Makefile b/tools/star/Makefile index 33679a8..b2d4673 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -15,9 +15,10 @@ 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) -- cgit v1.1 From 017b7347f27a1553ff39d7b77ad7c65b731af03f Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Tue, 28 Jan 2020 15:52:23 +0100 Subject: Update the utilities to make building a new release easier --- bin/build-release.sh | 29 +++++++++++++++++++++++------ bin/mkrelease.sh | 4 ++-- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/bin/build-release.sh b/bin/build-release.sh index 0c32d14..fc8319e 100755 --- a/bin/build-release.sh +++ b/bin/build-release.sh @@ -13,27 +13,41 @@ main() [ "$OPT_HELP_ONLY" ] && usage && exit 0 [ -z "$1" ] && usage && exit 1 + prefix="${OPT_PREFIX:-$BASEDIR/work/install}" + + # Exit after every failure from here on out + set -e + # Build Rakudo Star from the release tarball mkdir -p -- "$BASEDIR/work/build" cd -- "$BASEDIR/work/build" tar xzf "$BASEDIR/work/release/rakudo-star-$1.tar.gz" cd "rakudo-star-$1" - perl Configure.pl --prefix="$BASEDIR/work/install" --backend=moar --gen-moar + perl Configure.pl --prefix="$prefix" --backend=moar --gen-moar + + if [ "$OPT_INSTALL" ] + then + make install + fi } opts() { OPTS=0 - while getopts ":h" opt + while getopts ":hip:" opt do case "$opt" in h) OPT_HELP_ONLY=1 ;; + i) OPT_INSTALL=1 ; OPTS=$(( OPTS + 1 )) ;; + p) OPT_PREFIX=$OPTARG ; OPTS=$(( OPTS + 2 )) ;; *) printf "Invalid option passed: %s\n" "$OPTARG" >&2 ;; esac done + + unset opt } usage() @@ -41,15 +55,18 @@ usage() cat < + $(basename "$0") [-i [-p ]] Build Rakudo Star from a release tarball in $BASEDIR/work/release. This tarball -can be easily made using mkrelease.sh in this repository. This will not install -Raku in $BASEDIR/work/install, only build all the required components needed -for testing. +can be easily made using mkrelease.sh in this repository. If you don't specify +-i, this will not install Raku in $BASEDIR/work/install. This can be convenient +if you just want to run some simple tests. Options: -h Show this help text and exit. + -i Also install the freshly built Rakudo Star. + -p Set a prefix to install Rakudo Star into. Defaults to ./work/install, + relative to the repository root. EOF } diff --git a/bin/mkrelease.sh b/bin/mkrelease.sh index b5de149..5dc036d 100755 --- a/bin/mkrelease.sh +++ b/bin/mkrelease.sh @@ -15,8 +15,8 @@ main() # Make the release cd -- "$BASEDIR" - make -f tools/star/Makefile all VERSION="$1" - make -f tools/star/Makefile release VERSION="$1" + make -f tools/star/Makefile all VERSION="$1" \ + && make -f tools/star/Makefile release VERSION="$1" } opts() -- cgit v1.1 From 177ab57bed79822c65bde2bb30525a9cb615502e Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 19 Feb 2020 17:05:42 +0100 Subject: Add announcement to docs --- docs/announce/2020.01.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/announce/2020.01.md diff --git a/docs/announce/2020.01.md b/docs/announce/2020.01.md new file mode 100644 index 0000000..e4e3fc2 --- /dev/null +++ b/docs/announce/2020.01.md @@ -0,0 +1,25 @@ +# Announce: Rakudo Star Release 2020.01 + +This is the first release of Rakudo Star for the year of the lord, 2020. + +The systems that were tweaked in the last version seem to work quite well, and +none were updated. A number of modules did receive updates, and these have been +bundles with this release. + +## Changes + +- Rakudo has been bumped to tag `2020.01`. +- MoarVM has been bumped to tag `2020.01.1`. +- NQP has been bumped to tag `2020.01`. + +### Ecosystem Modules + +No modules were added or removed in this release, compared to the previous +release. + +## Downloads + +- [Rakudo Star 2020.01](https://dist.tyil.nl/raku/rakudo-star/rakudo-star-2020.01.tar.gz) +- [Rakudo Star 2020.01 checksums](https://dist.tyil.nl/raku/rakudo-star/rakudo-star-2020.01.tar.gz.checksums.txt) +- [Rakudo Star 2020.01 PGP signature](https://dist.tyil.nl/raku/rakudo-star/rakudo-star-2020.01.tar.gz.asc) +- [PGP key (0x7A6AC285E2D98827)](https://www.tyil.nl/pubkey.txt) -- cgit v1.1 From 34714c9ec604da31fc87a98f1f7f165ea50214d1 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 19 Feb 2020 17:12:02 +0100 Subject: Improve release quickstart This commit adds the invocations to create checksums and a PGP signature for the release tarball. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 4bbd9d6..36a0ac9 100644 --- a/README.md +++ b/README.md @@ -36,3 +36,9 @@ well as information on how to create Windows `.msi` and MacOS `.dmg` packages. tar xzf "work/release/rakudo-star-$VERSION.tar.gz" -C work/build cd "work/build/rakudo-star-$VERSION" perl Configure.pl --prefix="../../install" --backend=moar --gen-moar --make-install + +If you're satisfied, you probably want to generate checksums and a detached PGP +signature for the release. + + ./bin/mkchecksum "work/release/rakudo-star-$VERSION.tar.gz" + gpg --armor --detach-sign "work/release/rakudo-star-$VERSION.tar.gz" -- cgit v1.1