Skip to content

Instantly share code, notes, and snippets.

@tony-o
Last active January 16, 2024 17:20
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 tony-o/f515d87319557f96b637974c586c2b54 to your computer and use it in GitHub Desktop.
Save tony-o/f515d87319557f96b637974c586c2b54 to your computer and use it in GitHub Desktop.
raku ecosystem

Proposal

To create an open source infrastructure around raku ecosystems. This proposal to write this code in raku and make it available to the general public. The current state is that the underlying code is written in go and using proprietary AWS lambdas to make everything flow smoothly. The go lambdas are due to be deprecated in early January and this flow will become unmaintanable but usable in its current form.

This grant will deliver the following:

  1. A raku ecosystem repository via Artistic-2.0 with tony-o retaining the original copyright
  2. The repository would live inside of an RSC org's repo
  3. A runnable ecosystem software written in raku

Benefits to Raku

This proposal would benefit the raku community by providing a means of running a raku compatible ecosystem with strict auth, user management, group & role management. This would be a major lift for the raku ecosystems as it would decrease the reliance on shoe-horned solutions such as CPAN/PAUSE and manually maintained list of git repositories. This would also make raku more appealing to organizations considering raku as it would allow for centralized and private module ecosystems for private or proprietary code using already published, publicly available tools such as fez or mi6.

As the solution becomes public this also allows for collaboration with raku developers in fixing bugs, introducing new features, and improving security/reliability of an ecosystem.

Schedule

This schedule will flow as my time allows as I currently have a day job and this happens around that schedule but will take less than a calendar quarter from the start of work.

  1. Create ERD for application entities (~5 hours)
    1. This is will help enable future developers to build and develop against this repo
  2. Create general configuration modules that allow versatility in ecosystems (~20 hours)
    1. This aims to provide some versatility for companies or users that want to configure their private ecosystems
  3. User management modules (~20 hours)
    1. CRUD operations for users
    2. Email operations for password resets and dist related notifications
  4. Group/role management modules (~30 hours)
    1. CRUD operations for groups
    2. Email operations for recovery, member management, and dist related notifications
    3. Member management functions to include:
      1. Role changes
      2. User invites
      3. Membership management (user leaving)
  5. Dist management modules (~40 hours)
    1. META6 verification models
    2. Dist storage and management
  6. Create ingestion modules for dists (~109 hours)
    1. Processing dist uploads/deletes
    2. Serializing into one ecosystem archive
    3. Providing binary format indexes for searching/exact modules
  7. Ecosystem META6.json & binary index endpoints (~1 hour)

Amount Requested

This amount does not include operating costs and there is no intent to seek operating costs for the zef: ecosystem.

220 hours * $60USD = $13,200

@ugexe
Copy link

ugexe commented Dec 19, 2023

As a member of the RSC I endorse this grant request

@vrurg
Copy link

vrurg commented Dec 20, 2023

As a member of the RSC I endorse this grant request

@lizmat
Copy link

lizmat commented Jan 13, 2024

Create ingestion modules for dists (~109 hours)
Processing dist uploads/deletes
Serializing into one ecosystem archive

Isn't that what the REA is about? And hasn't a large part of that code not already been written inhttps://raku.land/zef:lizmat/Ecosystem::Archive::Update ?

@ugexe
Copy link

ugexe commented Jan 13, 2024 via email

@niner
Copy link

niner commented Jan 13, 2024

Aye

@melezhik
Copy link

melezhik commented Jan 14, 2024

Hey, @tony-o , sorry if abit off-topic, bu maybe I could pitch in somehow on volunteering basic so Sparky task runner could be of sort of use for building entire solution, we could use it as a web UI to manage / run administrative/operation tasks for ecosystem, with recent UI improvements in sparky, I believe it could be particularly useful for such a tasks …

Feel free to discuss by email / irc / gh

@tony-o
Copy link
Author

tony-o commented Jan 16, 2024

Create ingestion modules for dists (~109 hours)
Processing dist uploads/deletes
Serializing into one ecosystem archive

Isn't that what the REA is about? And hasn't a large part of that code not already been written inhttps://raku.land/zef:lizmat/Ecosystem::Archive::Update ?

REA more serializes several ecosystems into one archive but, as ugexe said, it doesn't maintain the restrictions that auth/ecosystems should and REA doesn't handle the first two points of user verification, strict auth checks, or real-time distribution upload/processing/verification.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment