Skip to content

openRepoShape v1.0.1

Choose a tag to compare

@brettheap brettheap released this 15 Oct 14:20
· 386 commits to main since this release
8cda139

openRepoShape v1.0.1

v1.0.1 is v1.0.0 plus one change: openRepoShape installs in one line, and the
command it installs stays on the release tag it was installed from (#564).

What 1.0.1 adds

  • The one-line install. install.sh is attached to every release, so
    this line always installs the newest one:

    curl -fsSL https://github.com/opensoft/openRepoShape/releases/latest/download/install.sh | bash

    It reads which release is the newest from github.com's releases/latest
    redirect, with no gh and no login. It fetches that release's
    openRepoShape and installs it into ~/.local/bin, or
    $OPENREPOSHAPE_BIN_DIR, pinned to the release tag. It installs
    git-filter-repo 2.47.0 with pipx when pipx is there and
    git-filter-repo is not, and otherwise prints the one command that
    installs it. It ends with openRepoShape --preflight. install.sh itself
    never runs sudo; the preflight it ends with offers what is missing, each
    behind a typed yes at your terminal. Every download install.sh makes
    is HTTPS only, redirects included, at TLS 1.2 or newer. It exits 0 when the
    command is
    installed and the preflight passed, 1 when the command is installed but the
    preflight did not pass or the command does not stay on the release tag, and
    2 when it installed nothing.

  • An installed command that stays on its release tag. With
    OPENREPOSHAPE_RECORD_REF=1, which install.sh sets, openRepoShape --install records $OPENREPOSHAPE_REF in openRepoShape.ref beside the
    command it places. The installed command then fetches setup.sh at that
    ref, setup.sh clones the standard at it (--shape-ref), and --doctor
    checks its clone out at it, and so does a symlink to the command. In
    v1.0.0 an installed command fetched main on every run unless
    $OPENREPOSHAPE_REF was exported. $OPENREPOSHAPE_REF set for one run
    still overrides the record, and openRepoShape --version prints the ref in
    force. The installed command is byte for byte the release's own file.

Install and upgrade

  • The newest release: the line above. Run it again to upgrade to the
    newest release.
  • A named release:
    curl -fsSL https://github.com/opensoft/openRepoShape/releases/latest/download/install.sh | bash -s -- v1.0.1,
    or bash install.sh v1.0.1 from a checkout or a download.
  • What is installed: openRepoShape --version prints
    openRepoShape (opensoft/openRepoShape @ v1.0.1).
  • By hand, at main: the README's
    gh api repos/opensoft/openRepoShape/contents/openRepoShape … | bash -s -- --install
    line still installs main's command, which records no ref and follows main.
  • Platforms: macOS (the stock /bin/bash 3.2 is enough), Linux and WSL2.
    Git Bash on Windows is meant to work, as #564 asks, but nothing has run it
    yet: the launcher's and the installer's tests skip on the Windows job.
    #585 (v1.1.0) runs them under Git Bash. Native Windows without Git Bash
    still starts with py setup-project.py, as the README says.
  • A project's pin on the standard works as before. Follow
    How to pin 1.0.0 with the v1.0.1 release
    commit.

A script that runs --install

openRepoShape --install records a ref only when it is asked to, with
OPENREPOSHAPE_RECORD_REF=1. A script that exports $OPENREPOSHAPE_REF
around --install for its own reasons gets the install it got from v1.0.0:
nothing is recorded, a record already there is removed, and the command
follows main. To pin the command a script installs, set
OPENREPOSHAPE_RECORD_REF=1 and set $OPENREPOSHAPE_REF to the commit or
tag the command should stay on.

Known limits

v1.0.1 changes nothing else, so its known limits are v1.0.0's:
Known limits in v1.0.0.