Skip to content

Decision: standard GitHub label set for QuantEcon lecture repositories #324

@mmcky

Description

@mmcky

The ask

Please review the proposed standard label set below and comment on the three
questions
at the bottom — ideally by Wednesday 17 June so we can roll out the
following week.

This issue is decision-only and closes when we agree. Full rationale,
the org-wide audit, and implementation tracking live in #323 — nothing here
needs reading beyond this page to respond.

Proposed label set (18)

Unlabelled = "needs triage, normal priority" — nothing must be labelled.
Colour carries meaning: priority is a heat scale, automation is quiet grey.

Type — what kind of work? (one per issue, at triage)

Label Colour Description When to use
bug 🟥 #d73a4a Something is wrong or broken in a lecture or build The lecture is incorrect: wrong maths, erroring code, broken rendering
enhancement 🟦 #a2eeef Improvement to existing material Better exposition, new exercise, improved figures
new-lecture 🟦 #0537E9 A new lecture (the marquee outcome) Brand-new lecture — proposed, in progress, or shipped. Use instead of enhancement
documentation 🟦 #0075ca Repo docs and contributor meta READMEs, CONTRIBUTING — about the repo; lecture content is never documentation
maintenance 🟨 #fbca04 Housekeeping: tooling, infra, style, environments Work a reader never sees; "rendered lectures look identical after"
question 🟪 #d876e3 A question or discussion thread Swap for a work type once it becomes agreed work

Priority — heat scale (unlabelled = normal)

Label Colour Description When to use
high-priority 🟧 #d93f0b Address soon Published content visibly broken; build blockers. Label only the outliers
low-priority 🟩 #c2e0c6 Nice to have, no time pressure Agreed work that's fine to sit; "someday" ideas. No medium — default is the middle

Editorial & workflow

Label Colour Description When to use
editor 🟩 #0e8a16 Requires editor review — final sign-off Apply at handoff after team review; editor's queue = org:QuantEcon label:editor. Remove on sign-off
do-not-merge 🟥 #b60205 Must not be merged yet May look mergeable (even approved) but held: pins, experiments, cross-repo timing

Community (GitHub-canonical names)

Label Colour Description When to use
good first issue 🟪 #7057ff Self-contained, friendly to newcomers Only when genuinely self-contained with clear acceptance criteria
help wanted 🟩 #008672 Outside help welcome Including domain (econ/math) expertise — say what's needed in a comment

Automation — applied by bots, not humans (quiet grey)

Label Colour Description When to use
automated #ededed Opened by a bot or scheduled workflow Every bot issue carries this + exactly one diagnostic below
broken-links #dddddd Link checker found dead links Applied by action-link-checker
build-failure #cccccc Execution, build, or warnings failure Applied by build/warnings checks
dependencies #bdbdbd Dependency or environment update The single Dependabot label (replaces github_actions / conda)

Meta — closing outcomes

Label Colour Description When to use
duplicate #cfd3d7 Already tracked elsewhere On close; link the survivor
wontfix #ffffff Decided not to act On close, with one sentence why

What we deliberately DON'T label

in-workDraft PR · ready"Ready for review" · review → review
requests · blocked/on-hold → Draft + link the blocker · medium-priority
no label · project labels (reading-group-*) → Milestones · per-tool labels
(colab, …) → build-failure.

Scope (summary)

  • Lecture repos get all 18. Software/tooling repos later get the core 16
    (everything except new-lecture + editor), which also becomes the
    org-level default set for new repos.
  • Not touched: meta (keeps discuss/project/education), translation
    forks (translate:*), *.notebooks build repos.
  • Migration renames labels in place (e.g. linkcheckerbroken-links), so
    existing issue/PR history is preserved.

❓ The three questions

Q1 — The set. Any label you would add, remove, or rename? (Names, colours,
and descriptions above are the proposal; say what you'd change.)

Q2 — Which lecture repos are in? Confirmed: lecture-python-intro,
lecture-python-programming, lecture-python.myst,
lecture-python-advanced.myst, lecture-dp, lecture-jax.
Candidates — tick any that should also be in the first rollout:

  • lecture-julia.myst
  • lecture-datascience.myst
  • lecture-stats
  • continuous_time_mcs
  • lecture-wasm

Q3 — The one behavioural change. Status labels (in-work, ready,
review, blocked) are retired in favour of native GitHub: open PRs as
Drafts while working, click "Ready for review" when done, use review
requests for review state. Only do-not-merge survives as a label. Are you
comfortable committing to this convention?


Background, full rationale per label, the org-wide audit (this is the 4th
unification attempt — #178, #290 will be closed against the outcome here), and
implementation tracking: see #323. Tooling to apply the result is ready
(qe gh labels sync, QuantEcon/cli).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions