Skip to content

feat: npm/cargo/go module collection #40

@Snider

Description

@Snider

Summary

Collect package registry metadata and source for software preservation.

Use Case

Packages get unpublished (left-pad incident). Archive important packages.

Commands

# npm package
borg collect npm @monero-project/monero-ts

# Cargo crate
borg collect cargo monero-rs

# Go module
borg collect go github.com/monero-ecosystem/go-monero

Data Collected

  • Package metadata (versions, deps, maintainers)
  • Source tarballs for all versions
  • README and docs

Output

packages/
├── npm/
│   └── @monero-project/
│       └── monero-ts/
│           ├── metadata.json
│           ├── 1.0.0.tgz
│           └── 1.1.0.tgz

Registries

Command Registry
npm registry.npmjs.org
cargo crates.io
go proxy.golang.org
pypi pypi.org

Acceptance Criteria

  • Fetch package metadata
  • Download all version tarballs
  • Support npm, cargo, go, pypi
  • Create version index
  • Handle scoped packages

Metadata

Metadata

Assignees

No one assigned

    Labels

    julesFor Jules AI to work on

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions