Skip to content

chore(python): drop config validate/simulate Python code, now native in Rust#1322

Open
jd wants to merge 1 commit intodevs/jd/worktree-rust-port/switch-wheel-build-maturin-ship-rust-binary--8f6aa397from
devs/jd/worktree-rust-port/drop-config-validate-simulate-python-code-now--c88170ca
Open

chore(python): drop config validate/simulate Python code, now native in Rust#1322
jd wants to merge 1 commit intodevs/jd/worktree-rust-port/switch-wheel-build-maturin-ship-rust-binary--8f6aa397from
devs/jd/worktree-rust-port/drop-config-validate-simulate-python-code-now--c88170ca

Conversation

@jd
Copy link
Copy Markdown
Member

@jd jd commented Apr 30, 2026

config validate (#1282) and config simulate (#1298) ship native
in the Rust binary. With the maturin wheel from the previous commit,
both routes resolve to the Rust dispatch — the Python implementations
are dead code, just waiting to drift out of sync with the Rust copy.

Per the post-port plan agreed during review, every command's Python
copy is removed in the same change that makes it releasable as a
single Rust source. For commands already merged before the rule was
adopted, this commit catches them up:

  • Delete mergify_cli/config/ package (cli.py, validate.py).
  • Delete mergify_cli/tests/config/ (the 18 Python tests for
    validate/simulate; the Rust crate's 24 tests cover the same surface
    plus extras).
  • Drop the two [[command]] entries from PORT_STATUS.toml
    the inventory test only needs to track Python commands, and
    these are no longer Python.
  • Trim the cross-command exit-code contract suite of its three
    config-related cases; the Rust crate enforces those exit codes
    natively.
  • Drop the from mergify_cli.config import cli as config_cli_mod
    import + matching cli.add_command(...) from the root Python CLI;
    with no Python config commands left, the config group disappears
    from the click tree (the Rust binary intercepts before any click
    group lookup, so end-users see no behavior change).

The wheel still builds, installs, and runs both mergify config validate (Rust native) and mergify --help (Python shim). 592 of
the previous 610 Python tests pass; the missing 18 are the deleted
config tests.

Depends-On: #1321

@mergify mergify Bot had a problem deploying to Mergify Merge Protections April 30, 2026 09:29 Failure
@jd
Copy link
Copy Markdown
Member Author

jd commented Apr 30, 2026

This pull request is part of a Mergify stack:

# Pull Request Link
1 build(packaging): switch wheel build to maturin, ship Rust binary alongside Python source #1321
2 chore(python): drop config validate/simulate Python code, now native in Rust #1322 👈
3 feat(rust): port ci scopes-send to native Rust (Phase 1.4) #1300
4 feat(rust): port queue pause and unpause to native Rust (Phase 1.5) #1301
5 feat(rust): port ci git-refs and ci queue-info to native Rust (Phase 1.6) #1302

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented Apr 30, 2026

Merge Protections

Your pull request matches the following merge protections and will not be merged until they are valid.

🔴 ⛓️ Depends-On Requirements

Waiting for:

This rule is failing.

Requirement based on the presence of Depends-On in the body of the pull request

🔴 👀 Review Requirements

Waiting for:

  • #approved-reviews-by>=2
This rule is failing.
  • any of:
    • #approved-reviews-by>=2
    • author = dependabot[bot]
    • author = mergify-ci-bot
    • author = renovate[bot]

🔴 🔎 Reviews

Waiting for:

  • #review-requested = 0
This rule is failing.
  • #review-requested = 0
  • #changes-requested-reviews-by = 0
  • #review-threads-unresolved = 0

🟢 🤖 Continuous Integration

Wonderful, this rule succeeded.
  • all of:
    • check-success=ci-gate

🟢 Enforce conventional commit

Wonderful, this rule succeeded.

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?:

🟢 📕 PR description

Wonderful, this rule succeeded.
  • body ~= (?ms:.{48,})

@jd jd marked this pull request as ready for review April 30, 2026 09:39
@jd jd force-pushed the devs/jd/worktree-rust-port/switch-wheel-build-maturin-ship-rust-binary--8f6aa397 branch from e5530f7 to 31628c9 Compare April 30, 2026 12:09
@jd jd force-pushed the devs/jd/worktree-rust-port/drop-config-validate-simulate-python-code-now--c88170ca branch from 1b53967 to a745f41 Compare April 30, 2026 12:09
@jd
Copy link
Copy Markdown
Member Author

jd commented Apr 30, 2026

Revision history

# Type Changes Reason Date
1 initial 1b53967 2026-04-30 12:09 UTC
2 content 1b53967 → a745f41 2026-04-30 12:09 UTC
3 rebase a745f41 → 800a454 2026-04-30 13:08 UTC
4 rebase 800a454 → 75fad04 2026-04-30 13:30 UTC
5 rebase 75fad04 → 04d71cb 2026-04-30 14:06 UTC

@mergify mergify Bot had a problem deploying to Mergify Merge Protections April 30, 2026 12:09 Failure
@jd jd force-pushed the devs/jd/worktree-rust-port/switch-wheel-build-maturin-ship-rust-binary--8f6aa397 branch from 31628c9 to b6420ce Compare April 30, 2026 13:08
@jd jd force-pushed the devs/jd/worktree-rust-port/drop-config-validate-simulate-python-code-now--c88170ca branch from a745f41 to 800a454 Compare April 30, 2026 13:08
@mergify mergify Bot had a problem deploying to Mergify Merge Protections April 30, 2026 13:08 Failure
@jd jd force-pushed the devs/jd/worktree-rust-port/drop-config-validate-simulate-python-code-now--c88170ca branch from 800a454 to 75fad04 Compare April 30, 2026 13:30
@mergify mergify Bot had a problem deploying to Mergify Merge Protections April 30, 2026 13:31 Failure
…in Rust

`config validate` (#1282) and `config simulate` (#1298) ship native
in the Rust binary. With the maturin wheel from the previous commit,
both routes resolve to the Rust dispatch — the Python implementations
are dead code, just waiting to drift out of sync with the Rust copy.

Per the post-port plan agreed during review, every command's Python
copy is removed in the same change that makes it releasable as a
single Rust source. For commands already merged before the rule was
adopted, this commit catches them up:

- Delete `mergify_cli/config/` package (cli.py, validate.py).
- Delete `mergify_cli/tests/config/` (the 18 Python tests for
  validate/simulate; the Rust crate's 24 tests cover the same surface
  plus extras).
- Drop the two `[[command]]` entries from `PORT_STATUS.toml` —
  the inventory test only needs to track *Python* commands, and
  these are no longer Python.
- Trim the cross-command exit-code contract suite of its three
  config-related cases; the Rust crate enforces those exit codes
  natively.
- Drop the `from mergify_cli.config import cli as config_cli_mod`
  import + matching `cli.add_command(...)` from the root Python CLI;
  with no Python config commands left, the `config` group disappears
  from the click tree (the Rust binary intercepts before any click
  group lookup, so end-users see no behavior change).

The wheel still builds, installs, and runs both `mergify config
validate` (Rust native) and `mergify --help` (Python shim). 592 of
the previous 610 Python tests pass; the missing 18 are the deleted
config tests.

Change-Id: Ic88170ca01430b62fb98df9aa5fd8e644bdb6e09
@jd jd force-pushed the devs/jd/worktree-rust-port/switch-wheel-build-maturin-ship-rust-binary--8f6aa397 branch from f4c7454 to d7dfb31 Compare April 30, 2026 14:06
@jd jd force-pushed the devs/jd/worktree-rust-port/drop-config-validate-simulate-python-code-now--c88170ca branch from 75fad04 to 04d71cb Compare April 30, 2026 14:06
@mergify mergify Bot had a problem deploying to Mergify Merge Protections April 30, 2026 14:07 Failure
@mergify mergify Bot requested a review from a team April 30, 2026 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant