-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
Here's a laundry list of features I'd like for the Mops registry. My goal is to have a discussion here. Once we've decided which of these we'd like to have I'm happy to contribute/help with implementation efforts.
The first four would be a pre-requisite for implementing a dependency version solver, while the latter are QoL improvements (the reporting feature is the kind of thing you want to have in place before you need it).
- Manifest support for version ranges, maybe a more restricted version of the cargo version requirement syntax
I'd recommend not messing with pre-releases. If we really want them, they can be allowed later on. - Store compressed tarballs instead of individual files, with a single integrity hash per package version
- Pro
- Saves storage through compression, and by only requiring a single integrity hash
- Downloads a dependency in a single request
- Much cheaper to verify for integrity
- Enables easier mirroring
- Con
- Requires decompressing on the registry side to compute the content hash
- Would break the file viewer on the Mops website until we also implement unpacking the tar-balls
- Downloading a full index of package versions (with incremental updates)
I'd recommend copying either the cargo registry index or the purescript registry index format and storing them as a Git repository to get incremental updates for free
Not sure how easy/hard this would be to do with HTTP outcalls, or if it would require a periodic off-chain runner - Uploaded packages should only be allowed to reference other published packages, meaning no Git or Path dependencies. Could consider weakening this for dev-dependencies
Miscellaneous missing capabilities:
- Ability to report a package (Copyright, illegal content, etc)
- Yank/Deprecate command
- Unpublish command
- https://docs.npmjs.com/policies/unpublish <- apply similar restrictions
Kamirus, marc0olo and rvanasa
Metadata
Metadata
Assignees
Labels
No labels