Skip to content

One-line install: curl -fsSL …/releases/latest/download/install.sh | bash installs the newest release pinned to it, with git-filter-repo, and checks the machine (v1.0.1) #564

Closed

Description

@brettheap

Goal: installing openRepoShape is one command on any machine, and the installed command stays on the release it installed.

Decision. Brett Heap, 2026-10-14:

What is wrong today

  • Installing takes several steps, and the result is not pinned.
    • The installed openRepoShape reads OPENREPOSHAPE_REF at every run and defaults to main (openRepoShape:31). Its scaffold and doctor runs fetch the standard at that ref (openRepoShape:381-389 and 672-674).
    • From v1.0.0 on, main carries v1.1.0 work, so a plain install drifts off the release within hours.
    • Staying on a release today means exporting OPENREPOSHAPE_REF in a shell profile.
  • git-filter-repo is a separate install on every machine. adopt-project.py refuses filter-repo-missing without it.

The change

  1. install.sh at the repository root, attached to every release, so this one line always installs the newest release:
    curl -fsSL https://github.com/opensoft/openRepoShape/releases/latest/download/install.sh | bash
    It does four things:

    • It finds the newest release from the releases/latest redirect on github.com, with no gh needed, or takes the one named: … | bash -s -- v1.0.1.
    • It fetches that release's openRepoShape and runs its --install, pinned to the release.
    • It handles git-filter-repo: if it is already on PATH, it says so. If not and pipx is on PATH, it installs git-filter-repo==2.47.0 with pipx and says so. Otherwise it prints the one command for this machine.
    • It ends with openRepoShape --preflight.

    Running the same line again upgrades to the newest release.

  2. The launcher's --install records the ref it installed at, and the installed command uses it. It must reach every place that today honours only an exported OPENREPOSHAPE_REF: the doctor's clone (openRepoShape:381-389) and setup.sh's --shape-ref (openRepoShape:674). OPENREPOSHAPE_REF still overrides it for one run, and --version prints it.

  3. README's install section leads with the one line. The gh api … | bash -s -- --install form stays as the manual way.

Constraints

Release steps

  1. A PR into release/v1.0, an independent review, and the three-OS run on its head.
  2. The tag v1.0.1 and a GitHub Release with install.sh attached.
  3. The same change carried into main.
  4. The workBenches image re-vendored at v1.0.1 (ruling 33).

Filed by lane openRepoShape-3 on Brett Heap's word above.

Activity

  1. added this to the v1.0.1 milestone on Oct 14, 2026
  2. brettheap commented on Oct 14, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-14T22:57:48Z, for #564

    Logged in lanes/log/openRepoShape-3.md at 242bd501ffa1ea8a08a5240ed95669cfacc30db7.

    The three reads (lane-collision-protocol Rule 1):

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#564:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#564"`, kept where the row or its body names `#564`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `564` as a whole token:
       none
    
  3. brettheap commented on Oct 15, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-3, 2026-10-15T14:21:29Z) Released in v1.0.1.

    Closed by hand, because a PR into a non-default base does not close its issue.

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

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions