Skip to content

Retire the legacy shell and PowerShell entry points #310

Description

@hjmjohnson

The pixi/Python build system (#309) supersedes the shell and PowerShell
entry points, but they cannot be removed yet: remote modules fetch three
of them by URL at a pinned tag, so deleting them breaks those consumers
until each one is updated. #309 marks them "backward compatibility" in
the README; this issue tracks actually retiring them.

Not urgent. Nothing is broken today. This is cleanup to schedule once
the consumer workflows move.

What is left

Ten files, 1,469 lines, in three tiers.

Tier 1 — already dead, no consumer (313 lines)

File Lines Superseded by
scripts/make_tarballs.sh 120 wheel_packaging.py
scripts/make_windows_zip.ps1 157 wheel_packaging.py
docs/make.bat 36 docs/Makefile + a pixi task

Referenced only by each other and the .rst docs. docs/make.bat is the
Sphinx Windows helper and has no caller at all.

Tier 2 — internal plumbing, reachable only through tier 3 (602 lines)

dockcross-manylinux-build-module-wheels.sh (219),
dockcross-manylinux-build-wheels.sh (148),
dockcross-manylinux-download-cache.sh (135),
docker_build_environment_driver.sh (100).

Tier 3 — the published API (554 lines)

File Lines
dockcross-manylinux-download-cache-and-build-module-wheels.sh 134
macpython-download-cache-and-build-module-wheels.sh 174
windows-download-cache-and-build-module-wheels.ps1 246

These are fetched from raw.githubusercontent.com at a pinned tag.
Removing them is the compatibility break.

Why the break is smaller than it looks

Remote modules do not curl these directly. They call the reusable
workflow in
ITKRemoteModuleBuildTestPackageAction,
and the curl happens there. So the lockstep change is one file in one
repository
, and modules tracking @main pick it up on their next run.
Modules pinned to an older tag keep fetching the old scripts from that
tag, which still resolves.

Suggested order

  1. Update the reusable workflow to call build_wheels.py directly.
  2. Confirm a real remote module builds on all four platforms through the
    updated workflow.
  3. Delete tier 3, then tier 2 (unreachable once tier 3 is gone).
  4. Delete tier 1 independently; nothing depends on it.

Tier 1 could be done at any time, including before the rest.

Related

Activity

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

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