Grant Report: Raku Ecosystem Final
Wed, 05-Mar-2025 by
Saif Ahmed
edit post
Tony O'Dell has been working on a modernised and well documented Ecosystem management platform `zeco`. This is complex work that integrates contributor management and distro management, and is a vital cog in the evolution of a programming language and its accessibilty to its users. The handling of updates and secure,reliable, reproducible access to distros underpins the sustainable viability of such a platform. It was supported by [this grant](https://news.perlfoundation.org/post/raku-ecosystem-tonyo). Key to this project is documentation as well as the underlying secure infrastructure, and these have been a significant ongoing activity.

### 9th September 2024
Making good progress. User/group, and dist management are all in place. Tests are written and everything is working as intended when used in a specific way. More tests are incoming to ensure corner cases and dist name collisions are handled gracefully as well as some configuration options to make private ecosytems more maintainable. Below are the individual updates per grant point, ugexe is currently reviewing the bits marked below as feature complete so hopefully next update they'll be marked as done.
* ERD - schema is in place and being used. The migration mechanism for schema changes
is in place and being used to manage those changes as necessary during development.
* General Configuration - mostly in place. The upload mechanism for uploaded dists
is currently set to use an AWS bucket, this will likely change to allow ecosystems
to use a custom command to manage how and where uploaded dists end up with the most flexibility.
* User management - feature complete. Currently being reviewed by ugexe for completeness
* Group/role management - same as #3
* Dist management modules - mostly feature complete, pending the custom upload
command. Being reviewed by ugexe for completness.
* Create ingestion modules for dists - feature complete. This is handled real
time now with #5, users will no longer need to wait for a dist processor to
inspect and index files.
* Ecosystem META6.json & binary index endpoints- feature complete. Currently being
reviewed by ugexe for completeness. Initial benchmarks for the binary index are
looking very nice (bst = binary index search, grp = post-processed json META search):
PARTIAL MATCH:
Benchmark:
```
Timing 50 iterations of bst, grp...
bst: 5.107 wallclock secs (5.078 usr 0.112 sys 5.190 cpu) @ 9.791/s (n=50)
(warning: too few iterations for a reliable count)
grp: 33.074 wallclock secs (31.703 usr 1.400 sys 33.103 cpu) @ 1.512/s (n=50)
(warning: too few iterations for a reliable count)
O-----O--------O------O------O
| | Rate | bst | grp |
O=====O========O======O======O
| bst | 9.79/s | -- | -85% |
| grp | 1.51/s | 548% | -- |
O-----O--------O------O------O
EXACT:
Benchmark:
Timing 50 iterations of bst, grp...
bst: 0.076 wallclock secs (0.102 usr 0.036 sys 0.138 cpu) @ 658.293/s (n=50)
(warning: too few iterations for a reliable count)
grp: 37.780 wallclock secs (36.596 usr 1.247 sys 37.844 cpu) @ 1.323/s (n=50)
(warning: too few iterations for a reliable count)
O-----O--------O--------O-------O
| | Rate | bst | grp |
O=====O========O========O=======O
| bst | 658/s | -- | -100% |
| grp | 1.32/s | 50252% | -- |
O-----O--------O--------O-------O
```
### January 30 2025 update
Been a little bit slow since the last update but we're wrapping it up.
The code is complete, the docs are complete, and this is being used
gradually for migrating the current ecosystem. Since the last update I have:
* Completed the docs, they're now in final form for release
* Communicated the existence and other information about the ecosystem code to the raku community
* Fixed some minor bugs related to config and dist ingestion
* Added hooks for post dist processing to allow for flexibility in dist storage and emails
At this time I believe this ecosystem grant is complete.
Comments (0)