Skip to content

docs(quantecon): cherry-pick upstream model, batched tags#30

Merged
mmcky merged 3 commits into
mainfrom
chore/docs-cherrypick-upstream-model
May 15, 2026
Merged

docs(quantecon): cherry-pick upstream model, batched tags#30
mmcky merged 3 commits into
mainfrom
chore/docs-cherrypick-upstream-model

Conversation

@mmcky
Copy link
Copy Markdown

@mmcky mmcky commented May 15, 2026

Summary

Two related doc / tracker updates so the fork-maintenance docs match how we actually work:

1. Cherry-pick upstream model (commit 5a1d455a)

Updates quantecon/README.md and quantecon/VERSION.yml to reflect two model shifts:

2. UPSTREAM-PRS.yml tracker (commit 22c057b0)

Adds a new tracked file quantecon/UPSTREAM-PRS.yml for planning how main squash commits bundle into upstream PRs. The two tracker files now have crisp, orthogonal roles (cross-referenced by squash SHA):

File Question it answers
VERSION.yml What QuantEcon squash commits are in our main right now? (diagnostic / build identifier)
UPSTREAM-PRS.yml How do we plan to ship those squash commits upstream? (bundles, dependencies, status)

Seeds UPSTREAM-PRS.yml with three candidates:

Also drops the upstream: block from each VERSION.yml merged_features entry (was always pending placeholder, now lives in UPSTREAM-PRS.yml) and adds the missing book-proof-scope (#28) entry there.

Why

Test plan

  • README renders cleanly (preview)
  • Diagram aligns
  • quantecon/PLAN.md stays gitignored (verified with git check-ignore)
  • UPSTREAM-PRS.yml added to .gitignore allow-list

No code changes, no behaviour changes — pure docs / tracker update.

🤖 Generated with Claude Code

Replace the "preserve feature branch, push as upstream PR" workflow
with "delete feature branch after merge; cherry-pick main squash
commits onto a fresh branch off upstream/main when upstreaming."

Why:
- Feature branches that depend on prior QuantEcon-only features were
  awkward to branch from upstream/main (had to carry the dependency
  inline or wait for it to upstream first).
- Branching from main lets dependencies just work; the squash commit
  on main is already the upstream-ready artifact.
- Cherry-picking at upstream-PR time lets us bundle related squashes
  into a coherent story ("book mode + section scope") when that's the
  right unit for upstream review, or split them.

Tagging also moves from per-PR to batched: a `qe-vN` tag is cut at a
checkpoint covering multiple features, not on each merge.

Updates the diagram, branching-model table, "Develop a new feature",
"Opening an upstream PR" (now cherry-pick-driven), "When upstream
merges", "Resolving merge conflicts between features", and the
VERSION.yml comment block. Adds an `upstream/<topic>` branch type to
the branching model.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 15, 2026 00:06
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates QuantEcon fork-maintenance documentation to reflect a workflow shift toward short-lived feature branches, upstream PR preparation via cherry-picking main squash commits onto upstream/<topic>, and batching qe-vN tags at checkpoints (rather than per merged PR).

Changes:

  • Revise branching model documentation (feature branches off origin/main, upstream PR branches off upstream/main via cherry-pick).
  • Update upstreaming instructions (new “Opening an upstream PR” section and simplified post-upstream-merge steps).
  • Clarify qe-vN tagging as batched checkpoints in both README.md and VERSION.yml.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
quantecon/README.md Updates the maintenance guide to the cherry-pick upstreaming model and batched tagging guidance.
quantecon/VERSION.yml Updates the header comment to describe checkpoint-based tagging and per-PR feature recording.
Comments suppressed due to low confidence (3)

quantecon/VERSION.yml:15

  • "tag may be set later once the next qe-v<N> cuts" is ambiguous/off-by-one (for a newly merged feature, the tag will be set when a new qe-v… tag is cut, i.e. qe-v<N+1> relative to the previous tag). Suggest rephrasing to something like "once the next qe-v tag is cut" or "once qe-v<N+1> is cut" to avoid confusion when following the workflow.
# Per-PR landing only adds the feature to `merged_features` with its squash
# `merge_sha`; `tag` may be set later once the next `qe-v<N>` cuts.

quantecon/README.md:16

  • In the "cut a tag" instructions, step 3 says to "Append each newly-included feature to merged_features", but later the README relies on merged_features already containing each feature's merge_sha at upstream-PR time. This reads as two different sources of truth (record features at merge-time vs at tag-time) and could cause duplicated/missing entries. Consider updating step 3 to reflect the intended model (e.g., per-PR: add entry with merge_sha; per-tag: bump qe_version and set/back-fill tag on the already-merged entries).
Tags are cut at meaningful checkpoints, **not per-PR** — typically when a batch of features is ready for downstream dogfooding. To cut a tag:

1. Pick the `main` commit at the head of the batch
2. Tag it: `git tag qe-v<N+1> <sha> -m "qe-v<N+1>: <summary of features included>"` then `git push origin qe-v<N+1>`
3. Append each newly-included feature to `merged_features` in `VERSION.yml` and bump `qe_version`

quantecon/README.md:162

  • In this conflict-resolution rebase snippet, origin/main may be stale unless the user has fetched recently. Other snippets in this doc include an explicit git fetch origin first; consider adding it here as well so the instructions reliably rebase onto the latest main.
```bash
git checkout feature/<later>
git rebase origin/main
# resolve conflicts, git add, git rebase --continue
git push --force-with-lease origin feature/<later>

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread quantecon/VERSION.yml Outdated
Comment thread quantecon/README.md Outdated
mmcky and others added 2 commits May 15, 2026 10:14
…ERSION.yml

Two tracker files now record orthogonal facts, cross-referenced by
squash-commit SHA:

- VERSION.yml answers "what's in our main?" — diagnostic identifier
  for the integration build. Drops its `upstream:` block (was an
  always-`pending` placeholder).
- UPSTREAM-PRS.yml answers "how do we plan to ship those squash
  commits upstream?" — bundles related squashes into logical upstream
  PR candidates (so a feature spanning multiple commits, or two
  features that form one upstream story, can be tracked as a single
  unit), records dependency order for cherry-pick, tracks status.

Seeds UPSTREAM-PRS.yml with three candidates: myst-to-ipynb (#16),
book-mode-with-section-scope (#22 + #28, bundled — they form one
coherent upstream story since #28 builds on #22's auto-prefix hooks),
and book-parts (#26, planned). Adds the missing book-proof-scope
entry to VERSION.yml's merged_features.

README updated to partition the two files' roles and reference
UPSTREAM-PRS.yml from the cherry-pick workflow.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- VERSION.yml header: remove double-accounting in the tag-cut steps.
  Per-PR landing already appends each feature to merged_features with
  tag: null; the tag-cut workflow just *sets* the tag field on those
  pre-existing entries and bumps qe_version. The old wording said
  "Append each newly-included feature" which contradicted the
  per-PR-landing description below it.
- README "About this folder": the allow-list now contains README.md,
  VERSION.yml, UPSTREAM-PRS.yml, and .gitignore itself — the original
  text only mentioned the first two.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@mmcky mmcky merged commit b32fc5c into main May 15, 2026
5 checks passed
@mmcky mmcky deleted the chore/docs-cherrypick-upstream-model branch May 15, 2026 01:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants