Once a Week
Rakudo is still changing quickly for the betterment of mankind (I’m quite sure of that). Once in a while commits will break code that is or was working. Checking for regressions is boring because most of the time it wont happen. As the army of bots that populate #perl6 shows, we like to offload the housekeeping to software and for testing we use travis.
Since a while travis provides build in cronjobs for rebuilding repos automatically. It’s a little hidden.
I missed the cron settings at first because one needs to run a build before it even shows up in the settings tab.
With cron jobs setup to test my modules once a week I will get some angry e-mails every time Rakudo breaks my code.
After clicking the same buttons over and over again I got bored and found the need to automate that step away as well. A meta module that doesn’t do anything but having dependencies to my real modules would save me the clicking and would produce exactly one angry e-mail, what will become more important as the Perl 6 years pass by. The .travis.yml
looks like this:
language: perl6 sudo: false perl6: - latest install: - rakudobrew build-zef - zef --debug install .
And the META6.json
is:
{ "name" : "gfldex-meta-zef-test", "source-url" : "git://github.com/gfldex/gfldex-meta-zef-test", "perl" : "6.c", "build-depends" : [ ], "provides" : { }, "depends" : [ "Typesafe::XHTML::Writer", "Rakudo::Slippy::Semilist", "Operator::defined-alternation", "Concurrent::Channelify", "Concurrent::File::Find", "XHTML::Writer", "Typesafe::HTML" ], "description" : "Meta package to test installation with zef", "test-depends" : [ ], "version" : "0.0.1", "authors" : [ "Wenzel P. P. Peppmeyer" ] }
And lo and behold I found a bug. Installing XHTML::Writer
on a clean system didn’t work because zef uses Build.pm
differently then panda. I had to change the way Rakudos lib path is set because zef keeps dependency modules in temporary directories until the last test passed.
my @include = flat "$where/lib/Typesafe", $*REPO.repo-chain.map(*.path-spec); my $proc = run 'perl6', '-I' «~« @include, "$where/bin/generate-function-definition.p6", "$where/3rd-party/xhtml1-strict.xsd", out => $out-file, :bin;
Please note that Build.pm
will be replaced with something reasonable as soon as we figured out what reasonable means for portable module building.
There is a little bug in zef that makes the meta module fail to test. Said bug is being hunted right now.
All I need to do to get a new module tested weekly by travis is to add it to the meta module and push the commit. Laziness is a programmers virtue indeed.
-
January 23, 2017 at 23:502017.04 Welcome! | Weekly changes in and around Perl 6
-
August 17, 2017 at 14:55Parsing Nothing | Playing Perl 6
You must be logged in to post a comment.