Ecosystem toasting is Serious Business™. You're LITERALLY running arbitrary code from hundreds of strangers!
It's HIGHLY UNrecommended to run this software on anything but a throw-away install that contains no sensitive data. Are you OK if ALL the files on the system published somewhere publicly but without you being able to ever get them again? If not, don't run this software!
You need Rakudo v2017.05.380.*
or newer to run this software.
On an out-of-the-box Debian, run these commands to prepare the system for toasting:
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y install build-essential git curl aptitude libssl-dev \
wget htop zip sqlite3 time \
# libs needed by modules
uuid-dev #LibUUID
\curl -L https://install.perlbrew.pl | bash
git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew
echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bashrc
echo 'export PATH=~/bin:~/.rakudobrew/bin:~/.rakudobrew/moar-master/install/share/perl6/site/bin:$PATH' >> ~/.bashrc
wget https://temp.perl6.party/.bash_aliases
echo 'source ~/.bash_aliases' >> ~/.bashrc
source ~/.bashrc
perlbrew install perl-5.26.0 --notest -Duseshrplib -Dusemultiplicity
perlbrew switch perl-5.26.0
perlbrew install-cpanm
rakudobrew build moar
rakudobrew build zef
# This one is to ensure git doesn't freeze up, waiting for a pass on some
# dists that have wrong URL for source. The script gives it bogus pass
# to use, so it just fails authen and moves on
echo -e '#!/usr/bin/env perl6\nsay 42' > ~/bin/fake-ask-pass
chmod +x ~/bin/fake-ask-pass
echo 'export GIT_ASKPASS=~/bin/fake-ask-pass' >> ~/.bashrc
# ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
# ▼▼▼▼▼▼▼▼▼▼ use your own email in that config file ▼▼▼▼▼▼▼▼▼▼▼▼▼
# ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
mkdir .cpanreporter
echo '[email protected]' > ~/.cpanreporter/config.ini
git clone https://github.com/perl6-community-modules/perl6-Toaster toaster
cd toaster
zef --serial --/test --depsonly install .
# ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
# ▼▼▼▼▼▼▼▼▼▼ specify which commits/tags to toast ▼▼▼▼▼▼▼▼▼▼
# ▼▼▼▼▼▼▼▼▼▼ command below toasts 2017.07, then master ▼▼▼▼▼▼▼▼▼▼
# ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
perl6 bin/toaster-perl6 2017.07 master
To toast the ecosystem, run the bin/toaster-perl6
command, giving it as
positionals args the tags, branches or commits (basically anything
git checkout
will accept). The toaster will build rakudos for the requested
commits so ensure you've got space for that + anything the modules need, for
each of the commits you're toasting.
Note: toasting takes ages (~50 minutes on a 24-core box), so don't go wild with toasting all the commits, if you're not prepared to wait for it.
The toaster will create an SQLite database in toast.sqlite.db
file, with
toasting results for each of the toasted module, and each of the given commits.
perl6 bin/toaster-perl6 2017.03 2017.05 some-branch master 64e898f9baa159e2019
The binary supports --no-build
command line flag, which will avoid compiling the compiler. This
option is handy to use when a previous toasting sessions was interrupted for some reason. You can
restart the toast using the already-built compiler.
The Molicious-based viewer is currently the most up-to-date and recommended. To use it, install Perl, unless you already have it:
\curl -L https://install.perlbrew.pl | bash
echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bashrc
source ~/.bashrc
perlbrew install perl-5.26.2 --notest -Duseshrplib -Dusemultiplicity
perlbrew switch perl-5.26.2
perlbrew install-cpanm
Then install necessary Perl modules:
cpanm -vn Mojolicious::Lite Mojo::SQLite List::Util
Then run the development version of the viewer if you want extra debugging output:
./morbo
Or just run the production version of the viewer:
./hyp
Then go to http://localhost:3333
to view the site.
To use rakudo for running the viewer, run bin/toaster-viewer
and then go to http://localhost:3333
to
view the site.
You'll need Tardigrade Web framework to run it:
zef --/test install https://github.com/zoffixznet/tardigrade/archive/master.zip
Note that currently this method appears to leak memory in one of the supporting modules.
Alternatively, just use SQL queries to view the results. They're all in
the generated toast.sqlite.db
file.
sqlite3 toast.sqlite.db
Fork this module on GitHub: https://github.com/raku-community-modules/Toaster
To report bugs or request features, please use https://github.com/raku-community-modules/Toaster/issues
Zoffix Znet (http://perl6.party/)
You can use and distribute this module under the terms of the
The Artistic License 2.0. See the LICENSE
file included in this
distribution for complete details.
The META6.json
file of this distribution may be distributed and modified
without restrictions or attribution.