Skip to content

melezhik/r3tool

Repository files navigation

Rakudo Releases Readiness Toolkit

R3 is a useful toolkit for Rakudo release managers and developers, aimed to help with Rakudo release preparations.


report example

SparkyCI

Installation

# install dependencies
zef install --/test https://github.com/melezhik/Sparrow6.git 
zef install --/test https://github.com/melezhik/Tomtit.git
zef install --/test https://github.com/melezhik/Tomty.git

# install Bash completions
tom --completion
tomty --completion

# setup local Sparrow repo
s6 --repo-init ~/repo

# upload Sparrow plugins
git clone https://github.com/melezhik/sparrow-plugins /tmp/sparrow-plugins
cd /tmp/sparrow-plugins
cd bash
cd ../directory
s6 --upload
s6 --index-update

Usage

git clone https://github.com/melezhik/r3tool
cd r3tool

Run tests

Against certain rakudo commit:

export RAKUBIN=/tmp/whateverable/rakudo-moar/4f61a108b1e717a8e05ee861738a412d55be6ed4/bin/raku
tomty --color --all --show-failed

Against default rakudo:

export RAKUBIN=$(which raku)
tomty --color --all --show-failed

Tests groups

One can run various test groups

Examples:

Certain issue:

tomty --color 4369

Only open, not yet fixed issues:

tomty --only=open --color --show-failed

Only old, fixed issues (aka regression):

tomty --only=closed --color --show-failed

Hard to fix issues:

tomty --only=hardtofix --color --show-failed

More sophisticated filtering

Release 2021_06, open issues:

tomty --only=rc_2021_06+open --color --show-failed

Release 2021_06, closed issues but skip slow tests:

tomty --only=rc_2021_06+closed --skip=slow --color --show-failed

Release 2021_05 or 2021_05, issues:

tomty --only=rc_2021_05,rc_2021_06 --color --show-failed

Test for rakudo release 2021_06 against all bugs, but skipping open,example,slow and requiring unicode support in terminal:

tomty --env=2021_06 --skip=slow,example,open,unicode --color --show-failed

Running on predefined environments

Instead of exporting RAKUBIN env variable, one can set tomty environment for convenience:

tomty --env-edit 2021_06
%*ENV<RAKUBIN> = '/tmp/whateverable/rakudo-moar/4887a169b47a1b5805dc3d90b5aa4c83a86fc4dd/bin/raku';

%(
);
tomty --all --env=2021_06 --color --show-failed

One can see a list of predefined environments by:

tomty --env-list

Create a new issue

One can use this command to generate a stub code for a new Rakudo bug:

tom  new-issue 

After you've written a test,

Run the following command to run a new test:

tomty <issue-number>

Test tags

Tags allow to split tests by groups.

To assign tag to test run a following command:

export EDITOR=nano
tomty --edit <issue-number>

Then edit a following tomty test header:

=begin tomty
%(
  tag => $["open", "fresh", "slow"]
);
=end tomty

To list available tags:

  tomty --list --tags

One can combine --tags with --only and --skip options to list tests with certain tags.

Examples:

List open issues for rc 2021_07:

tomty --tags --only=rc_2021_07+open --color

List closed issues for rc 2021_07, but skipping PR tests

tomty --tags --only=rc_2021_07+closed --skip=pr --color\

"Official" list of tags

These tags are currently supported:

tag description
open open issue
closed closed issue/PR
nr reported but not reproduced
rc_<YYYY_MM> issues/PR added in this release
pr test for PR
test_needed cover some GH issues with "test needed" tag
clarify an issue / test case needs clarification
fr feature request
fresh fresh issue
freeze test for "freeze" cases
slow running a test takes a considerable time
hardtofix hard to fix issue
unicode tests require unicode support in terminal

Another helpful commands

Remove issue

tom rm-issue

Show Raku version used in tests

tom raku-version

Show last N rakudo commits

tom rakudo-commits

Install Rakudo whateverable certain commit ( requires Sparrow6::Rakudo::Install module )

export sha=<full sha>
tom  install-rakudo-by-commit

Install Rakudo whateverable the latest commit ( requires Sparrow6::Rakudo::Install module )

tom install-rakudo-latest-commit

Things to do

  • Automatically update open/close tags by GH issues statuses

Author

Alexey Melezhik

See also

Following tools are used to run tests:

Thanks to

God Who inspires me in my life!

About

Rakudo Release Readiness Toolkit

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published