Skip to content

Update openblas-experimental from 0.3.35.dev0 to 0.3.36.0dev0 - #6698

Open
emscripten-forge-bot wants to merge 1 commit into
mainfrom
bump-openblas-experimental_0.3.35.dev0_to_0.3.36.0dev0_for_main
Open

emscripten-forge-bot wants to merge 1 commit into
mainfrom
bump-openblas-experimental_0.3.35.dev0_to_0.3.36.0dev0_for_main

Conversation

@emscripten-forge-bot

Copy link
Copy Markdown
Contributor

Beep-boop-beep! Whistle-whistle-woo!

@emscripten-forge-bot emscripten-forge-bot added the Automerge The PR will be automatically merged if CI is green label Sep 11, 2026
@IsabelParedes IsabelParedes added DO NOT MERGE DO NOT MERGE this pr is only for debugging the ci or simmilar and removed Automerge The PR will be automatically merged if CI is green labels Sep 11, 2026
@IsabelParedes

Copy link
Copy Markdown
Member

Do not close this PR. This should prevent the bot from trying to update again.

@emscripten-forge-bot emscripten-forge-bot added the Needs Human Review The CI is not passing, automerge is disabled label Sep 12, 2026
@emscripten-forge-bot

Copy link
Copy Markdown
Contributor Author

Either the CI is failing, or the recipe is not tested. I need help from a human.

MMesch added a commit that referenced this pull request Sep 15, 2026
Refactor the version-bump bot into a plan/execute pipeline with four
named stages, and expose them as a --mode flag so operators can run any
prefix of the pipeline instead of only "do everything or nothing."

emci/bot/bump_recipes_versions.py:
- Introduce Mode enum (check/plan/edit/submit) and four stage functions
  with a 1:1 correspondence to modes: check_bump, plan_bump, edit_bump,
  submit_bump. Each stage strictly adds one action to the previous.
- Introduce composed dataclasses: Candidate (produced by check_bump) and
  BumpAction (Candidate + sha256, produced by plan_bump).
- Rename get_new_version -> find_new_version_url. It now returns the URL
  (not the sha256), returns the recipe's current version even when no
  newer release is found, and skips candidate versions whose rendered
  URL equals the current one -- stops the bot from opening no-source-
  change "bump" PRs on commit-pinned recipes whose URL template doesn't
  reference version (#6698, #6570).
- Move the previously-inlined skip list to module scope as SKIP_RECIPES;
  add discover_recipes() helper (single source of truth for both real
  and preview runs).
- Extract _process_existing_bot_prs() and _checkout_target_branch() so
  the dispatcher clearly separates side-effect setup from planning.
- Stage functions are print-silent; the dispatcher owns all output.
  Per-recipe status lines: "BUMP" / "no bump" / "error".

emci/__main__.py:
- Add --mode {check,plan,edit,submit}, default check.
- Add --limit N (default 20). Counts successful completions of the
  terminal stage, so --limit 20 in submit mode means 20 real PRs.

.github/workflows/new_versions.yaml:
- Pass --mode submit explicitly (default flipped to check). No other
  behavior change: --limit default of 20 matches the old pr_limit=20.
MMesch added a commit that referenced this pull request Sep 15, 2026
Refactor the version-bump bot into a plan/execute pipeline with four
named stages, and expose them as a --mode flag so operators can run any
prefix of the pipeline instead of only "do everything or nothing."

emci/bot/bump_recipes_versions.py:
- Introduce Mode enum (check/plan/edit/submit) and four stage functions
  with a 1:1 correspondence to modes: check_bump, plan_bump, edit_bump,
  submit_bump. Each stage strictly adds one action to the previous.
- Introduce composed dataclasses: Candidate (produced by check_bump) and
  BumpAction (Candidate + sha256, produced by plan_bump).
- Rename get_new_version -> find_new_version_url. It now returns the URL
  (not the sha256), returns the recipe's current version even when no
  newer release is found, and skips candidate versions whose rendered
  URL equals the current one -- stops the bot from opening no-source-
  change "bump" PRs on commit-pinned recipes whose URL template doesn't
  reference version (#6698, #6570).
- Move the previously-inlined skip list to module scope as SKIP_RECIPES;
  add discover_recipes() helper (single source of truth for both real
  and preview runs).
- Extract _process_existing_bot_prs() and _checkout_target_branch() so
  the dispatcher clearly separates side-effect setup from planning.
- Stage functions are print-silent; the dispatcher owns all output.
  Per-recipe status lines: "BUMP" / "no bump" / "error".

emci/__main__.py:
- Add --mode {check,plan,edit,submit}, default check.
- Add --limit N (default 20). Counts successful completions of the
  terminal stage, so --limit 20 in submit mode means 20 real PRs.

.github/workflows/new_versions.yaml:
- Pass --mode submit explicitly (default flipped to check). No other
  behavior change: --limit default of 20 matches the old pr_limit=20.
MMesch added a commit that referenced this pull request Sep 15, 2026
Refactor the version-bump bot into a plan/execute pipeline with four
named stages, and expose them as a --mode flag so operators can run any
prefix of the pipeline instead of only "do everything or nothing."

emci/bot/bump_recipes_versions.py:
- Introduce Mode enum (check/plan/edit/submit) and four stage functions
  with a 1:1 correspondence to modes: check_bump, plan_bump, edit_bump,
  submit_bump. Each stage strictly adds one action to the previous.
- Introduce composed dataclasses: Candidate (produced by check_bump) and
  BumpAction (Candidate + sha256, produced by plan_bump).
- Rename get_new_version -> find_new_version_url. It now returns the URL
  (not the sha256), returns the recipe's current version even when no
  newer release is found, and skips candidate versions whose rendered
  URL equals the current one -- stops the bot from opening no-source-
  change "bump" PRs on commit-pinned recipes whose URL template doesn't
  reference version (#6698, #6570).
- Move the previously-inlined skip list to module scope as SKIP_RECIPES;
  add discover_recipes() helper (single source of truth for both real
  and preview runs).
- Extract _process_existing_bot_prs() and _checkout_target_branch() so
  the dispatcher clearly separates side-effect setup from planning.
- Stage functions are print-silent; the dispatcher owns all output.
  Per-recipe status lines: "BUMP" / "no bump" / "error".

emci/__main__.py:
- Add --mode {check,plan,edit,submit}, default check.
- Add --limit N (default 20). Counts successful completions of the
  terminal stage, so --limit 20 in submit mode means 20 real PRs.

.github/workflows/new_versions.yaml:
- Pass --mode submit explicitly (default flipped to check). No other
  behavior change: --limit default of 20 matches the old pr_limit=20.
@MMesch

MMesch commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

Either the CI is failing, or the recipe is not tested. I need help from a human.

MMesch added a commit that referenced this pull request Sep 18, 2026
Refactor the version-bump bot into a plan/execute pipeline with four
named stages, and expose them as a --mode flag so operators can run any
prefix of the pipeline instead of only "do everything or nothing."

emci/bot/bump_recipes_versions.py:
- Introduce Mode enum (check/plan/edit/submit) and four stage functions
  with a 1:1 correspondence to modes: check_bump, plan_bump, edit_bump,
  submit_bump. Each stage strictly adds one action to the previous.
- Introduce composed dataclasses: Candidate (produced by check_bump) and
  BumpAction (Candidate + sha256, produced by plan_bump).
- Rename get_new_version -> find_new_version_url. It now returns the URL
  (not the sha256), returns the recipe's current version even when no
  newer release is found, and skips candidate versions whose rendered
  URL equals the current one -- stops the bot from opening no-source-
  change "bump" PRs on commit-pinned recipes whose URL template doesn't
  reference version (#6698, #6570).
- Move the previously-inlined skip list to module scope as SKIP_RECIPES;
  add discover_recipes() helper (single source of truth for both real
  and preview runs).
- Extract _process_existing_bot_prs() and _checkout_target_branch() so
  the dispatcher clearly separates side-effect setup from planning.
- Stage functions are print-silent; the dispatcher owns all output.
  Per-recipe status lines: "BUMP" / "no bump" / "error".

emci/__main__.py:
- Add --mode {check,plan,edit,submit}, default check.
- Add --limit N (default 20). Counts successful completions of the
  terminal stage, so --limit 20 in submit mode means 20 real PRs.

.github/workflows/new_versions.yaml:
- Pass --mode submit explicitly (default flipped to check). No other
  behavior change: --limit default of 20 matches the old pr_limit=20.
MMesch added a commit that referenced this pull request Sep 18, 2026
Restructures the version-bump bot around two ideas: a stage ladder for
"how far the run goes" and a shared ops model for "execute vs preview."
The two phases the bot used to run together (merging its own open PRs
and opening new bumps) are split into independent subcommands.

Mode ladder for `bump-recipes-versions`
---------------------------------------
Each mode does its own stage plus every earlier one; default is `check`.

  check   HEAD candidate URLs until one exists. No downloads.
  plan    + download the tarball and compute sha256.
  edit    + create a local branch, write recipe.yaml, commit (no push).
  submit  + push the branch and open the PR. CI passes this explicitly.

Dry-run (orthogonal flag)
-------------------------
--dry-run turns every write / git / gh mutation into a printed line and
shows a unified diff of the recipe.yaml change instead of writing it.
Reads (HEADs, gh pr list, gh pr checks, gh pr view) still run so
decisions are made against real state. `--mode submit --dry-run` is a
full rehearsal that touches nothing.

Ops model
---------
Stage functions (edit_bump, submit_bump, merge processing, target
checkout) build a list of SubprocessCmd / FileWrite dataclasses instead
of invoking side effects directly. A single execute() runs them for
real; print_ops() prints them without running. Dry-run picks the
printer — same op list, no drift possible.

Data classes
------------
Candidate (post-check) and BumpAction (BumpAction inherits from
Candidate, adds sha256 + edit_ops + edit_cleanup + submit_ops). plan_bump
builds the whole plan up front; edit_bump/submit_bump are thin runners.

URL-unchanged skip
------------------
In find_new_version_url, skip candidate versions whose rendered URL
matches the current one. Stops the bot from opening no-source-change
"bump" PRs on commit-pinned recipes whose URL template doesn't
reference version (#6698, #6570).

Split subcommands
-----------------
- bump-recipes-versions: open new bump PRs. In submit mode, fetches
  open bot PRs read-only to skip recipes with an in-flight PR (skipped
  entirely when --recipe is given).
- merge-open-prs: NEW subcommand for the merge/label pass over the
  bot's already-open PRs. Same --dry-run semantics.
- CI (.github/workflows/new_versions.yaml) runs the two as separate
  steps for independent failure signal.

Other flags on bump-recipes-versions
------------------------------------
- --limit N (default 20): stop after N successful completions of the
  terminal stage — 20 real PRs in submit, 20 hashed candidates in plan.
- --recipe NAME (repeatable): scope to specific recipes.

Misc
----
- Normalise recipe.yaml block sequences to 2-space dashes on write
  (ruamel default; standardises across recipes as bumps land).
- Bot-authored commits use `git -c user.name=... -c user.email=...`
  on the one commit call instead of `git config --global`, so
  --mode edit works on read-only $HOME.
- shlex.join on dry-run argv output — copy-pasteable command lines.
- One "Would" line per PR grouped with that PR's header.
- Loud DRY RUN banner top and bottom of a dry-run run.
- emci/README.md updated with both subcommands and worked examples.

Removed helpers no longer needed in this file: bot_github_user_ctx,
set_bot_user (still used by update_matplotlib_fontcache.py via
git_utils.py; that module is untouched).

This branch has not been deployed

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

Labels

DO NOT MERGE DO NOT MERGE this pr is only for debugging the ci or simmilar Needs Human Review The CI is not passing, automerge is disabled

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants