merge queue: embarking main (02126f5) and #1460 together#1484
Closed
mergify[bot] wants to merge 4 commits into
Closed
merge queue: embarking main (02126f5) and #1460 together#1484mergify[bot] wants to merge 4 commits into
mergify[bot] wants to merge 4 commits into
Conversation
`ci queue-info::write_github_output` formatted a unique `ghadelimiter_<uuid-v4>` to guard against a metadata payload that happens to contain its own heredoc delimiter. The actual contract is "32 unpredictable hex chars", not "a UUID per RFC 4122" — the delimiter is never parsed by anyone, only matched as a string. Pull 16 random bytes straight from `getrandom::fill` and hex-encode them. Drops `uuid` from the direct deps (it stays unreferenced and disappears from `Cargo.lock`), with `getrandom` taking its place — which `uuid` was already pulling in transitively, so the net add is zero new code shipped to the binary. The local helper is six lines. Same blast radius for a maintainer-attack story, smaller surface to read. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Change-Id: Ib6599e9b6fca49281186b726a63e4641fa32596e
… parsing
The workspace had two YAML parsers — both forks of the archived
`dtolnay/serde-yaml`. `mergify-config` used `serde_norway` for
`.mergify.yml`; `mergify-ci` used `serde_yaml_ng` for merge-queue
metadata in PR bodies and git notes. Same job, two crates, two
transitive `unsafe-libyaml*` trees in Cargo.lock.
Standardize on `serde_yaml_ng` for both. The decision is grounded
in concrete signal, not vibe:
Metric serde_norway serde_yaml_ng
───────────────────────── ───────────── ─────────────
Reverse-deps on lib.rs 229 (78 dir.) 618 (349 dir.)
GitHub stars 53 109
Last commit 2025-08-04 2025-09-14
Bus factor (recent prs) 1 (solo) merges externals
Maintainer statement v0.9.40 title README: explicit
"I'm gonna upstream-compat
maintain this" intent
unsafe-libyaml backend forked ("…- canonical
norway")
Open since 2024-06-10 2024-05-03
License Apache-2.0 MIT (= upstream)
`serde_yaml_ng` wins on every axis that matters for the "will this
still be alive in two years" question: three-times the ecosystem
adoption, more recent activity, accepts third-party PRs, declares
the maintenance commitment in writing, and uses the canonical
`unsafe-libyaml` rather than a parallel-fork backend.
Functional surface is identical for both of our use shapes —
`from_str` to a typed struct for ci, `from_str` to `Value`
then convert to `serde_json::Value` for config validation.
Migration is purely a rename at the one call site.
Cargo.lock drops `serde_norway` and `unsafe-libyaml-norway`.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Change-Id: If5d28d2c4259127181bace5bafb0ac02c78d8f7b
Pin the contract before porting `ci scopes` to Rust. The new test exercises the "no base provided" branch — pass `--head HEAD` without `--base` and the command must list every configured scope as touched. This is the one execution path through `ci scopes` that doesn't shell out to `git diff`, so the test stays hermetic inside the tmp dir the `cli` fixture runs in (no git init, no remote fetch, no Mergify API). The Python implementation passes today. The follow-up port lands on top and the same smoke test exercises the Rust binary, catching any wire-format or exit-code drift between the two implementations. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Change-Id: I14468b7046c449104675aea0a07a273eab479316
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.
🎉 This pull request has been checked successfully and will be merged soon. 🎉
Branch main (02126f5) and #1460 are embarked together for merge.
This pull request has been created by Mergify to speculatively check the mergeability of #1460.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.
Required conditions of queue rule
defaultfor merge:depends-on = Mergifyio/mergify-cli#1447[⛓️ refactor(config): standardize the workspace on serde_yaml_ng for YAML parsing #1447]ci scopesselect-all path #1460title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?:ci scopesselect-all path #1460#approved-reviews-by>=2ci scopesselect-all path #1460author = dependabot[bot]ci scopesselect-all path #1460author = mergify-ci-botci scopesselect-all path #1460author = renovate[bot]ci scopesselect-all path #1460body ~= (?ms:.{48,})ci scopesselect-all path #1460#changes-requested-reviews-by = 0ci scopesselect-all path #1460#review-requested = 0ci scopesselect-all path #1460#review-threads-unresolved = 0ci scopesselect-all path #1460check-success=ci-gateRequired conditions to stay in the queue:
base=mainci scopesselect-all path #1460depends-on = Mergifyio/mergify-cli#1447[⛓️ refactor(config): standardize the workspace on serde_yaml_ng for YAML parsing #1447]ci scopesselect-all path #1460label!=manual mergeci scopesselect-all path #1460title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?:ci scopesselect-all path #1460#approved-reviews-by>=2ci scopesselect-all path #1460author = dependabot[bot]ci scopesselect-all path #1460author = mergify-ci-botci scopesselect-all path #1460author = renovate[bot]ci scopesselect-all path #1460body ~= (?ms:.{48,})ci scopesselect-all path #1460#changes-requested-reviews-by = 0ci scopesselect-all path #1460#review-requested = 0ci scopesselect-all path #1460#review-threads-unresolved = 0ci scopesselect-all path #1460check-success=ci-gateci scopesselect-all path #1460