Skip to content

README: state the sandbox role, and why this repo is not the release gate - #52

Merged
mmcky merged 2 commits into
mainfrom
docs/sandbox-role
Aug 11, 2026
Merged

mmcky merged 2 commits into
mainfrom
docs/sandbox-role

Conversation

@mmcky

@mmcky mmcky commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Writes down what this repo is for. The role was never stated, so it was read as the release gate — which prompted QuantEcon/actions#136.

What it is

The experiment and integration sandbox for quantecon/actions, plus its post-release canary. The question it answers is does this work against a real-ish lecture repo? Its history is exactly that: PR-scoped build caching (#36), PDF and notebook builds in CI preview (#35), the @v0 migration (#26).

What it is not

The release gate. Three properties make a red run here ambiguous, and the first two are the right properties for a sandbox — they are how upstream breakage surfaces early:

Property Sandbox Gate
quantecon-build:latest wanted — catches container drift forbidden — environment must not move under the test
Dependabot enabled wanted — surfaces dependency breakage forbidden — no ambient drift
Pinned @v0 correct — sees releases as consumers do wrong — only ever tests a published release, never a candidate, and with no lead over consumers

Those are contradictory repo-level settings, which is why one repo cannot hold both roles. Gating moves to test-actions-releaseQuantEcon/actions#136 for the split, QuantEcon/actions#135 for the mechanism.

Note on the existing trim

While writing this I audited the fixture and initially claimed it does build-time network reads. That was wrong and I have corrected it upstream: only_build_toc_files: true means only the five lectures in _toc.yml build, and they were chosen against explicit criteria including no network access. Verified — the built set has zero remote reads. PR #49 had already done that work.

One real gap did surface: the built set has no plotly, so kaleido static export is uncovered — the QuantEcon/actions#85 failure path. Not addressed here; noted in QuantEcon/actions#136 as cheap to add.

Docs only.

🤖 Generated with Claude Code

…gate

This repo is where actions features get tried end to end -- PR-scoped build
caching (#36), PDF and notebook builds in preview (#35), the @v0 migration
(#26). That role was never written down, so it was read as the release gate,
which it cannot be.

Three properties make a red run here ambiguous: a floating :latest container,
Dependabot enabled, and an @v0 pin that always exercises the previous release
rather than a candidate. The first two are the right properties for a sandbox
-- they are how upstream breakage surfaces early -- and exactly wrong for a
gate. Gating moves to a separate frozen fixture, test-actions-release.

See QuantEcon/actions#136 for the split and QuantEcon/actions#135 for the gate
mechanism.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Clarifies this repository’s role relative to quantecon/actions: it is an experiment/integration sandbox and post-release canary, not the release-gating fixture, and explains why those roles must be split.

Changes:

  • Reframes the repo purpose as an integration sandbox + canary for quantecon/actions.
  • Documents why this repo cannot serve as a release gate (moving container, Dependabot drift, floating @v0).
  • Points readers to test-actions-release and the upstream issues for the gating split.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread README.md Outdated
@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown

📖 Netlify Preview Ready!

Preview URL: https://pr-52--jade-tarsier-d98a19.netlify.app

Commit: 8b66ebc


Build Info

"always exercises the previous release" reads as perpetually one version
behind, which is false -- @v0 tracks the current release, so once the tag moves
this repo is on the new code like everyone else. "Previous" only holds in the
narrow window relative to a candidate at gating time.

The accurate statement is also the stronger one: this repo only ever exercises
a published release, never a candidate, and because a release moves the tag,
consumers arrive at the new code at the same moment it does. That names both
the missing candidate coverage and the missing lead time -- which together are
the reason gating needs a separate staging tag rather than a schedule change.

Raised by Copilot on #52.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mmcky
mmcky merged commit d4d16be into main Aug 11, 2026
1 check passed
@mmcky
mmcky deleted the docs/sandbox-role branch August 11, 2026 00:59
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