Skip to content

nvx-rs slimming 5.2.3: the breaking release is published #1132

Description

Parent: #1090, in #1076. Needs: #1091, #1112, #1119, #1120, #1123, #1126, #1127, #1129, #1130, #1131. Unblocks: —. No PR of this group merges before the API-ready commit.

Goal. The breaking release is published: the changelog of its breaking changes, and nvx at the next prerelease number that crates.io hasn't used.

PRs, in order. Each PR has one goal, leaves dev green, and names in its description each old test of its area as kept, rewritten or retired, with each change that check_test_changes.py reports. Its tests follow the repository's test layout: a module's unit tests, and the code that only they use, sit in its tests.rs or tests/ and move with it. The estimates count core lines (code, not comments, docs or tests) and counted files; each PR records its measured values. Each PR does what its Scope says and no more: a case, input or layout that its Scope doesn't name, and whatever "Not in this PR" lists, is out of scope. Address every review comment within the scope, and ask before acting on one that asks for more. A PR whose measured core lines pass the stop that its Estimate names (twice the estimate, at most 600) stops and asks before continuing.

  1. SL8.1: The breaking release is published.

Tests. Release CI checks the package's contents and that the API snapshot holds exactly the planned surface and one hidden main per binary, publishes nvx, installs the guest tools from the package outside the repository with --no-default-features --features guest --profile guest, and runs nvx-ingress.

Done when: nvx is published at the release version, and release CI passes.

Activity

  1. esaurez commented on Nov 10, 2026

    @esaurez
    ContributorAuthor

    Workstream source/progress checkpoint - 2026-11-10 UTC

    Checked boxes below mean merged scope, not merely an implemented first iteration. Implementation branches are source checkpoints, not automatic qualification, Ready or merge approval. Some starting inputs are frozen/anonymous commits rather than standalone branches; their exact SHAs and known merged producer refs are recorded explicitly.

    • SL8.1 - no completed first-iteration handoff recorded. Inspect any preserved partial/prior work before implementing the issue's scope.

    The original technical scope remains authoritative, supplemented only by any portable technical clarification in this issue. No machine-specific execution policy is part of this checkpoint.

  2. ppenna commented on Nov 13, 2026

    @ppenna
    Contributor

    SL8.1 version decision: 0.2.0-alpha.1, a new pre-release series (made for Pedro Henrique Penna (@ppenna)).

    #1132 asks for "the next prerelease number that crates.io hasn't used". crates.io holds nvx 0.1.0-alpha.1 through alpha.16, and dev's nightly CI publishes the next 0.1.0-alpha.N most nights. So the next free 0.1.0-alpha.N changes until this branch reaches dev, and a changelog or guide that named one would likely name a number that a nightly has already taken. Two more reasons favour a new series:

    • Requirements such as nvx = "0.1.0-alpha.7" would resolve to a breaking 0.1.0-alpha.N on cargo update, but never to 0.2.0-alpha.1.
    • doc/distribution.md already describes starting another series by changing the declared version. CI then publishes exactly that version at the first full run of dev after the merge, with no change to the publishing jobs.

    0.2.0-alpha.1 is unused on crates.io. SL8.1 (#1561) declares it, CHANGELOG.md names it, and the migration guide (SL6.10h, #1559) pins it. Nightlies after the release publish 0.2.0-alpha.N.

    Publication itself happens when feature/nvx-refactor reaches dev, through dev's full CI run, as the repository requires. That merge is a maintainer's decision, outside these pull requests.

  3. 2 remaining items

  4. ppenna commented on Nov 13, 2026

    @ppenna
    Contributor

    Status: SL8.1 has merged into feature/nvx-refactor, and publication waits for dev.

    SL8.1, #1561, merged as 2e0228a05cc, 26880bf41a6 and 05cb371d6be:

    • public_api.py fails unless the only hidden items are one main per binary and the modules that hold them. Each platform's listing is checked on its own.
    • Before publishing, the release job requires the API snapshots in the package. It then installs nvx-ingress from the unpacked package with --no-default-features --features guest --profile guest, outside the checkout, runs it, and checks its output.
    • nvx-rs/Cargo.toml declares 0.2.0-alpha.1, as decided above, and its description no longer names removed components. The root CHANGELOG.md has one entry that lists the breaking changes and links doc/migrate-from-alpha.7.md.

    Validation:

    This issue stays open. Its Done-when needs nvx published at 0.2.0-alpha.1, and the repository publishes only from dev's full CI runs. That happens once feature/nvx-refactor merges into dev, which is a maintainer's decision. The first full run of dev after that merge publishes exactly 0.2.0-alpha.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions