Skip to content

Next steps after the 2026-09-28 session: release gating (#138) and loose ends #212

Description

@quantecon-services

Hand-off from the 2026-09-28 session, so the work can be picked up again. Close this once every item below is done or has moved into its own issue.

Where things stand

Next steps

In dependency order. Steps 4 and 5 can happen at any time.

1. Decide #143

These are the questions left open in the findings comment:

  • Where the gate lives: a gate.yml in the canary, or a new fixture repo (The release gate needs its own fixture repo — the canary cannot be trusted as one #136).
  • How previews get tested outside a PR: an opt-in input in the preview actions, or a gate that opens a PR.
  • Which candidate commits the gate accepts. The suggestion is main and v* tags only. Also decide whether the gate's secrets live in an environment only main can use.
  • Build conditions: a committed image digest or :latest resolved once per run; cold or warm builds; intersphinx on or off.
  • Whether the gate covers publish-gh-pages. Doing so would overwrite the canary's Pages site.

Then:

2. Fix the preview actions (no issue yet)

This is needed if step 1 picks the opt-in input. It is also needed before a scheduled canary ci.yml (PLAN 0c) can test anything. The suggested design:

  • An opt-in input, for example dispatch-alias, limited to a reserved dispatch- prefix so it can never hit pr-N or Cloudflare production.
  • An allow-list of events (workflow_dispatch, schedule), never a deny-list. The pull_request literal is what keeps pull_request_target out (fix(preview): surface deploy errors, pin CLIs, remove unsafe fork guidance #105).
  • A deployed output, and a ::notice:: whenever nothing is deployed. Callers check deployed == 'true'.

The release that ships this changes every consumer's PR path. Test it by hand with a real canary PR first (CONTRIBUTING.md, Staged Releases).

3. Build the gate and prove it (PLAN 0b–0d)

4. The next release

5. The canary's README (QuantEcon/test-actions-lecture-intro)

  • After step 1, rewrite "This repo is not the release gate". Its @v0 and :latest reasons are per workflow, not per repo.
  • Fix "no build-time network access": cold builds fetch intersphinx inventories.

Loose ends

Notes for a Claude session picking this up

  • If the gate is built in the canary, add QuantEcon/test-actions-lecture-intro to the session with push access.
  • The session's network proxy blocks artifact downloads (*.blob.core.windows.net). Read job logs through the API instead.
  • The session's git proxy refused to delete a branch. Delete branches in the GitHub UI.

Activity

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

Metadata

Metadata

Assignees

Labels

infrastructureSubstantial CI / build / deploy / tooling / automation work, or behaviour-preserving restructuring

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions