Docs: fix release and command references
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 73897efc-ca9e-48b7-8b5a-50be0a930b09
This commit is contained in:
parent
7aab3fd97f
commit
6aebd48eec
|
|
@ -1,5 +1,6 @@
|
|||
# Release pipeline: every push to `release` builds signed installers for every platform and
|
||||
# creates or updates the draft GitHub Release "LightCraft v<version>". See docs/releasing.md.
|
||||
# Release pipeline: every push to `release` builds platform artifacts (signed where credentials
|
||||
# are configured) and creates or updates the draft GitHub Release "LightCraft v<version>".
|
||||
# See docs/releasing.md.
|
||||
#
|
||||
# All jobs run in the `release` environment (restricted to the `release` branch), which holds
|
||||
# the signing secrets. Every secret is optional: missing ones produce unsigned artifacts and a
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# LightCraft — instructions for agents
|
||||
|
||||
LightCraft is a clean-room, open-source, pure-Rust photo library + non-destructive raw developer targeting Adobe Lightroom parity (and beyond). Native on macOS, Windows, Linux; web via WASM. Sibling of `../pdfcraft` (Acrobat), `../photocraft` (Photoshop), `../drawcraft` (Illustrator) and `../filmcraft` (Premiere), with the same conventions.
|
||||
LightCraft is a clean-room, open-source, pure-Rust photo library + non-destructive raw developer targeting Adobe Lightroom parity (and beyond). Native on macOS, Windows, Linux; web via WASM. Sibling of `../pdfcraft` (Acrobat), `../photocraft` (Photoshop), `../vectorcraft` (Illustrator) and `../filmcraft` (Premiere), with the same conventions.
|
||||
|
||||
## Start every session here
|
||||
1. Read `plan/STATUS.md` (current milestone, next unchecked task, blockers).
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# LightCraft — instructions for agents
|
||||
|
||||
LightCraft is a clean-room, open-source, pure-Rust photo library + non-destructive raw developer targeting Adobe Lightroom parity (and beyond). Native on macOS, Windows, Linux; web via WASM. Sibling of `../pdfcraft` (Acrobat), `../photocraft` (Photoshop), `../drawcraft` (Illustrator) and `../filmcraft` (Premiere), with the same conventions.
|
||||
LightCraft is a clean-room, open-source, pure-Rust photo library + non-destructive raw developer targeting Adobe Lightroom parity (and beyond). Native on macOS, Windows, Linux; web via WASM. Sibling of `../pdfcraft` (Acrobat), `../photocraft` (Photoshop), `../vectorcraft` (Illustrator) and `../filmcraft` (Premiere), with the same conventions.
|
||||
|
||||
## Start every session here
|
||||
1. Read `plan/STATUS.md` (current milestone, next unchecked task, blockers).
|
||||
|
|
|
|||
10
README.md
10
README.md
|
|
@ -233,11 +233,11 @@ lightcraft --control 7980 ~/Pictures/trip
|
|||
{"method": "ui.screenshot", "params": {"path": "after.png"}}
|
||||
```
|
||||
|
||||
- **91 engine commands** and **48 UI commands.** List them all with `engine.commands`; read every slider's range,
|
||||
default and current value with `develop.controls`.
|
||||
- **MCP server.** `lightcraft-cli mcp` gives Claude (or any MCP client) ~100 tools: import, query, develop, mask,
|
||||
render (returned as an image), export. It runs headless, or attached to the running app with screenshots, clicks
|
||||
and gestures. See [docs/mcp.md](docs/mcp.md).
|
||||
- **Command registry.** `engine.commands` lists the available commands; `develop.controls` lists every slider's
|
||||
range, default and current value.
|
||||
- **MCP server.** `lightcraft-cli mcp` exposes the command registry to Claude (or any MCP client), alongside
|
||||
helpers for import, query, develop, mask, render (returned as an image) and export. It runs headless, or attached
|
||||
to the running app with screenshots, clicks and gestures. See [docs/mcp.md](docs/mcp.md).
|
||||
|
||||
```sh
|
||||
cargo build --release -p lightcraft-cli
|
||||
|
|
|
|||
|
|
@ -112,8 +112,8 @@ command registry (engine commands, plus the app's UI commands such as `view.deta
|
|||
connected): the id with `.` replaced by `_` and a `cmd_` prefix — `photo.rate` → `cmd_photo_rate`,
|
||||
`develop.set` → `cmd_develop_set`, `edit.undo` → `cmd_edit_undo`. Arguments are the command's
|
||||
JSON params (documented in each tool's description and by `list_commands`). Pass `--compact` to
|
||||
leave these out (about 90 headless / 140 connected) when a client struggles with many tools;
|
||||
`run_command` still reaches every command.
|
||||
leave these per-command tools out when a client struggles with a large tool list; `run_command`
|
||||
still reaches every command.
|
||||
|
||||
## Resources
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,56 @@
|
|||
# Releasing LightCraft
|
||||
|
||||
The release pipeline is [`.github/workflows/release.yml`](../.github/workflows/release.yml).
|
||||
It runs on every push to the `release` branch. A maintainer can also dispatch it manually, with
|
||||
an optional version override such as `1.2.0-rc.1`; the release environment's branch restrictions
|
||||
still apply.
|
||||
|
||||
## Prepare and start a release
|
||||
|
||||
1. Merge the release-ready changes into `release`.
|
||||
2. Set the workspace version in `Cargo.toml` (for example, with `cargo xtask version set 1.2.0`).
|
||||
For a manual workflow run, the version input can override the workspace version for that run.
|
||||
Use a semantic version such as `1.2.0` or `1.2.0-rc.1`; versions containing a hyphen are
|
||||
marked as prereleases.
|
||||
3. Push to `release`, or dispatch the workflow from a branch allowed by the `release` environment.
|
||||
4. Check the workflow run and its artifacts. On success, the workflow creates or updates a **draft**
|
||||
GitHub Release named `LightCraft v<version>`, targeted at the commit that triggered the run.
|
||||
Review the draft and its `SHA256SUMS.txt`, then publish it in GitHub Releases when ready.
|
||||
|
||||
The workflow replaces assets when it updates an existing draft. It stops rather than overwriting a
|
||||
release that has already been published, so bump the version before producing another release.
|
||||
|
||||
## Builds and artifacts
|
||||
|
||||
Release jobs build macOS universal, Windows x86/x64/ARM64, Linux x86_64/aarch64, and the WASM web
|
||||
app. The platform scripts in [`packaging/`](../packaging/) write their outputs to `dist/release/`:
|
||||
|
||||
- macOS: app DMG and CLI ZIP.
|
||||
- Windows: MSI installer and portable ZIP for each architecture.
|
||||
- Linux: AppImage, `.deb`, `.rpm`, and `.tar.gz` for each architecture.
|
||||
- Web: `lightcraft-web-<version>.zip`.
|
||||
|
||||
The Linux builds run on Ubuntu 22.04 and target glibc 2.35 or newer. AppImages and binaries may
|
||||
also require system libraries for the windowing stack; the `.deb` and `.rpm` packages declare
|
||||
their runtime dependencies.
|
||||
|
||||
Release builds fetch the pinned [`storytold/craft-fonts`](https://github.com/storytold/craft-fonts)
|
||||
revision and require it (`CRAFT_FONTS_REQUIRED=1`). Keep that pin deliberate when updating the
|
||||
workflow.
|
||||
|
||||
## Signing credentials
|
||||
|
||||
All credentials are stored as secrets in the GitHub `release` environment. Signing is optional:
|
||||
without platform signing credentials, packaging continues with unsigned artifacts and warnings.
|
||||
macOS notarization is a separate optional step; when its credentials are absent, a build with a
|
||||
signing identity is signed but not notarized. Configure only the platform credentials you need:
|
||||
|
||||
- **macOS signing:** `APPLE_CERTIFICATE`, `APPLE_CERTIFICATE_PASSWORD`, and `KEYCHAIN_PASSWORD`.
|
||||
**Notarization** additionally needs all of `APPLE_ID`, `APPLE_PASSWORD` (an app-specific
|
||||
password), and `APPLE_TEAM_ID`.
|
||||
- **Windows signing:** either `WINDOWS_CERTIFICATE` and `WINDOWS_CERTIFICATE_PASSWORD`, or Azure
|
||||
Trusted Signing credentials: `AZURE_TENANT_ID`, `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`,
|
||||
`AZURE_SIGNING_ENDPOINT`, `AZURE_SIGNING_ACCOUNT`, and `AZURE_CERT_PROFILE`.
|
||||
|
||||
Linux and web artifacts are not code-signed by this workflow. The release job computes SHA-256
|
||||
checksums for the complete artifact set and attaches the checksum file to the draft release.
|
||||
Loading…
Reference in New Issue