Use the superiour form of indentation
Run zef build for modules that have a Build.pm6
Add locale setting for macOS in install script
A user-friendly distribution of the Raku programming language.
If you cloned the git repository, you will need to run ./bin/rstar fetch
first.
After downloading and extracting the tarball, run ./bin/rstar install
. Follow
any on-screen instructions as they appear. That is all!
If you happen to find any bugs, please refer to the Bugs, Feedback and Patches section later on in this document to find out how you can get help.
This section is intended for maintainers of the Rakudo Star distribution.
rstar
utilityTo help maintainers build the distribution tarball, and end-users to make
effective use of the tarball, a utility has been created, called rstar
. This
utility depends on the bash
shell being available. Run it with -h
to see
what it can do.
Depending on what action you're trying to run, additional dependencies may be
required. If any of these are missing, rstar
will throw an error about it.
1
- die()
was encountered. This is always a bug; 2
- The program was invoked incorrectly; 3
- Some required dependencies are missing.The rstar
utility can be affected by environment variables. These may help
out when debugging issues.
RSTAR_DEBUG
- If set to a non-null value, additional debugging output will
magically appear;RSTAR_MESSY
- If set to a non-null value, the tmp
directory will not be
cleaned when rstar
exits.One of Rakudo Star's main features is in supplying users with a number of popular community modules. This section details the mechanics of how these are included.
You should always prefer to use a pinned version of a module!
This file contains references to all community modules to be bundled with Rakudo Star. It is a space-separated format. The first column is the name of the module, the second the protocol to use, with the third column being the URL to fetch it from. Columns following the third have different meaning depending on the protocol.
git
The git protocol clones a single ref, with a depth of 1. Which ref is going to
be cloned is specified in the 4th column of its modules.txt
entry. After
cloning, the .git
directory is removed.
http
The http protocol is the most straightforward, it downloads a tarball
(.tar.gz
) and unpacks it. If a value is specified in the 4th column of the
entry, this will be used as prefix, and will be stripped away when the
extracted sources are moved into the src
directory.
Your first step will be to prepare a new tarball.
rstar clean -s # Clean up old sources
$EDITOR etc/fetch_core.txt # Update values as necessary
$EDITOR etc/modules.txt # Update values as necessary
git commit # Create a commit for this particular release
rstar fetch # Download new sources
rstar install # Compile and install Rakudo Star
rstar test # Run tests
rstar dist # Create a new distribution tarball
Additionally, you should make a tag that represents the current release name.
Once you have a tarball, you should upload it to be available to others. Common places include:
#raku-dev
for someone to
help you if needed);Next up, you will have to tell people of the new distribution tarball existing.
There are several places to announce this at. The most "official" one would be
the perl6-compiler@perl.org
mailing list. The perl6-users@perl.org
mailing
list is also a good choice, as are public places such as Reddit.
Patches for this project can be sent through email to
~tyil/raku-devel@lists.sr.ht
.
To report bugs or provide other feedback, email is an option, but IRC and
Matrix are also available. For IRC, reach out to tyil
on Libera. For Matrix, send a message to
@tyil:matrix.org
.
If you're reporting a bug, please include the full logs of rstar
with
RSTAR_DEBUG=1
, and the output of rstar sysinfo
in your message.
Code patches can be sent through email. For help getting started with contributing in this fashion, check out git-send-email.
The rstar
utility is written in bash
. All additional features should be
based on this. Using other utilities is accepted, but effort should be made to
avoid introducing new utilities. Furthermore, all code should be linted against
shellcheck
and not produce any warnings.
Also, try to be generous with comments. Especially when introducing new utility functions, a little description of what it does and what problem it is intended to solve go a long way.
The main git repository lives at git.tyil.nl. This should be used as the reference to clone from.
Additionally, there are mirrors of this repository at other places. You can make use of these mirrors and the services they offer (such as issue tracking or web-based "merge requests"), but they are in no way guaranteed to be taken into account.
Copyright (C) 2021-2022
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.