Skip to content

Commit 95cd3eb

Browse files
author
Developer
committed
chore: prepare v0.8 api freeze
1 parent c6a5dd2 commit 95cd3eb

81 files changed

Lines changed: 6216 additions & 2896 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/ci.yml‎

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: ci
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
required:
14+
name: required checks
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
20+
- name: Install Rust
21+
uses: dtolnay/rust-toolchain@stable
22+
23+
- name: Restore Cargo cache
24+
uses: Swatinem/rust-cache@v2
25+
26+
- name: Check formatting
27+
run: cargo fmt --check
28+
29+
- name: Clippy
30+
run: cargo clippy --workspace --all-targets -- -D warnings
31+
32+
- name: Test workspace
33+
run: cargo test --workspace --locked --no-fail-fast
34+
35+
- name: Build CLI for smoke gates
36+
run: cargo build --locked -p llmff
37+
38+
- name: Schema contract
39+
run: python3 scripts/check-schema-contract.py
40+
41+
- name: Plugin fixtures
42+
run: bash scripts/check-plugin-fixtures.sh
43+
44+
- name: Governance readiness
45+
run: bash scripts/check-governance-readiness.sh
46+
47+
- name: Ecosystem readiness
48+
run: bash scripts/check-ecosystem-readiness.sh
49+
50+
- name: Real-world workflow examples
51+
run: bash scripts/check-real-world-workflows.sh
52+
env:
53+
LLMFF_BIN: target/debug/llmff
54+
55+
- name: Events and streaming smoke
56+
run: LLMFF_BIN=target/debug/llmff bash scripts/smoke-events-streaming.sh

‎CONTRIBUTING.md‎

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,26 @@ opening a release-facing pull request.
1212
Useful gates:
1313

1414
```bash
15+
cargo fmt --check
16+
cargo clippy --workspace --all-targets -- -D warnings
1517
cargo test
16-
scripts/check-schema-contract.py
17-
scripts/check-plugin-fixtures.sh
18-
scripts/check-governance-readiness.sh
18+
python3 scripts/check-schema-contract.py
19+
bash scripts/check-plugin-fixtures.sh
20+
bash scripts/check-governance-readiness.sh
1921
```
2022

23+
Release-facing pull requests should also run the CI-equivalent local gate:
24+
25+
```bash
26+
cargo test --workspace --locked --no-fail-fast
27+
bash scripts/check-ecosystem-readiness.sh
28+
bash scripts/check-real-world-workflows.sh
29+
LLMFF_BIN=target/debug/llmff bash scripts/smoke-events-streaming.sh
30+
```
31+
32+
Live provider smoke checks remain explicit and opt-in; do not require provider
33+
secrets for ordinary pull requests.
34+
2135
For release packaging or distribution docs, also run the relevant shell gate
2236
from `scripts/`.
2337

@@ -79,3 +93,19 @@ the channel is support-ready.
7993

8094
Deprecations must follow `docs/governance.md`: document the replacement,
8195
warning behavior when practical, release-note impact, and removal timing.
96+
97+
## Deprecating Public Surface
98+
99+
Before deprecating a public manifest field, CLI flag, plugin protocol behavior,
100+
trace/event field, run-directory artifact, provider configuration key, package
101+
metadata channel, or library API:
102+
103+
- identify whether the change is patch, minor, or major under
104+
`docs/governance.md`;
105+
- write the replacement or explain why there is no replacement;
106+
- add tests, fixtures, schemas, or docs for the old and new behavior during the
107+
deprecation window;
108+
- add release-note coverage with first deprecated release and earliest removal
109+
timing;
110+
- keep warnings or diagnostics actionable and avoid breaking automation unless
111+
the old behavior is unsafe.

‎Cargo.lock‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ resolver = "2"
99
edition = "2021"
1010
license = "MIT"
1111
repository = "https://github.com/syndicalt/llmff"
12-
version = "0.1.6"
12+
version = "0.8.0"
1313

1414
[workspace.dependencies]
1515
anyhow = "1"

‎README.md‎

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@
77
## Start Here
88

99
- New users: follow [`docs/quickstart.md`](docs/quickstart.md).
10+
- Deciding fit: read [`docs/when-to-use-llmff.md`](docs/when-to-use-llmff.md).
1011
- Example catalog: see [`examples/README.md`](examples/README.md).
12+
- Pattern cookbook: see [`docs/cookbook.md`](docs/cookbook.md).
1113
- Agent integrations: see [`docs/agent-workflows.md`](docs/agent-workflows.md).
14+
- Pre-1.0 migration checklist: see
15+
[`docs/migration/pre-1.0-to-1.0.md`](docs/migration/pre-1.0-to-1.0.md).
1216
- Platform packages and installer assumptions: see
1317
[`docs/platform-support.md`](docs/platform-support.md).
1418

@@ -20,10 +24,11 @@ Install from GitHub:
2024
cargo install --git https://github.com/syndicalt/llmff llmff
2125
```
2226

23-
Install a tagged release:
27+
After the `v0.8.0` release-candidate tag is published, install that tagged
28+
release with:
2429

2530
```bash
26-
cargo install --git https://github.com/syndicalt/llmff --tag v0.1.6 llmff
31+
cargo install --git https://github.com/syndicalt/llmff --tag v0.8.0 llmff
2732
```
2833

2934
For a local checkout:
@@ -39,6 +44,17 @@ llmff --version
3944
llmff stages list
4045
```
4146

47+
Check local prerequisites without running a pipeline or calling provider
48+
endpoints:
49+
50+
```bash
51+
llmff doctor \
52+
--run-dir .llmff/run \
53+
--plugin-dir ./plugins \
54+
--backend openai=https://api.openai.com/v1 \
55+
--api-key-env openai=OPENAI_API_KEY
56+
```
57+
4258
Supported release targets and installer assumptions are documented in
4359
[`docs/platform-support.md`](docs/platform-support.md).
4460

@@ -51,32 +67,33 @@ scripts/smoke-install.sh --path .
5167
Smoke test a generated release archive without installing:
5268

5369
```bash
54-
scripts/smoke-archive.sh --archive dist/llmff-0.1.6-x86_64-unknown-linux-gnu.tar.gz
70+
scripts/smoke-archive.sh --archive dist/llmff-0.8.0-x86_64-unknown-linux-gnu.tar.gz
5571
```
5672

5773
Run the release metadata preflight before creating or pushing a release tag:
5874

5975
```bash
60-
scripts/release-preflight.sh v0.1.6
76+
scripts/release-preflight.sh v0.8.0
6177
```
6278

63-
Verify a published release's assets, checksums, and host-compatible packages:
79+
After release-tag CI completes, verify a published release's assets, checksums,
80+
and host-compatible packages:
6481

6582
```bash
66-
scripts/check-release-assets.sh v0.1.6
83+
scripts/check-release-assets.sh v0.8.0
6784
```
6885

6986
Generate and validate Windows MSI packaging metadata:
7087

7188
```bash
72-
scripts/package-windows-msi.sh --binary target/release/llmff.exe --version 0.1.6 --target x86_64-pc-windows-msvc --out-dir dist --emit-wxs-only
89+
scripts/package-windows-msi.sh --binary target/release/llmff.exe --version 0.8.0 --target x86_64-pc-windows-msvc --out-dir dist --emit-wxs-only
7390
```
7491

7592
Build a Windows MSI on a Windows host:
7693

7794
```bash
7895
dotnet tool restore
79-
scripts/package-windows-msi.sh --binary target/release/llmff.exe --version 0.1.6 --target x86_64-pc-windows-msvc --out-dir dist
96+
scripts/package-windows-msi.sh --binary target/release/llmff.exe --version 0.8.0 --target x86_64-pc-windows-msvc --out-dir dist
8097
```
8198

8299
Smoke test a staged Windows MSI payload without installing:
@@ -88,19 +105,19 @@ scripts/smoke-windows-msi.sh --payload-root dist/windows-msi-smoke-root
88105
Generate and validate macOS installer payload metadata:
89106

90107
```bash
91-
scripts/package-macos-pkg.sh --binary target/release/llmff --version 0.1.6 --target aarch64-apple-darwin --out-dir dist --emit-payload-only
108+
scripts/package-macos-pkg.sh --binary target/release/llmff --version 0.8.0 --target aarch64-apple-darwin --out-dir dist --emit-payload-only
92109
```
93110

94111
Smoke test a generated macOS installer payload without installing:
95112

96113
```bash
97-
scripts/smoke-macos-pkg.sh --payload-root dist/llmff-0.1.6-aarch64-apple-darwin.pkgroot
114+
scripts/smoke-macos-pkg.sh --payload-root dist/llmff-0.8.0-aarch64-apple-darwin.pkgroot
98115
```
99116

100117
Smoke test a generated Debian package without root:
101118

102119
```bash
103-
scripts/smoke-deb.sh --deb dist/llmff_0.1.6_amd64.deb
120+
scripts/smoke-deb.sh --deb dist/llmff_0.8.0_amd64.deb
104121
```
105122

106123
Release tags build compressed binary archives, Ubuntu/Debian `.deb` packages, Arch `PKGBUILD` metadata, unsigned Windows MSI packages, and unsigned macOS `.pkg` packages in CI. Trusted Windows Authenticode signing and Apple Developer ID signing/notarization are deferred until paid credentials are available. See [`docs/platform-support.md`](docs/platform-support.md) for the current target matrix.
@@ -118,6 +135,7 @@ Tagged release builds publish archives, checksums, `.deb` packages, Arch metadat
118135
- `llmff models list --format json` prints runtime model metadata for built-in mock models, CLI-registered OpenAI-compatible or Ollama aliases, and plugin command backends.
119136
- `llmff plugins list --plugin-dir <path>` discovers `llmff-plugin.yaml` manifests and prints plugin capability metadata.
120137
- `llmff run --plugin-dir <path>` can execute plugin-provided stages, backends, and tool transports declared in those manifests.
138+
- `llmff doctor` checks local prerequisites such as binary version, run-dir writability, plugin manifest validity, API-key environment wiring, and optional release trust manifest presence without making network calls.
121139
- The core crate owns execution semantics; the CLI is a thin adapter.
122140
- Mock backends are available for deterministic local runs and tests.
123141
- An OpenAI-compatible backend exists in the core crate for `/v1/chat/completions` servers.

‎SPEC.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ This is the canonical product boundary and roadmap document for `llmff`.
66
pipelines. It executes declared manifests and graphs; it does not plan work,
77
own memory, coordinate agents, or act as an agent framework.
88

9+
First-reader decision guidance lives in
10+
[`docs/when-to-use-llmff.md`](docs/when-to-use-llmff.md). Workflow recipes live
11+
in [`docs/cookbook.md`](docs/cookbook.md), and the pre-1.0 compatibility
12+
checklist lives in
13+
[`docs/migration/pre-1.0-to-1.0.md`](docs/migration/pre-1.0-to-1.0.md).
14+
915
## Current Implementation
1016

1117
`llmff` is currently a command-line and library runner for typed LLM inference

0 commit comments

Comments
 (0)