Skip to content

chore(no_run): drop 3 dead NEEDS_FIX markers + 1 inert SLOW entry in HowTo* repos #34

Description

@Jammy2211

Overview

Follow-up from PyAutoLabs/autogalaxy_workspace#143, which found that HowToGalaxy's config/build/no_run.yaml carried an entry copy-pasted wholesale from the parent workspace repo when the tutorials were split out. Auditing every entry in both HowTo repos against the real matcher (PyAutoHands/autobuild/build_util.py::should_skip) shows the copy-paste is systemic:

Repo Entries Match ≥1 file Match zero files
HowToGalaxy 18 1 (tutorial_searches) 17
HowToLens 32 2 (tutorial_searches, tutorial_5_borders) 30

This issue takes a deliberately narrow slice: the entries that actively mislead. The bulk cruft is reported but left alone.

The two problems being fixed

1. Dead NEEDS_FIX markers (3). These advertise open bugs that do not exist and inflate Heart's stale-parked-script count (currently 58):

  • HowToGalaxy: ellipse/modeling, guides/advanced/over_sampling
  • HowToLens: group/slam

None matches any file — HowToGalaxy holds only chapter_*/ + simulators/, HowToLens only chapter_*/ + simulator/, and patterns containing / are substring-matched against the file path.

2. A broken pattern whose stated reason rests on a cap that does not exist (1).
howtolens/chapter_4_pixelizations/tutorial_10_brightness_adaption # SLOW 2026-04-10 - pixelization tutorial exceeds 60s test timeout

This one is not dead cruft — the file genuinely exists at scripts/chapter_4_pixelizations/tutorial_10_brightness_adaption.py. The stale pre-split howtolens/ prefix means the substring never matches, so the entry has not applied since the repo split and the tutorial has been running in CI all along.

The obvious move — repair the prefix — is wrong:

  • The 60s cap does not exist. PyAutoHands/autobuild/run_all.py sets DEFAULT_TIMEOUT_SECS = 300.
  • Measured: 233.7s, exit 0 under the HowToLens smoke profile. It fits the real cap.

So repairing the prefix would newly park a script that passes. Deleting the entry is behaviour-preserving (it is inert today) and matches reality. Deleted rather than repaired.

Plan

  • Delete the 3 dead NEEDS_FIX entries.
  • Delete the 1 broken, inert SLOW entry rather than repairing it, per the measurement above.
  • Verify no live entry is lost: after the change HowToGalaxy still resolves tutorial_searches, HowToLens still resolves tutorial_searches + tutorial_5_borders — byte-identical live sets.
  • No script changes, so no notebook regeneration.
Detailed implementation plan

Affected Repositories

  • HowToGalaxy (primary)
  • HowToLens

Branch Survey

Repository Current Branch Dirty?
./HowToGalaxy main clean
./HowToLens main clean

Branch: feature/howto-no-run-stale-entries
Worktree: ~/Code/PyAutoLabs-wt/howto-no-run-stale-entries/

Implementation Steps

  1. HowToGalaxy/config/build/no_run.yaml — delete the ellipse/modeling and guides/advanced/over_sampling lines.
  2. HowToLens/config/build/no_run.yaml — delete the group/slam and howtolens/chapter_4_pixelizations/tutorial_10_brightness_adaption lines.
  3. Re-parse both YAMLs and re-run the should_skip audit, asserting the live-entry set is unchanged and no NEEDS_FIX string remains.

Verification performed

  • should_skip audit of all 50 entries across both repos against every tracked scripts/**.py.
  • tutorial_10_brightness_adaption.py timed end-to-end: 233.7s, exit 0, zero tracebacks, under smoke profile (PYAUTO_TEST_MODE=2 + skips).
  • Post-change: HowToGalaxy 16 entries / live ['tutorial_searches']; HowToLens 30 entries / live ['tutorial_searches', 'tutorial_5_borders'].

Out of scope — reported, not fixed

  • ~44 remaining zero-match entries across both repos. Not blindly deleted: several are stem patterns (fits_make, png_make, data_fitting, deflections) that would begin applying if a script with that stem is ever added, so they may be prospective guards rather than cruft. Needs a deliberate call.
  • tutorial_6_model_fit (HowToLens, # InversionException due to test mode) — no file of that stem has ever existed in HowToLens history, and the intended target is ambiguous (tutorial_8_model_fit.py exists in chapter_4). Left for a human rather than guessed at.

Risk note

tutorial_10_brightness_adaption consumes 233.7s of the 300s budget (22% headroom) on a laptop. If CI is slower it could time out. Should that happen, the correct fix is a correctly-spelled SLOW entry (chapter_4_pixelizations/tutorial_10_brightness_adaption), not the broken one being removed here.

Refs PyAutoLabs/autogalaxy_workspace#143

Original prompt

Filed as PyAutoMind/draft/bug/howto/howto_no_run_stale_and_broken_entries.md from the follow-up identified while closing #143.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions