Skip to content

refactor(workspace): prepare vrp-gpu for crates.io - #11

Merged
pedrozaz merged 3 commits into
developfrom
feature/crates-io-readiness
Sep 22, 2026
Merged

pedrozaz merged 3 commits into
developfrom
feature/crates-io-readiness

Conversation

@pedrozaz

Copy link
Copy Markdown
Owner

Summary

Reorganizes the repository around a single future crates.io package, vrp-gpu, while keeping development-only binaries and the cuda-oxide kernel toolchain outside the publication boundary. No solver or local-search behavior is changed.

Key Changes

  1. Unambiguous crate identity

    • Renames the public library package from vrp-core to vrp-gpu, avoiding names already owned by the existing vrp ecosystem on crates.io.
    • Namespaces the internal packages as vrp-gpu-cli, vrp-gpu-bench, and vrp-gpu-kernel.
    • Marks CLI, benchmark, and kernel packages as publish = false; only vrp-gpu remains publishable.
  2. Publication-ready manifest and archive

    • Adds repository, documentation, README, keyword, category, MSRV, docs.rs, lint, and package-allowlist metadata.
    • Shares the versioned library dependency through the workspace manifest.
    • Commits root and kernel lockfiles for reproducible development and CI.
    • Regenerates the sm_120 PTX after namespacing the kernel package and verifies it matches the embedded artifact byte-for-byte.
  3. User and maintainer documentation

    • Separates the workspace README from the crate-specific README used by crates.io and rustdoc.
    • Adds architecture, release, changelog, and security documentation.
    • Updates contributor, benchmark, and 2-opt reduction commands for the new package names.
    • Removes premature crates.io installation instructions while the package is still unpublished.
  4. Publication QA

    • Enforces public documentation warnings and checks rustdoc with all features.
    • Tests the declared Rust 1.88 MSRV in CI.
    • Builds and verifies the future .crate archive in local and remote CI.
    • Keeps the standalone nightly kernel gate available through just kernel-ci.

Commits Included

  • refactor(workspace): establish vrp-gpu crate identity
  • docs(project): define crates.io publication lifecycle
  • ci(package): validate docs MSRV and crate archive

Verification

  • just ci: formatting, all-target/all-feature check, Clippy, tests, rustdoc, package verification, and cargo-deny.
  • 43 regular tests and one README doctest passed; 7 hardware-only CUDA tests remained ignored in the portable suite.
  • All 7 existing CUDA tests passed on the RTX 5060 Ti after PTX regeneration.
  • cargo +1.88.0 check -p vrp-gpu --all-features --locked passed with the declared MSRV.
  • just kernel-ci passed with the pinned nightly toolchain.
  • cargo oxide inspect --arch sm_120 succeeded and the generated PTX matches crates/vrp-gpu/kernel.ptx byte-for-byte.
  • Clean-worktree cargo package -p vrp-gpu --locked produced and verified a 14-file archive (93.5 KiB, 22.2 KiB compressed).
  • Package inspection contains only the manifest metadata, README, source, lockfile, and versioned PTX artifact.
  • All commits are GPG-signed and contain Signed-off-by trailers.

Scope

This PR prepares repository structure, naming, metadata, documentation, and QA for a future release. It does not publish to crates.io, add new CPU/GPU comparisons, change algorithms, claim support beyond the currently verified hardware, or automate credentials and publication.

Signed-off-by: Guilherme Pedroza <guilhermebarb0sa@proton.me>
Signed-off-by: Guilherme Pedroza <guilhermebarb0sa@proton.me>
Signed-off-by: Guilherme Pedroza <guilhermebarb0sa@proton.me>
Copilot AI lite review requested due to automatic review settings September 22, 2026 01:25
@pedrozaz pedrozaz self-assigned this Sep 22, 2026
@pedrozaz
pedrozaz merged commit 7646b2c into develop Sep 22, 2026
8 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Mark vrp-gpu-kernel as unpublished and correct the rustdoc typo.

Review effort: Lite
Findings: None

What changed in this PR

Prepares the workspace for a future vrp-gpu crates.io release by reorganizing packages, documentation, kernel tooling, and CI validation.

Changes:

  • Renames and namespaces workspace crates.
  • Adds publication metadata, READMEs, documentation, and lockfiles.
  • Expands MSRV, documentation, packaging, and kernel validation.
File Summary
SECURITY.md Adds vulnerability-reporting policy.
README.md Updates workspace guidance.
justfile Adds quality and packaging checks.
docs/​releasing.md Documents release procedures.
docs/​benchmarks/​README.md Defines benchmark requirements.
docs/​architecture.md Documents package boundaries.
docs/​2opt-gpu-reduction.md Updates package commands.
crates/​vrp-gpu/​src/​solution.rs Defines solution representations.
crates/​vrp-gpu/​src/​local_search/​mod.rs Documents 2-opt fields.
crates/​vrp-gpu/​src/​local_search/​gpu.rs Provides GPU orchestration.
crates/​vrp-gpu/​src/​local_search/​gpu_reduction_tests.rs Adds GPU reduction tests.
crates/​vrp-gpu/​src/​local_search/​cpu.rs Provides CPU 2-opt implementation.
crates/​vrp-gpu/​src/​lib.rs Exposes public modules.
crates/​vrp-gpu/​src/​instance.rs Provides parsing and validation.
crates/​vrp-gpu/​src/​construct.rs Provides nearest-neighbor construction.
crates/​vrp-gpu/​README.md Adds crate documentation.
crates/​vrp-gpu/​kernel.ptx Updates generated PTX.
crates/​vrp-gpu/​Cargo.toml Defines publishable crate metadata.
crates/​vrp-gpu-kernel/​src/​lib.rs Defines CUDA kernels.
crates/​vrp-gpu-kernel/​rust-toolchain.toml Pins the kernel toolchain.
crates/​vrp-gpu-kernel/​Cargo.toml Defines the kernel package.
crates/​vrp-gpu-kernel/​Cargo.lock Locks kernel dependencies.
crates/​vrp-gpu-cli/​src/​main.rs Defines the internal CLI.
crates/​vrp-gpu-cli/​Cargo.toml Defines the unpublished CLI package.
crates/​vrp-gpu-bench/​src/​main.rs Defines the benchmark entry point.
crates/​vrp-gpu-bench/​Cargo.toml Defines the unpublished benchmark package.
crates/​vrp-core/​src/​lib.rs Removes the former library entry point.
crates/​vrp-core/​Cargo.toml Removes the former library manifest.
crates/​vrp-cli/​src/​main.rs Removes the former CLI entry point.
crates/​vrp-cli/​Cargo.toml Removes the former CLI manifest.
crates/​vrp-bench/​src/​main.rs Removes the former benchmark entry point.
crates/​vrp-bench/​Cargo.toml Removes the former benchmark manifest.
CONTRIBUTING.md Updates contributor guidance.
CHANGELOG.md Adds unreleased changes.
Cargo.toml Defines the workspace and metadata.
Cargo.lock Locks workspace dependencies.
.gitignore Updates artifact exclusions.
.github/​workflows/​ci.yml Adds MSRV, docs, and packaging checks.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@pedrozaz
pedrozaz deleted the feature/crates-io-readiness branch September 23, 2026 00:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants