Skip to content

publish_strict.sh hardcodes the publish universe size (74) — derive it from the cargo metadata that builds publish-order.txt #3657

Description

@noahgift

scripts/release/publish_strict.sh asserts [ "${#ORDER[@]}" -eq 74 ] && [ "${#EXPECT[@]}" -eq 74 ] and sort -u | wc -l = 74, and prints "74 crates" / "74/74 live". That is a 0.68.2-era constant of the same class #3618 removed for V/MS/EPIC/LAST_TAG/AP (#3655).

Measured tonight: 71 publishable packages at v0.68.2 and on origin/main (cargo metadata --no-deps); ORDER = publish-order.txt (71) + the 3 provable-contracts facades = 74; scripts/lib/cascade_universe.py on main prints 74 rows. So 0.69 does not trip it, and the check fails closed (die) if the count changes. It is still a literal that will stop a future cascade for a reason unrelated to publish safety.

What lands

  • Derive the expected size from the same source that builds publish-order.txt (cargo metadata at the tag + the facade list), and assert ORDER == universe as sets (no missing, no extra, no duplicate). The script already checks membership one way.
  • Extend scripts/check_release_scripts_derive_identity.sh (or its case table) so a bare crate-count literal in an assertion is refused, with a planted-literal row.

Not a T-4 blocker for 0.69. Refs #3618 #3655.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions