Description
Build a package manager for Carv to manage dependencies and publish packages.
Features
carv pkg add <package> - Add dependency
carv pkg remove <package> - Remove dependency
carv pkg install - Install all dependencies from carv.toml
carv pkg publish - Publish package to registry
- Package resolution and versioning (semver)
- Lock file for reproducible builds
Design Considerations
- Registry: GitHub-based? Self-hosted? Both?
- Version constraints:
^1.0.0, ~1.0.0, >=1.0.0
- Dependency resolution algorithm
- Where to store downloaded packages
Prior Art
- Cargo (Rust) - Great UX, our module syntax is Rust-inspired
- npm (JS) - Large ecosystem, good for reference
- Go modules - Simple and Git-based
Status
The module system (require keyword) is in place. This is the natural next step.
Help Wanted
This is a significant undertaking. Looking for contributors interested in:
- Package registry design
- Dependency resolution algorithms
- CLI implementation
Description
Build a package manager for Carv to manage dependencies and publish packages.
Features
carv pkg add <package>- Add dependencycarv pkg remove <package>- Remove dependencycarv pkg install- Install all dependencies from carv.tomlcarv pkg publish- Publish package to registryDesign Considerations
^1.0.0,~1.0.0,>=1.0.0Prior Art
Status
The module system (
requirekeyword) is in place. This is the natural next step.Help Wanted
This is a significant undertaking. Looking for contributors interested in: