Skip to content

Allow CI to trigger on main branch#1255

Merged
brendancol merged 1 commit intomasterfrom
rename-bridge-master-to-main
Apr 24, 2026
Merged

Allow CI to trigger on main branch#1255
brendancol merged 1 commit intomasterfrom
rename-bridge-master-to-main

Conversation

@brendancol
Copy link
Copy Markdown
Contributor

Summary

  • Adds main to the push-trigger branch lists in .github/workflows/test.yml and .github/workflows/benchmarks.yml.
  • Adds main to benchmarks/asv.conf.json's branches array.
  • Bridge step before renaming the default branch from master to main: keeps CI running on both branches across the rename so there is no coverage gap on either side.

Context

This is step 1 of a planned mastermain default branch rename. After this PR merges, the rename will be performed via the GitHub UI (Settings → Branches → Rename), which retargets any open PRs, migrates branch protection rules, and installs URL redirects. A follow-up PR will drop master from the bridge and update documentation URLs.

The actions/checkout@master and actions/setup-python@master references on lines 21 and 23 of test.yml point at the external actions' own repos and are unrelated to this rename. They are a separate hygiene concern and are not changed here.

Test plan

  • CI runs green on this PR (pull_request trigger fires as today, since the pull_request block already uses '*').
  • After merge, a push to master still triggers both workflows.
  • After the GitHub branch rename, a push to main triggers both workflows with no gap.

Bridge step before renaming the default branch from master to main.
Adds main alongside master to push triggers in test.yml and
benchmarks.yml, and to the branch list in asv.conf.json, so CI keeps
firing continuously across the rename.
@github-actions github-actions Bot added the performance PR touches performance-sensitive code label Apr 24, 2026
@brendancol brendancol merged commit 5d736a4 into master Apr 24, 2026
11 checks passed
brendancol added a commit that referenced this pull request Apr 25, 2026
Drops master from the CI push-trigger bridge added in #1255 and
updates every remaining reference to the old default branch name:

- test.yml and benchmarks.yml trigger only on main; benchmarks
  compare against origin/main and the step label reads "push to main"
- asv.conf.json branches list now just ["main"]
- README badge and LICENSE link point at main; CONTRIBUTING.md prose
  updated
- docs/source/index.rst and usage.rst example URLs updated
- benchmarks/README.md prose and examples updated
- .claude/commands/ release, bench, validate, and efficiency-audit
  scripts updated

Remaining "master" occurrences in .github/workflows/test.yml
(actions/checkout@master, actions/setup-python@master) refer to the
external actions' own repos and are unrelated to this rename. The
docs/source/conf.py "master_doc" references are Sphinx terminology,
also unrelated. The ASV comment in asv.conf.json documents ASV's
upstream default and stays accurate.
@brendancol brendancol deleted the rename-bridge-master-to-main branch April 25, 2026 12:10
brendancol added a commit that referenced this pull request Apr 25, 2026
* Replace master references with main after default branch rename

Drops master from the CI push-trigger bridge added in #1255 and
updates every remaining reference to the old default branch name:

- test.yml and benchmarks.yml trigger only on main; benchmarks
  compare against origin/main and the step label reads "push to main"
- asv.conf.json branches list now just ["main"]
- README badge and LICENSE link point at main; CONTRIBUTING.md prose
  updated
- docs/source/index.rst and usage.rst example URLs updated
- benchmarks/README.md prose and examples updated
- .claude/commands/ release, bench, validate, and efficiency-audit
  scripts updated

Remaining "master" occurrences in .github/workflows/test.yml
(actions/checkout@master, actions/setup-python@master) refer to the
external actions' own repos and are unrelated to this rename. The
docs/source/conf.py "master_doc" references are Sphinx terminology,
also unrelated. The ASV comment in asv.conf.json documents ASV's
upstream default and stays accurate.

* Add memory guards to dasymetric public API (#1261)

`pycnophylactic()` and `disaggregate(method='limiting_variable')`
allocated full-shape working arrays without checking available memory.
`_pycnophylactic_numpy` also stored one bool mask per zone in
`zone_masks`, so peak memory grew with `N_zones * H * W`.  1000 zones
on a 10000x10000 raster came to ~100 GB for the mask dict on top of
~3.4 GB of iteration buffers.

This adds `_available_memory_bytes()` and two budget helpers
(`_check_disaggregate_memory`, `_check_pycnophylactic_memory`) and
calls them from both public entry points.  They raise `MemoryError`
before the first allocation when projected working memory exceeds 50%
of available RAM.  The disaggregate guard only runs for in-RAM
backends (numpy, cupy); dask paths process per-chunk and skip the
check.  The pycnophylactic guard scales with `len(values_dict)` so a
runaway zone count is rejected even on a small raster.

Same pattern as #1231, #1229, #1240, #1236, and #1241.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: brendancol <433221+brendancol@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

performance PR touches performance-sensitive code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant