Skip to content

Template 0.1.24: download links for "v" tags, installers only for the supported systems, the app's own Jupyter kernel - #45

Merged
IvanHCenalmor merged 1 commit into
mainfrom
claude/template-0.1.24
Nov 12, 2026
Merged

IvanHCenalmor merged 1 commit into
mainfrom
claude/template-0.1.24

Conversation

@IvanHCenalmor

Copy link
Copy Markdown
Collaborator

Fixes #41, fixes #42, fixes #43. Design note: .tools/docs/migration_0_1_24.md.

Problems (all three found with StarDist2D 1.0.0)

Changes

  • release_constructor.yml: both "Determine release version" steps also export the tag as typed (RELEASE_TAG). A new platforms job runs release_platforms.py; the build job takes its matrix from it (fromJSON(needs.platforms.outputs.matrix)).

  • .tools/python/release_platforms.py (new):

    • reads distribution.platforms of labconstrictor-app.yaml and writes the matrix;
    • without the key or the file, all four builds, in the old order, so nothing changes for existing apps;
    • fails with the reason on invalid YAML, a non-list, or a list with none of the four (windows-arm64 / linux-arm64 have no build).
  • bump_version.py:

    • the download links point to the tag (--tag, default $RELEASE_TAG, else the version), and the installer names keep the bare version;
    • a tag that is neither X.Y.Z nor vX.Y.Z is refused;
    • a system that is not built gets a note instead of its button.

    The tag comes from the environment, so the workflow and this script do not depend on each other: an unchanged (customised) bump_version.py keeps working, with the old links.

  • launch_jupyter.py: run_jupyter() sets JUPYTER_PREFER_ENV_PATH=1 before importing JupyterLab. It is set, not defaulted, so a user's 0 cannot bring the bug back.

  • Migration v0_1_23_to_v0_1_24.py:

    • surgical and idempotent: it never raises for a customised file, keeps line endings and deletes nothing;
    • it creates release_platforms.py and changes known exact blocks only;
    • the build matrix is switched only when it is exactly the template's four builds, and a matrix trimmed by hand (Playground) is left alone with a SKIPPED line.
  • Docs: migration_0_1_24.md, the release guide (a v tag works), the app manifest guide (platforms decides the builds), and both troubleshooting pages.

  • Tests:

    • tests/test_template_sync_0_1_24.py (34 tests);
    • tests/_v0_1_24.py undoes the 0.1.24 blocks, so the frozen resources of the 0.1.13 / 0.1.18 / 0.1.20 migrations are still compared with the live files.

Verified

  • With CI's versions (ruff 0.15.20, mypy 1.20.2), ruff and mypy pass.
  • The new tests pass. The full suite on Windows has the same failures as main (bash and path-separator tests that pass on Linux), and none are new.
  • Copies of NucleiSky, Playground, Guess the Condition, LabConstrictor_Demo, LabChronicle, CellTracksColab, StarDist2D, CellPatcher and VLab4Mic were synced from their own template version to 0.1.24, then bump_version.py was run with a vX.Y.Z tag:
    • every link points to the v tag;
    • StarDist2D builds 3 systems and its page shows the Intel Mac notes, while the others build all 4;
    • CellPatcher's customised bump_version.py is updated and keeps its pre-release check;
    • the Playground's hand-trimmed matrix is reported SKIPPED and left as it is.

Not verified

🤖 Generated with Claude Code

… supported systems, the app's own Jupyter kernel

- #41: the release workflow exports the tag as typed (RELEASE_TAG); bump_version.py points the download links to it
  and keeps the bare version in the installer names. It reads the tag from the environment, so an unchanged
  bump_version.py keeps working.
- #42: new .tools/python/release_platforms.py reads distribution.platforms of labconstrictor-app.yaml; a new
  platforms job writes the build matrix, and the download page gets a note instead of the button of a system that
  is not built. Without the key, every system is built as before.
- #43: launch_jupyter.py sets JUPYTER_PREFER_ENV_PATH=1 before JupyterLab starts, so the app's own kernel wins over
  a user-level "python3" kernelspec.
- Migration v0_1_23_to_v0_1_24.py (surgical, idempotent, SKIPPED for customised files), design note
  migration_0_1_24.md, docs and tests (tests/test_template_sync_0_1_24.py; tests/_v0_1_24.py keeps the frozen
  resources of older migrations comparable with the live files).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@IvanHCenalmor
IvanHCenalmor merged commit d2d1db0 into main Nov 12, 2026
4 checks passed
@IvanHCenalmor
IvanHCenalmor deleted the claude/template-0.1.24 branch November 12, 2026 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant