Skip to content
This repository was archived by the owner on Oct 30, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
23 changes: 12 additions & 11 deletions docs/releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,17 @@ 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

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:
Expand All @@ -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
Expand All @@ -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.

Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Loading