diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1db103c..e9e7dec 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ on: hardware_tag: description: Hardware version to pair with this CLI required: true - default: v0.1.9 + default: v0.1.10 hardware_run_id: description: Optional hardware workflow run providing the tested wheel before its first release required: false @@ -24,7 +24,7 @@ jobs: package: runs-on: ubuntu-24.04 env: - HARDWARE_TAG: ${{ inputs.hardware_tag || 'v0.1.9' }} + HARDWARE_TAG: ${{ inputs.hardware_tag || 'v0.1.10' }} steps: - uses: actions/checkout@v4 with: diff --git a/README.md b/README.md index 4b80aeb..b982f5f 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ export PATH="$HOME/.local/bin:$PATH" orchard setup-host ``` -The release requirements select compatible CLI and hardware wheels from GitHub, with SHA-256 hashes. Other Python dependencies come from PyPI; the project packages do not require PyPI publication. Rerun these commands to update. +The release requirements select compatible CLI and hardware wheels from GitHub, with SHA-256 hashes. Other Python dependencies come from PyPI; the project packages do not require PyPI publication. Rerun these commands to update both Orchard and its paired hardware package. If an installation says “Upgrade Orchard to at least …”, rerun the commands above, then retry the installation. `setup-host` installs missing palera1n and ipsw executables into `~/.local/bin`, leaving existing executables untouched. Linux USB rules are installed with sudo when needed; reconnect the device afterward. It never boots or modifies a device. diff --git a/docs/releases.md b/docs/releases.md index 14d51b9..e516590 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -21,7 +21,7 @@ python -m pip install --upgrade pip build python -m build --wheel ``` -Build hardware first, then CLI. Wheel versions come from each repository's `pyproject.toml`. The current pair is CLI `0.1.8` and hardware `0.1.9`. +Build hardware first, then CLI. Wheel versions come from each repository's `pyproject.toml`. The release pair prepared here is CLI `0.1.10` and hardware `0.1.10`. It includes the expanded J71b Wi-Fi firmware recipe; consuming images must require Orchard `0.1.10` or newer. ## Prepare assets locally @@ -29,9 +29,9 @@ From the CLI repository, pass explicit paths to both wheels: ```sh python tools/prepare_release.py \ - --cli-wheel dist/orchard_cli-0.1.8-py3-none-any.whl \ - --hardware-wheel /path/to/orchard_hardware-0.1.9-py3-none-any.whl \ - --output out/publication/host-0.1.8 + --cli-wheel dist/orchard_cli-0.1.10-py3-none-any.whl \ + --hardware-wheel /path/to/orchard_hardware-0.1.10-py3-none-any.whl \ + --output out/publication/host-0.1.10 ``` Use the actual wheel filenames for later versions. The tool reads their metadata and computes hashes. Output must be a new directory: @@ -44,8 +44,8 @@ Before publishing, install the pair into a fresh virtual environment, run `pytho ```sh python3 -m venv out/release-test out/release-test/bin/python -m pip install --only-binary=:all: \ - dist/orchard_cli-0.1.8-py3-none-any.whl \ - /path/to/orchard_hardware-0.1.9-py3-none-any.whl + dist/orchard_cli-0.1.10-py3-none-any.whl \ + /path/to/orchard_hardware-0.1.10-py3-none-any.whl out/release-test/bin/python -m pip check PYTHONDONTWRITEBYTECODE=1 out/release-test/bin/python -m unittest discover -s tests -v out/release-test/bin/orchard resolve tests/fixtures/first/index.toml @@ -55,11 +55,12 @@ Also run the hardware tests from its own repository using the same installed whe ## Publish in dependency order -1. Upload the hardware wheel to its matching hardware release tag. -2. Publish its [shared launcher manifest and assets](https://github.com/OrchardLinux/hardware/blob/main/boot/quiet/README.md). The default `orchard launch` command requires these, not only the wheel. -3. Upload the CLI wheel and generated `requirements.txt` to its matching CLI release tag. -4. Mark complete hardware and CLI releases as latest so their `latest/download` URLs work. -5. Resolve the hosted distro index and qualify installation and cold-restart launch on supported hardware before announcing the release. +1. Publish the hardware wheel/components at their immutable tag; retain the previous complete hardware release as latest. +2. Publish the matching CLI wheel and generated `requirements.txt` at their immutable tag. +3. Build consuming distro images with that exact pair and the new minimum CLI version. Keep them out of latest until their launcher is available. +4. Publish the hardware release's [shared launcher manifest and assets](https://github.com/OrchardLinux/hardware/blob/main/boot/quiet/README.md), using those exact distro roots. The default `orchard launch` command requires these, not only the wheel. +5. Promote the complete hardware, compatible CLI and distro releases to latest in that order. Their `latest/download` URLs must remain usable throughout. +6. Resolve the hosted distro index and qualify installation and cold-restart launch on supported hardware before announcing the release. See Omarchy A's release instructions for distro assets. Local preparation does not upload assets or operate a device. diff --git a/pyproject.toml b/pyproject.toml index 5d21340..87f13ae 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,13 +4,13 @@ build-backend = "setuptools.build_meta" [project] name = "orchard-cli" -version = "0.1.9" +version = "0.1.10" description = "Apple device Linux boot and installation tooling" readme = "README.md" license = "GPL-2.0-or-later AND MIT" license-files = ["LICENSE", "NOTICE", "LICENSES/*"] requires-python = ">=3.9" -dependencies = ["orchard-hardware>=0.1.9,<0.2", "jsonschema>=4.25,<5", "tomli>=2; python_version < '3.11'"] +dependencies = ["orchard-hardware>=0.1.10,<0.2", "jsonschema>=4.25,<5", "tomli>=2; python_version < '3.11'"] [project.urls] Repository = "https://github.com/OrchardLinux/cli"