DEV Community

Tom Browder
Tom Browder

Posted on

Publishing Raku modules

As a long-time Raku user and author of several published modules, I have learned a good bit from my own experience and from using my Raku friends' modules and I recommend the following steps be considered for new authors.

  • Create a public account on Github

If possible, make it a name you use as a handle on IRC #raku and your auth name for the Zef module archiving system (similar, but more secure than Perl's CPAN).

  • Create a fez account

It is the key-generation system protecting your user name and Zef auth name. It is required in order to publish to the Zef archival system.

  • Create the module on your local host

You may use mi6 (from module App::Mi6), but for extra credit, and highly recommended, use my module Mi6::Helper's binary mi6-helper. It encapsulates many of my preferences I consider to be "best practices," and it greatly eases the boring work of starting a module.

  • Think carefully about the module's name

Perl used to have a recommended standard name hierarchy, but the Raku community has been much more indifferent about that. My first module was a port of a Perl module I needed for a personal Perl project I wanted to port to Raku: Geo::Ellipsoid. When I started my first Raku module from scratch, I asked the community for guidance but didn't get many firm suggestions. I learned later to consider a new module's name in a combination of my opinions melded with existing names of other authors' modules. As our module ecosystem has evolved, it is possible, but a bit rude in my opinion, to use another author's module name, but the system can disambiguate the two by the respective authors' auth names. For example, one of my better modules can be referred to as Date::Names:ver<2.2.4>:auth<zef:tbrowder>.

I also learned, as I worked on a new module, the original name often needed changing as the design zeroed in on its final form. Developing on Github makes it easy to change names prior to publishing a module for the community's use in its fez archive. After that, any name change is more involved and its popularity needs to be considered.

One can see the list of published modules by visiting the site at https://Raku.land. The site does have some issues, but they are slowly being worked. (Note the Modules search window on Raku.org which links to Module.raku.org is not maintained and should be ignored.)

  • Summary

Publishing useful modules is fun and rewarding. The Raku community is a warm and welcoming one. Please visit and we hope you will learn to love the language as much as we do.

Top comments (0)