Rand Stats




assixt is a tool to help Perl 6 module developers along their journey of module inception, all the way through publishing it through CPAN.


assixt itself is available on CPAN, from the module App::Assixt. You can use zef to get it installed on your machine:

zef install App::Assixt

Installing the latest master commit

If you're feeling experimental, you can help out by running the latest passing master commit. This release may contain more bugs than the stable release available from CPAN. However, these releases are also all candidates for becoming a stable release, and can therefore do very well with some in-the-field testing.

You can download the latest master release from the GitLab repository, unpack it and install it with zef:

cd "$(mktemp -d)"
curl -L -o assixt.zip https://gitlab.com/tyil/perl6-app-assixt/-/jobs/artifacts/master/download?job=App%3A%3AAssixt
unzip assixt.zip
zef install --force-install .

If all went well, you can now use assixt as you normally would.

If you encounter any bugs or have any feedback of some kind, do not hesitate to submit an issue!

Basic usage

The most basic commands you will want to use are new, touch, and push. The first time you start using it, you are probably interested in bootstrap config as well, but there's a high chance you'll only use it once, so you don't have to remember it. This document only lists the bare basic information required to get you started, and I would recommend you read the module documentation to get familiar with all the possibilities.

bootstrap config

This command will walk through the configuration options, and save the values you supply to the configuration file. Some of these will simply be default values used when making use of assixt, so setting them to what you commonly would want can save you some time and effort later on in your life.

assixt bootstrap config


The new command will ask you for some input, and then create the entire module skeleton for you.

assixt new Local::Test::Module


Using touch you can add new files to your module. While you could use the regular POSIX touch command for this, you may want to consider using the assixt version anyway. In addition to simply making the file, assixt will also update your META6.json to reference the newly created file. If directories need to be made to hold the file, these will also be made for you. And lastly, a small skeleton will be created in the file itself, so you don't need to bother yourself with the boilerplates.

The touch command requires two arguments: the type of thing you want to add, and the name it should get. The types you'll want to use most often are class and unit.

assixt touch class Foo::Bar
assixt touch unit Bar::Foo


push is actually a shorthand for bump, dist and upload. As such, it will bump the version number and update the version number throughout the files in your module, then create a distribution of it (as a .tar.gz file) and finally try to upload that distribution to CPAN.

assixt push

If you don't want the version to be altered, you can use the --no-bump argument.

assixt --no-bump push


This project contains documentation in the module itself. You can access this most easily using the p6man utility. For instance, to get information on the new command, use the following invocation:

p6man App::Assixt::Commands::New

For general information of the module and all available subcommands, use p6man App::Assixt. For general information about the assixt script itself, use p6man assixt. The documentation can probably be improved at many points at this point in time. If you find any issues, please report them on the repository, or send a merge request to fix it immediately as well.