In this repository you'll find metadata for projects and modules. It's nice to have that in a central place, apart from any specific module installer for at least these three reasons:
The set of people who want access to a module installer and the set of people who want access to module metadata are two different sets.
If each installer has one set of metadata, that's more for everyone to keep updated. If it's in a central place, there's less work.
The list of projects in the ecosystem is really an orthogonal to the installer, or even an installer. It might be used for other things, such as rendering the list at http://modules.raku.org
To add a new module to the ecosystem, add the URL of the module's raw
file to the
META.list file here in the ecosystem. Since the updates to
the ecosystem are announced in the #raku IRC channel, it is helpful
if you include the HTTP URL to your repo in your commit message so others
could easily view your new module, e.g.:
git commit -m 'Add FooBar to ecosystem' -m 'See https://github.com/foobar/FooBar'
Be sure to check your distro to avoid these common issues:
providessection that lists all the modules in your distribution, with correct filenames, otherwise your module will not be installable.
For more information on the
META6.json specification, see https://docs.raku.org/language/modules
There is a module Test::META that can
help you detect some, but not all, of the common problems people have with
After the META.list file is processed, the list of modules is available at http://ecosystem-api.p6c.org/projects.json and any errors encountered during processing at http://ecosystem-api.p6c.org/errors.json. If your module is missing after about an hour since its addition, there may be issues with your META6.json file.
The generated file contains invalid META6.json fragments. This is intentional and any software using it is expected to handle errors gracefully.
It's a fact of life that some modules end up being abandoned, either due to authors losing interest, moving on to other hobbies, or even dying. In such cases, it's possible you may be interested in taking over the module, by replacing the version in the ecosystem with your own repo. To avoid accidental take overs of modules that aren't abandoned, we try to follow this process before taking over:
In short, try to contact the user by more ways than simply opening a PR in their repo and give them enough time to have a chance to respond.
The operation of the ecosystem requires that we copy, distribute, and possibly modify your META file (
META.info) in full or in part, or that we display information from that file on various websites
and other systems. We can't always guarantee proper attribution, that copies are accurate, or that modifications
do not inadvertently produce unintended results.
By submitting your module to the ecosystem, you agree that all entities involved in the operation of the ecosystem, including its testing, mirroring, or archiving, as well as any package installers and auxiliary tools, are allowed to copy, distribute, and modify your META file without limitation for the purposes of making your module available to the Raku community—regardless of what license you choose for the rest of your distribution. You also agree not to hold these entities liable for any damage or inconvenience caused by the operation of the ecosystem or the failure to do so.