chore(deps): update cargo pre-1.0 breaking updates - #2210
Conversation
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
|
There was a problem hiding this comment.
The dependency bumps do not preserve the workspace's compile-time contracts: prettyplease 0.3 requires syn 3 ASTs, typify 0.7 still requires schemars 0.8, and quick_cache 0.7 changes the Lifecycle API used by saluki-common. The affected build and cache code therefore cannot ship until these version/API transitions are adapted or the dependencies are pinned compatibly.
🤖 Datadog Autotest · Commit 2f9cc41 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
| pin-project = { version = "1.1", default-features = false } | ||
| pin-project-lite = { version = "0.2", default-features = false } | ||
| prettyplease = { version = "0.2", features = ["verbatim"] } | ||
| prettyplease = { version = "0.3", features = ["verbatim"] } |
There was a problem hiding this comment.
prettyplease 0.3 cannot consume the workspace syn AST
The datadog-agent-config crate and therefore the workspace cannot build from this dependency update.
Assertion details
- Input: Building datadog-agent-config's build script with the PR's prettyplease and workspace syn versions
- Expected:
The build script should compile when passing its syn::File to prettyplease::unparse. - Actual:
Cargo.lock resolves prettyplease 0.3.0 against syn 3.0.3, while the build dependency syn remains version 2 and the code passes syn 2 File values to prettyplease::unparse. These are distinct Rust types, so the build script fails to compile at the unparse calls in datadog_config_gen.rs and witness_gen.rs.
Was this helpful? React 👍 or 👎
🤖 Datadog Autotest · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
| ] } | ||
| rustls-webpki = { version = "0.103", default-features = false } | ||
| schemars = { version = "0.8", default-features = false } | ||
| schemars = { version = "0.9", default-features = false } |
There was a problem hiding this comment.
schemars 0.9 is incompatible with typify 0.7
Configuration code generation fails, blocking builds of datadog-agent-config and the workspace.
Assertion details
- Input: Compiling the config generator's TypeSpace::add_root_schema call after resolving the PR lockfile
- Expected:
The JSON schema type passed into typify should come from the schemars version typify 0.7 consumes. - Actual:
Cargo.lock keeps typify-impl 0.7.0 on schemars 0.8.22 but resolves the direct build dependency to schemars 0.9.0. datadog_config_gen.rs constructs schemars::schema::RootSchema from the direct dependency and passes it to typify's TypeSpace, whose API is compiled against schemars 0.8; the nominally identical RootSchema types are incompatible and the build script fails to compile.
Was this helpful? React 👍 or 👎
🤖 Datadog Autotest · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
| rustls-native-certs = { version = "0.8", default-features = false } | ||
| hashbrown = { version = "0.17", default-features = false } | ||
| quick_cache = { version = "0.6", default-features = false } | ||
| quick_cache = { version = "0.7", default-features = false } |
There was a problem hiding this comment.
quick_cache 0.7 breaks the custom Lifecycle implementation
The shared saluki-common cache implementation cannot compile, blocking consumers of the workspace.
Assertion details
- Input: Compiling saluki-common's ExpiryCapableLifecycle against quick_cache 0.7
- Expected:
The custom lifecycle should implement the quick_cache Lifecycle trait and preserve eviction/expiry tracking. - Actual:
The PR resolves quick_cache 0.7, whose documented breaking change reshapes the lifecycle API by threading RequestState through a mutable reference. saluki-common still implements the old begin_request(&self) and on_evict(&mut RequestState, ...) contract and invokes on_evict without the new API shape, so the cache crate fails to compile before its eviction and expiry scenarios can run.
Was this helpful? React 👍 or 👎
🤖 Datadog Autotest · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2f9cc410cf
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| pin-project = { version = "1.1", default-features = false } | ||
| pin-project-lite = { version = "0.2", default-features = false } | ||
| prettyplease = { version = "0.2", features = ["verbatim"] } | ||
| prettyplease = { version = "0.3", features = ["verbatim"] } |
There was a problem hiding this comment.
Keep prettyplease on the same syn major
The datadog-agent-config build dependency still uses workspace syn 2, and both render and type_to_string pass its syn::File directly to prettyplease::unparse; prettyplease 0.3 is resolved against syn 3.0.3 in Cargo.lock. Cargo treats those File types as distinct, so every build that runs this crate's build script fails before generating the typed configuration. Upgrade the build script to syn 3 in the same change or retain prettyplease 0.2.
AGENTS.md reference: AGENTS.md:L53-L58
Useful? React with 👍 / 👎.
| ] } | ||
| rustls-webpki = { version = "0.103", default-features = false } | ||
| schemars = { version = "0.8", default-features = false } | ||
| schemars = { version = "0.9", default-features = false } |
There was a problem hiding this comment.
Keep schemars compatible with typify
typify 0.7 remains locked to schemars 0.8.22, while render now deserializes the schema as the direct dependency's 0.9 RootSchema and passes it to TypeSpace::add_root_schema. The 0.8 and 0.9 schema types are distinct crate types, so the datadog-agent-config build script cannot compile. Upgrade and migrate typify alongside schemars, or retain schemars 0.8.
AGENTS.md reference: AGENTS.md:L53-L58
Useful? React with 👍 / 👎.
Regression Detector (Agent Data Plane)Optimization Goals:
|
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
This PR contains the following updates:
0.2→0.30.6→0.70.8→0.9Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Cargo breaking update (pre-v1.0) —
0.x→0.yis a breaking change in Cargo's semver. Before merging, verify the workspace compiles and check upstream release notes for removed features or API changes.Release Notes
dtolnay/prettyplease (prettyplease)
v0.3.0Compare Source
arthurprs/quick-cache (quick_cache)
v0.7.0Compare Source
What's Changed
Full Changelog: arthurprs/quick-cache@v0.6.24...v0.7.0
v0.6.24Compare Source
What's Changed
Full Changelog: arthurprs/quick-cache@v0.6.23...v0.6.24
GREsau/schemars (schemars)
v0.9.0Compare Source
This version is identical to
1.0.0-alpha.18, but is available for those who are unable to unwilling to use a pre-release version.Those upgrading from Schemars 0.8 may want to consult the migration guide, which also applies when migrating from 0.8 to 0.9.
Configuration
📅 Schedule: (UTC)
* 0-3 * * 1)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.