Skip to content

Instantly share code, notes, and snippets.

@tbrowder
Last active October 11, 2016 12:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tbrowder/6f36138f4f3f704ac650b06ffc4bd7b5 to your computer and use it in GitHub Desktop.
Save tbrowder/6f36138f4f3f704ac650b06ffc4bd7b5 to your computer and use it in GitHub Desktop.
NOTES:
1. The following comments are from my initial foray into the current Perl 6
ecosystem and they are an attempt to help me understand my place in it as a
module developer. All opinions are mine and are subject to change based
on new empirical evidence or critique by those who know the system better
than I.
2. The description assumes use of Github for all version control but could
probably apply to other public version control systems as well.
3. The observations at the moment do not include looks at the internals of
projects zef or panda.
Perl 6 Ecosystem
----------------
1. The module developer of, say, A-b::C, enters (or requests a PR) for one
or more entries in the META.list file at https://github.com/perl6/ecosystem.
2. Each entry is a url to the raw META6.json (or, deprecated, META.info) file
for either a released version or the curent master branch.
3. A cron job on a server (modules.perl6.org?) regularly builds or updates an
sqlite database using code from https://github.com/perl6/modules.perl6.org.
That database is the canonical source for default Perl 6 module information
for installers (currently primary candidates zef and panda).
Problems I see (in no particular order)
---------------------------------------
- The current db as displayed on the server lists only one version of each module.
- The META6.json format needs to be extended a bit to allow for other information
needed by various client services, e.g.,
+ Distinguish between the current master branch and the latest release commit.
- The module display server on https://modules.perl6.org needs to have multiple
pages or each module showing data for each release as well as the current master
branch. The display for each version should diplay the Travis build results
for that version (an existing issue filed by ZoffixNet).
- Much of the tooling is in Perl 5 and should be converted to Perl 6 at some
point.
- Formats and conventions for acceptable modules need to be specified where
necessary to lighten the ecosystem maintenance burden.
- if the goal is to integrate with CPAN, module authors should be required
to register a CPAN author name now, such name which will also be required
to be in the META6.json file
- Much more of the system can be automated given a reasonable META6.json for
each module's entries.
- All META.info files should be renamed to META6.json.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment