Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
pull_request:
branches: [develop]
push:
branches: ['work/**']
branches: ['feat/**']
workflow_dispatch:
# Daily against python-multiplatform develop as it is that day: the binder's contract moves under
# this package without a pull request here, and #41 found out only at the next PR.
Expand Down
15 changes: 10 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,26 +47,31 @@ build caches, model weights, `node_modules`) into every worktree is how 86 workt

| Branch | Who writes to it |
|---|---|
| `work/<topic>` | You. All work happens here. |
| `develop` | Merged into from work branches after verification. Never commit to it directly. |
| `feat/<topic>` | You. All work happens here; never `work/`. Deleted once merged. |
| `develop` | Merged into from feature branches after verification. Never commit to it directly. |
| `release` | **CI only.** Not a standing branch: CI regenerates it from every push to `develop`, in the main-only file layout, and opens the PR into `main`. It may not exist. Never write to it. |
| `main` | **Pull request from `release` only.** Never push or merge to it directly. |

`main` carries a reduced layout: of the Markdown files, only `README.md` stays at the repository
root, and `docs/` keeps only its subdirectories (no Markdown files directly under `docs/`).
CI runs `tools/release/sync-release.sh` (`.github/workflows/release-sync.yml`) to produce that layout; do not hand-edit `release` or `main`.

Only `main`, `release` and `develop` stand. A feature branch is deleted when it merges, with its
local branch and worktree. Sweep periodically: delete every remote and local branch that
`git branch -r --merged origin/develop` lists (keep `release-*` snapshots), and land or report any
unmerged branch that has gone stale.

### Issues and pull requests

Every new feature goes through an issue and a pull request:

1. Before starting, search the repository's issues (`gh issue list --state all --search "<keywords>"`).
2. If no issue covers the work, open one (`gh issue create`) stating what and why, and the
completion criterion — which tests must pass.
3. Work on a `work/<topic>` branch, push every commit, and open a pull request into `develop`
3. Work on a `feat/<topic>` branch, push every commit, and open a pull request into `develop`
whose body contains `Closes #<number>`.
4. Merge into `develop` through that pull request (`gh pr merge`), not by a local merge, so the
issue is linked.
4. Merge into `develop` through that pull request (`gh pr merge --merge --delete-branch`), not by a
local merge, so the issue is linked and the branch goes; remove the local branch and worktree too.
5. Then close the issue yourself: `gh issue close <number> --comment "Landed in develop via #<PR>"`.
GitHub's `Closes #N` only fires when a pull request merges into the default branch (`main`),
and these pull requests merge into `develop`.
Expand Down
Loading