Skip to content

Rename the application crate to netsuke-build - #523

Merged
leynos merged 3 commits into
mainfrom
rename-crate
Aug 5, 2026
Merged

Rename the application crate to netsuke-build#523
leynos merged 3 commits into
mainfrom
rename-crate

Conversation

@lodyai

@lodyai lodyai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

This branch renames the crates.io package from netsuke to netsuke-build
because the original crate name is unavailable. It preserves Netsuke branding,
the netsuke command and library target, manual pages, release artefacts, and
operating-system package names.

It also updates crates.io installation guidance and the contracts that verify
package selection, installation commands, CLI help, and packaging smoke tests.

Review walkthrough

Validation

  • make check-fmt: passed
  • make lint: passed
  • make typecheck: passed
  • make test: passed (1,364 root tests, 39 test-support tests, and all doctests)
  • make markdownlint: passed
  • make nixie: passed
  • mbake validate Makefile: passed

References

Summary by Sourcery

Rename the crates.io package to netsuke-build while preserving the netsuke library and binary targets and aligning tooling and documentation with the new package name.

Enhancements:

  • Simplify manual page generation to rely on the CLI name rather than enforcing alignment with Cargo package and binary names.
  • Document the distinction between the netsuke-build crates.io package name and the netsuke targets in the repository layout guide.

Documentation:

  • Update README, user guide, ADRs, Polonius notes, exec plans, and quickstart to use netsuke-build for crates.io and binstall installation commands and examples.

Tests:

  • Adjust documentation example tests and packaging smoke tests to assert installation and packaging contracts against the netsuke-build package name instead of netsuke.

Chores:

  • Update Cargo manifests and test-support dependencies to reference the netsuke-build package while keeping the netsuke binary name exposed to users.

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Summary

  • Rename the crates.io package to netsuke-build.
  • Preserve the netsuke library, binary, command, manual pages, release artefacts, and operating-system package names.
  • Update Cargo manifests, installation guidance, documentation, manual-page generation, and packaging tests.
  • Update registry installation guidance to use the pinned nightly toolchain and Polonius, as specified in ADR-006.
  • Report passing validation checks and test suites.

Walkthrough

Changes

The Cargo package is renamed to netsuke-build. Explicit netsuke library and binary targets preserve the command and target names. Build-script manual-page generation now uses the CLI name. Documentation, installation commands, and packaging tests use the new package name.

Package identity and installation alignment

Layer / File(s) Summary
Package and target contracts
Cargo.toml, src/cli/parser.rs, test_support/Cargo.toml, docs/repository-layout.md
Cargo now separates the netsuke-build package name from the netsuke library and binary names. The CLI and local dependency mapping retain netsuke.
Manual-page name resolution
build.rs
Manual-page generation uses the CLI-derived name and removes Cargo package and binary name validation.
Installation documentation and checks
README.md, docs/*, tests/documentation_examples_tests.rs, tests/packaging_smoke_tests.rs
Installation commands, validation commands, documentation contracts, and packaging smoke tests now use netsuke-build.

Possibly related PRs

  • leynos/netsuke#453: Updates installation documentation and contract tests for installer guidance.
  • leynos/netsuke#469: Introduces packaging smoke tests updated by this package rename.
  • leynos/df12-www#37: Updates Netsuke package and install identity while retaining the netsuke binary name.

Suggested reviewers: leynos

Poem

A package name takes flight,
While netsuke stays in sight.
Manuals follow the CLI trail,
Tests confirm the renamed sail,
Install commands now align.


Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (2 errors, 2 warnings, 2 inconclusive)

Check name Status Explanation Resolution
Testing (Overall) ❌ Error Updated tests cover install text and Cargo package selection, but no test exercises build.rs manual-page output or its package/name decoupling; an incorrect manual page can pass. Add a focused build-script contract test that asserts the generated netsuke.1 source and path, and verifies the renamed package does not drive the manual-page name.
Rust Compiler Lint Integrity ❌ Error build.rs retains module-scoped #[expect(dead_code, unused_imports)] over shared library modules, masking unused items instead of narrowing the build-script module graph. Remove the broad build.rs expectations and expose only the CLI/man-page slice needed by the build script; keep lint expectations item-scoped and issue-linked where required.
User-Facing Documentation ⚠️ Warning Cargo.toml changes the published package to netsuke-build, but no pre-1.0 n+1 migration document explains the breaking rename; CHANGELOG.md still tells users to install netsuke. Add and index a 0.2 migration guide. Explain the netsuke to netsuke-build install and dependency changes, and update the stale changelog command.
Developer Documentation ⚠️ Warning The PR changes Cargo targets and build-script naming, but docs/developers-guide.md is unchanged and contains no package/target guidance; only repository-layout.md records the distinction. Add developer-guide guidance for the netsuke-build package, netsuke targets, and manual-page naming; record the decision in the relevant ADR or design document.
Testing (Compile-Time / Ui) ❓ Inconclusive Investigation in progress; the change affects CLI and manual-page text plus package metadata. Inspect the changed output contracts and existing test coverage before deciding whether trybuild or snapshot coverage is required.
Unit Architecture ❓ Inconclusive Investigation is not complete; the PR primarily renames package metadata, but build-script and target changes still require boundary checks. Inspect the changed build script, manifest targets, and related tests before deciding.
✅ Passed checks (14 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Module-Level Documentation ✅ Passed All 322 Rust module files have module-level //! documentation, and all 45 inline modules have documentation; build.rs and src/cli/parser.rs clearly state purpose and relationships.
Testing (Unit And Behavioural) ✅ Passed Accept the coverage: packaging tests invoke Cargo publish/package for netsuke-build, documentation tests verify install contracts, and live CLI tests verify the preserved netsuke command.
Testing (Property / Proof) ✅ Passed Treat property or proof testing as not applicable: the PR changes fixed Cargo names and documentation, with deterministic packaging, installation, and manual-page contracts; it adds no input-space...
Domain Architecture ✅ Passed Keep this change: the diff only updates package and target metadata, CLI/build adapters, documentation, and contract tests; domain modules and business logic remain unchanged.
Observability ✅ Passed The change affects Cargo packaging, manual-page generation and documentation, while preserving the netsuke runtime command; it adds no new production process or service boundary requiring telemetry.
Security And Privacy ✅ Passed Accept the change: the commit only renames Cargo targets, updates documentation/tests, and uses the static netsuke CLI name; scans found no secrets, new network/process sinks, or permission changes.
Performance And Resource Use ✅ Passed The patch only renames Cargo targets, updates documentation/contracts, and simplifies build-time man-page naming; it adds no runtime loops, retries, blocking paths, caches, or unbounded collections.
Concurrency And State ✅ Passed Accept this check: the parent-to-commit diff only renames package/target metadata, documentation, and test arguments; it adds no async tasks, locks, channels, mutable globals, or shared state.
Architectural Complexity And Maintainability ✅ Passed Keep this change: it adds only explicit Cargo targets and naming updates, removes build-script indirection, adds no dependencies or modules, and documents the package-target boundary.
Description check ✅ Passed The description clearly explains the package rename, preserved targets, documentation updates, and test changes.
Title check ✅ Passed The title clearly identifies the main change: renaming the application package to netsuke-build.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch rename-crate

Comment @coderabbitai help to get the list of available commands.

@sourcery-ai

sourcery-ai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Renames the published crates.io package from netsuke to netsuke-build while preserving the netsuke binary/library targets, updating documentation and tests to refer to the new package name, and simplifying the build-script manpage generation to decouple it from the Cargo package name.

File-Level Changes

Change Details Files
Rename the Cargo package to netsuke-build while keeping binary and library targets named netsuke.
  • Change [package] name in the root Cargo manifest to netsuke-build.
  • Introduce explicit [lib] and [[bin]] sections with name = "netsuke" to keep the target names stable.
  • Update repository layout docs to describe src/ as the netsuke-build Rust package and document the divergence between Cargo package name and netsuke targets.
Cargo.toml
docs/repository-layout.md
Decouple manual-page generation and build-script behaviour from the Cargo package/bin name.
  • Remove build-script rerun-if-env-changed directives for CARGO_PKG_NAME and CARGO_BIN_NAME.
  • Relax the clippy disallowed_methods expectation reason to only mention CARGO_PKG_VERSION and OUT_DIR.
  • Stop enforcing equality between the CLI name and Cargo bin/package name in generate_man_page.
  • Use the CLI command name as the manpage source name and filename instead of the Cargo package/bin name.
build.rs
Preserve CLI branding as netsuke regardless of the Cargo package name.
  • Set the clap command name explicitly to netsuke in the CLI parser definition so the user-facing command stays netsuke.
  • Ensure downstream tooling (manpage generation, help text) uses the CLI name instead of the Cargo package name.
src/cli/parser.rs
Update documentation to reference netsuke-build for crates.io installs and package selection while retaining netsuke as the command on PATH.
  • Change all cargo binstall netsuke examples to cargo binstall netsuke-build.
  • Change all cargo install netsuke examples (including Polonius/nightly guidance) to cargo install netsuke-build.
  • Update quickstart and repo layout docs to reflect that netsuke-build is the registry package and netsuke is the installed command.
  • Adjust execution plan documents to use cargo test -p netsuke-build when referring to the crate by package name.
README.md
docs/users-guide.md
docs/quickstart.md
docs/polonius.md
docs/adr-006-adopt-polonius-nightly-toolchain.md
docs/repository-layout.md
docs/execplans/3-14-1-manifest-time-condition-semantics-for-actions-and-targets.md
docs/execplans/3-14-3-lower-target-and-action-deps.md
docs/execplans/3-4-5-extend-graph-subcommand-with-an-html-renderer.md
Align tests and test-support dependencies with the new package name and installation contracts.
  • Update documentation example tests to look for netsuke-build in install commands and binstall usage and to ensure quickstart does not regress to cargo install netsuke.
  • Update release installation contract tests to expect netsuke-build in registry-install commands pinned to the nightly Polonius toolchain.
  • Change packaging smoke tests to run cargo publish/cargo package against the netsuke-build package.
  • Update the test-support crate dependency to refer to the root crate via package = "netsuke-build" rather than the old name.
tests/documentation_examples_tests.rs
tests/packaging_smoke_tests.rs
test_support/Cargo.toml

Possibly linked issues

  • #unknown: PR adds cargo publish/package smoke tests for manifest and build-script files, fulfilling the issue’s requested package-boundary checks.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

@leynos
leynos marked this pull request as ready for review August 5, 2026 09:55

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sorry @leynos, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4b7c7b4f1e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread README.md
codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

@leynos

leynos commented Aug 5, 2026

Copy link
Copy Markdown
Owner

@coderabbitai Have the following failed checks now been resolved?

If further work is required, please provide an AI agent prompt for the remaining work to be done to address these failures.

Do not treat warnings as optional or aspirational. Where a change is out of scope for this PR, propose a GitHub issue unless one exists already. (Treat o11y, code safety, documentation and validation coverage as in scope).

Developer Documentation ⚠️ Warning The PR changes Cargo targets and build-script naming, but docs/developers-guide.md is unchanged and contains no package/target guidance; only repository-layout.md records the distinction. Add developer-guide guidance for the netsuke-build package, netsuke targets, and manual-page naming; record the decision in the relevant ADR or design document. Testing (Overall) ❌ Error Updated tests cover install text and Cargo package selection, but no test exercises build.rs manual-page output or its package/name decoupling; an incorrect manual page can pass. Add a focused build-script contract test that asserts the generated netsuke.1 source and path, and verifies the renamed package does not drive the manual-page name.

@coderabbitai

This comment was marked as resolved.

leynos and others added 3 commits August 5, 2026 22:49
Publish the Cargo package as `netsuke-build` while preserving `netsuke` as
the library target, command, manual page, release artefact, and operating-
system package name.

Update registry installation guidance and its contract tests to use the new
crates.io package name.
Add `[package.metadata.binstall]` overrides so `cargo binstall netsuke-build`
resolves the release assets, which are named after the `netsuke` binary rather
than the Cargo package. Without them cargo-binstall would search for
`netsuke-build`-prefixed assets, find none, and fall back to the source build
on the pinned nightly that the documented command exists to avoid.

Publish the manual page path `build.rs` writes through `cargo:rustc-env` and
add a contract test that asserts the page is named for the command-line
interface name, is staged under `target/generated-man/<target>/<profile>/`, and
carries a `.TH` source that never mentions the package name.

Add a contract test that rebuilds the expected binstall asset names from
`.github/release-staging.toml` and checks the override set against the release
workflow's target matrix.

Record the rename in ADR-007 and document the package-versus-target naming rule
in the developer guide.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The entity-aware merge driver consumed the blank line separating the `[[bin]]`
target from `[package.metadata.ortho_config]` when it interleaved the target
declarations with the expanded locale list.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@lodyai
lodyai Bot force-pushed the rename-crate branch from 2b7087c to 375c6be Compare August 5, 2026 20:53
codescene-access[bot]

This comment was marked as outdated.

@codescene-access codescene-access Bot 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.

No quality gates enabled for this code.

@leynos
leynos merged commit 9809997 into main Aug 5, 2026
17 checks passed
@leynos
leynos deleted the rename-crate branch August 5, 2026 21:06
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.

1 participant