(1) absorb dataplane-quiescent#1539
Draft
daniel-noland wants to merge 1 commit into
Draft
Conversation
7672b6e to
c87ff7f
Compare
11 tasks
Contributor
There was a problem hiding this comment.
Pull request overview
Folds the dataplane-quiescent workspace member into dataplane-concurrency, moving quiescent/src/{lib,slot}.rs to concurrency/src/{quiescent,slot}.rs, the four integration tests under concurrency/tests/quiescent_*.rs, and the README to concurrency/QUIESCENT.md (included via #![doc = include_str!]). Workspace Cargo.toml, Cargo.lock, the miri jobs in .github/workflows/dev.yml, and the justfile nextest filter are retargeted accordingly. Sets up the subsequent PRs in the concurrency facade stack.
Changes:
- Drop
quiescentworkspace member; absorb its sources/tests/README intodataplane-concurrency(addsarc-swap,bolero,static_assertions,_strict_provenancefeature). - Retarget miri permissive/strict jobs and the loom
test_packagetodataplane-concurrency; collapse the loom nextest filter to empty. - Rewrite imports in absorbed sources/tests from
concurrency::sync/dataplane_quiescent::*tocrate::sync/dataplane_concurrency::quiescent::*.
Reviewed changes
Copilot reviewed 12 out of 14 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Cargo.toml | Drops quiescent member, dependency, and [workspace.metadata.package.quiescent] entry. |
| Cargo.lock | Removes dataplane-quiescent; adds arc-swap/bolero/static_assertions to dataplane-concurrency. |
| concurrency/Cargo.toml | Adds new deps and the _strict_provenance feature for the Mutex-based slot fallback. |
| concurrency/src/lib.rs | Declares pub mod quiescent; and pub mod slot;. |
| concurrency/src/quiescent.rs | Moved from quiescent/src/lib.rs; now uses crate::{slot,sync}; doc include points at QUIESCENT.md. |
| concurrency/src/slot.rs | Moved from quiescent/src/slot.rs; switches to crate::sync and widens items from pub(crate) to pub. |
| concurrency/QUIESCENT.md | Former README, included as the quiescent module docs; still references the old dataplane_quiescent crate path and tests/loom.rs. |
| concurrency/tests/quiescent_*.rs | Imports updated to dataplane_concurrency::quiescent::*; module docstrings still reference old crate/file names. |
| quiescent/Cargo.toml | Deleted (crate removed). |
| .github/workflows/dev.yml | Miri permissive/strict jobs and loom test_package retargeted to dataplane-concurrency. |
| justfile | Loom nextest filter dropped (legacy binary(loom) no longer matches the renamed binary). |
Comments suppressed due to low confidence (1)
concurrency/tests/quiescent_loom.rs:44
- After the move, the
dataplane_quiescentreferences in this file's module docstring (lines 4-13: "fordataplane_quiescent",tests/protocol.rs,tests/properties.rs,tests/shuttle.rs, the examplecargo test --release -p dataplane-quiescent --features loom --test loom) are stale. The package is nowdataplane-concurrency, the test files are renamedquiescent_*, and this binary isquiescent_loom. The same stale crate-name/test-path references appear in the module docstrings ofquiescent_protocol.rs,quiescent_properties.rs, andquiescent_shuttle.rs. Update them so the docs match reality.
5 tasks
`dataplane-quiescent` was a single-file QSBR primitive whose only
external dep was `dataplane-concurrency::sync`, and whose own
`Slot<T>` publication helper duplicated infrastructure that
`concurrency` would benefit from owning anyway. Merge the crate
in-tree so the primitive lives next to the sync types it builds on.
Moves (no functional change):
* `quiescent/src/lib.rs` -> `concurrency/src/quiescent.rs`. Imports
rewritten from `concurrency::sync::...` to `crate::sync::...`;
module-doc `#[doc = include_str!(...)]` retargeted at the relocated
README.
* `quiescent/src/slot.rs` -> `concurrency/src/slot.rs`. Visibility
bumped from `pub(crate)` to `pub` so callers outside the quiescent
module can use it for their own publication patterns.
* `quiescent/README.md` -> `concurrency/QUIESCENT.md`. Surfaced as
the module-level rustdoc.
* `quiescent/tests/{loom,protocol,properties,shuttle}.rs` ->
`concurrency/tests/quiescent_*.rs`. Each integration test stays in
its own compilation unit; imports rewritten to
`dataplane_concurrency::...` (cargo rejects self-deps as
dev-dependencies, so the workspace alias `concurrency` isn't
available inside the crate's own integration tests).
Cargo:
* `arc-swap` and `static_assertions` become direct deps of
`dataplane-concurrency` (previously they were transitive via
`dataplane-quiescent`).
* `bolero` becomes a dev-dep for the property and shuttle tests.
* `_strict_provenance` feature carried over verbatim: forces the
`Mutex<Arc<T>>` slot fallback for the miri-strict-provenance CI
job, since `arc_swap`'s hazard pointers can't yet expose
strict-provenance information.
* Workspace `Cargo.toml` drops the `quiescent` member and its
`[workspace.metadata.package.quiescent]` block.
CI:
* `.github/workflows/dev.yml` renames the `quiescent/permissive` and
`quiescent/strict` miri steps to `concurrency/permissive` and
`concurrency/strict`; both now pass `--package=dataplane-concurrency`.
* The `features` matrix entry for `loom` retargets `test_package`
from `quiescent` to `concurrency`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Daniel Noland <daniel@githedgehog.com>
c87ff7f to
e292f12
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dataplane-quiescentworkspace member intodataplane-concurrencyasconcurrency::quiescent. Movesquiescent/src/lib.rstoconcurrency/src/quiescent.rs,quiescent/src/slot.rstoconcurrency/src/slot.rs, and the four integration tests underconcurrency/tests/quiescent_*.rs.Cargo.tomldrops thequiescentmember, dependency entry, and[workspace.metadata.package.quiescent]block..github/workflows/dev.ymlretargets the miri/permissive and miri/strict jobs fromdataplane-quiescenttodataplane-concurrency.concurrency/QUIESCENT.mdand is included via#![doc = include_str!(...)].justfilenextest filter: underloom, the legacybinary(loom)matcher no longer hits anything after this rename (the binary is nowquiescent_loom); collapse to an empty filter so nextest walks every archived binary.Pure code-motion -- no behaviour change, no new public surface. Sets up the subsequent PRs in the stack to layer the sync facade and backend wrappers onto the unified crate.
This is PR 1 of 3 in the concurrency facade stack:
1 absorb-quiescent -> 2 facade + backends + workspace sweep (#1542) -> 3
#[concurrency::test]+thread::scope(#1544).Test plan
cargo nextest run -p dataplane-concurrencypasses (same tests, new home).cargo build --workspaceafter rebase onto main is clean..github/workflows/dev.ymlmiri job names match the newconcurrencypackage.