Skip to content

Package Manager (carv pkg) #10

@dev-dami

Description

@dev-dami

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions