Distributions: uploading

How to upload your distribution to the ecosystem

If you've written a Raku module and would like to share it with the community, we'd be delighted to have it listed in the Raku modules directory. :)

The zef ecosystem uses the fez module uploader utility. Use of the fez command is the way to distribute your module.

The process of sharing your module consists of two steps, preparing the module, and uploading the module to one of the ecosystems mentioned above.

More details on preparing your module can be found on the pages linked from Distributions: An Introduction.

Upload your module to zef ecosystem

If you want to use the zef ecosystem then you need to register your username using fez.

  • Install fez if you haven't done so already

zef install fez
  • Register your user with zef's ecosystem

fez register
>>= Email: [email protected]
>>= Username: username
>>= Password:
>>= registration successful, requesting auth key
>>= login successful, you can now upload dists
  • Now you can upload your module!

Before doing the following, ensure your META6.json file's auth matches zef:<username> and then:

fez upload
>>= Vortex::TotalPerspective:ver<0.1.2>:auth<zef:username> looks OK
>>= Hey! You did it! Your dist will be indexed shortly

Versioning and fez

  • To prevent changes to a versioned distribution (remember a distribution may contain more than one module), only one upload of a distribution per version is permitted. If a developer makes changes to code in a repository, the changes will not be reflected in the fez system. So changes to code must be accompanied by a bump in the version number and the new version uploaded to fez.

That's it! Thanks for contributing to the Raku community!

If you'd like to try out installing your module, use the zef module installer tool which is included with Rakudo Star Raku:

zef install Vortex::TotalPerspective

This will download your module to its own working directory (~/.zef), build it there, and install the module into your local Raku installation directory.

To use Vortex::TotalPerspective from your scripts, just write use Vortex::TotalPerspective, and your Raku implementation will know where to look for the module file(s).

Deprecated ecosystems

There have been three ways to distribute a module, but the CPAN and P6C ways have been deprecated; please use the zef/fez method instead. However, no matter the method, all modules will be indexed on the raku.land website.

Documentation about Modules

Want to distribute your modules?

See Also

Distributing modules: the configuration and structure

How to structure and configure Raku modules for distribution

Distributions: an introduction

Distributions and how they work

Distributions: testing

Testing your distribution of modules

Distributions: the tools

What can help you write/test/improve your distributions of modules

Making modules: the code

How to organize your module with regard to its usage

Making modules: an introduction

Understanding modules

Using modules: the code

How to use Raku modules in your code

Using modules: finding and installing

How to find and install Raku modules

Modules: an introduction

Modules and how they work

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.