Repository navigation
chore(deps): upgrade asupersync to 0.6.0 (git pin) - #3983
Merged
Merged
Conversation
…nc-0.6 # Conflicts: # Cargo.toml
|
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.
Fixes #3874
Why
asupersync 0.6.0 has a release section in upstream
CHANGELOG.md, but no tag and no crates.io release yet. The release needs it now, so the workspace pins upstreammainat432e2c3b2cf2bad02fc88e380d29a6b0b5c01422, whoseCargo.tomldeclares 0.6.0.asupersync-macros,franken-kernel,franken-evidenceandfranken-decisionresolve from the same git source and rev through upstream path dependencies.Follow-up: once 0.6.0 is on crates.io, replace the git pin with
version = "=0.6.0"(the manifest comment says so) and relock.Scope
Breaking changes from the v0.6.0 changelog, checked against our usage:
QuicFramenon-exhaustive,ChildRegion<Caps>,Http2ListenerStatsSnapshotandManagedSupervisorReportnew fields,SignalMaskGuard: !Send, lostUnwindSafeimpls. None of these types is used here; the oneopen_child_regioncall holds aCx<cap::All>, which the changelog says is unchanged. No source migration needed.RuntimeBuilder::new()and its presets now start an on-demand blocking pool (blocking_threads(0, 512)).operation_task_owner::tests::construction_rejects_native_runtime_without_blocking_poolbuilt a pool-less runtime from the bare builder and failed on 0.6. It now asks forblocking_threads(0, 0), the changelog's documented way to get the old behaviour. Production builders (the CLI runtime andnative_runtime's process runtime) already size their pools explicitly.Sendproofs past the default recursion limit (recursion_depth_exceeding_limit, Tracking issue for future-compatibility warningrecursion_depth_exceeding_limitrust-lang/rust#159228):DaemonInvocationClient::invoke_controlledintracedecay-daemon-protocol(throughasupersync::time::sleep) andcommands::daemonin the CLI binary. Both crates now set#![recursion_limit = "256"], ascrates/tracedecay/src/lib.rsalready does.spawn_blocking's no-runtime fallback no longer detaches its thread (GitHub Harden transcript ingestion edge cases #80).native_runtime::spawn_blockingqueues onRuntimeHandle::spawn_blocking(the pool), never that fallback, so its contract and tests are unchanged.Build infra:
.bazelrcsets--repo_env=CARGO_NET_GIT_FETCH_WITH_CLI=true. crate_universe re-fetches git dependencies on every splice. libgit2 indexed asupersync's ~1 GB history on one thread for over 25 minutes and hit the 600 scargo-bazel splicetimeout; the git CLI fetch takes about 2 minutes.Blast Radius
Every crate that uses asupersync (27 of them) builds against the new runtime. Behaviour changes that do not alter signatures (poll quotas, deadline timers, IO capability checks) apply only to budgets with quotas or deadlines and to restricted contexts; this workspace uses
Budget::INFINITEand unrestricted contexts throughout.Verification
Run on the branch merged with master at #3980 (after #3883's nightly pin and the T2-F1a CLI flip).
bazel build --config=clippy //crates/<crate>/...for all 27 crates that depend on asupersync: pass. After the last master merge I reran it for the CLI, root, rusqlite-runtime, runtime-core and daemon-protocol crates, the ones that merge touched or this PR edits.//:rustfmt_checkandrustfmt_check_2024for the three touched crates: pass.unit_testfor every crate that names asupersync, and the CLI'stracedecay_unit_test: pass.operation_task_owner::tests::construction_rejects_native_runtime_without_blocking_poolfailed before the fix with the predicted assertion and passes after it.//crates/tracedecay:daemon_suite,:session_suite,:mcp_suite: pass. One earliermcp_suiterun failedmulti_str_replace_behavior_test::later_replacement_edits_the_original_span_not_inserted_text("project runtime ... failed to publish"); it passed 3 of 3 runs alone and the next full run passed, so it is a load flake.