Releasing on github
In my last post I lamented the lack of testing metadata. Just a few days later it got in my way when I played with creating releases on github. My normal workflow on github is to commit changes and push them to trigger travis. When travis is fine I bump the version field in META6.json so the ecosystem and zef
can pick up the changes. And there is a hidden trap. If anybody clones the repo via zef
just before I bump the version, there will be a mismatch between code and version. CPAN doesn’t got that problem because there is always a static tarball per version. With releases we can get the same on github.
It’s a fairly straight forward process.
- build a tag-name from the github-project-name and a version string
- generate the URL the tarball will get in the end (based on tag-name) and use that as source-url in the META6.json
- commit the new META6.json locally
- create a git tag locally
- push the local commit with the changed META6.json to github
- push the git tag to github
- use the github API to create the release, which in turn creates the tarball
This is so simple that I immediately automated that stuff with META6::bin
so I can mess it up. (Not released yet, see below.)
The result is an URL like so: https://github.com/gfldex/raku-release-test/archive/raku-release-test-0.0.19.tar.gz. When we feed that to zef
it will check if the version is not already installed and then proceed to test and install.
And there is a catch. Even though zef
is fine with the URL, Test::META
will complain because it doesn’t end in .git
and fail the test. This in turn will stop zef
from installing the module. We added that check to make sure zef
always gets a proper link to a clone-able repo for modules hosted on github. This assumption is clearly wrong and needs fixing. I will send a PR soon.
Having releases on github (other gitish repo-hosting sites will have similar facilities or will get them) can get us one step closer to a proper RPAN. Once I got my first module into the ecosystem this way I will provide an update here.
-
September 14, 2020 at 16:552020.37 Fundamentally Raku – Rakudo Weekly News