Raku / ecosystem

Raku ecosystem – modules and more
https://modules.raku.org/
138 stars 154 forks source link
ecosystem raku

Overview

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:

Adding a module

To add a new module to the ecosystem, add the URL of the module's raw META6.json 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'

Common Errors

Be sure to check your distro to avoid these common issues:

META6.json

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 META6.json files.

Generated File

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.

Module Take Over

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.

LEGAL

The operation of the ecosystem requires that we copy, distribute, and possibly modify your META file (META6.json or legacy 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.