Skip to content

Commit 049bafc

Browse files
author
James Gober
committed
Milestone Release v1.0.0
1 parent 3aff79a commit 049bafc

9 files changed

Lines changed: 717 additions & 60 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,4 @@ jobs:
8989
- name: Install cargo-semver-checks
9090
run: cargo install cargo-semver-checks --locked
9191
- name: Check public API against last published release
92-
run: cargo semver-checks check-release --baseline-rev origin/main || true
93-
# `|| true` keeps this advisory until the first 1.0.0 baseline
94-
# exists on crates.io. After 1.0.0 lands, drop the suffix to
95-
# make breaking-change detection block the build.
92+
run: cargo semver-checks check-release

CHANGELOG.md

Lines changed: 84 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,88 @@ the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html
66

77
## [Unreleased]
88

9+
## [1.0.0] - 2026-05-19
10+
11+
**Stable API.** The public surface is frozen. Backwards-
12+
incompatible changes after `1.0.0` require a major version bump
13+
per Semantic Versioning. See [`REPS.md`](REPS.md) section 8 for
14+
the binding policy and [`docs/API.md`](docs/API.md) for the
15+
complete public-symbol reference.
16+
17+
No source-level changes from `v0.9.0`. `1.0.0` is a freeze, a
18+
documentation polish, and the CI gate that protects the
19+
guarantee going forward.
20+
21+
Behind the line: the journey from `v0.1.0` (scaffold) to `v1.0.0`
22+
landed the full `REPS.md` section 4 surface - `Source`, `Stage`,
23+
`Sink`, `Emit`, the typed builder with closure adapters, count /
24+
byte / age batching, tumbling / sliding / session windowing
25+
behind a pluggable `Clock`, the `FailFast` / `Continue` /
26+
`DeadLetter` error policies with shared-handle dead-letter
27+
routing, both `SyncDriver` and `ThreadedDriver`, the open
28+
`Driver` trait for custom executors, an 84-test suite covering
29+
unit, integration, property, and doctest paths, and four
30+
`cargo-fuzz` harnesses.
31+
32+
### Changed - `cargo-semver-checks` CI is now a hard gate
33+
34+
The CI `semver-checks` job no longer runs with `|| true`.
35+
Backwards-incompatible additions to the public surface fail CI
36+
before they can ship.
37+
38+
### Changed - `REPS.md` section 8 declares stability
39+
40+
The section was previously "Stability begins at `1.0.0`,
41+
governed by [...]". It now declares the public API frozen and
42+
enumerates the patch / minor / major rules in full, plus the
43+
`#[non_exhaustive]` reminder for `Error` and `StageFailure`.
44+
45+
### Changed - `REPS.md` section 7 records the measured perf contract
46+
47+
The 7 placeholder ("To be specified at `0.4.0`") is replaced
48+
with the headline numbers from `docs/BENCH.md` plus a note that
49+
they are indicative, not contractual.
50+
51+
### Changed - `REPS.md` section 4.9 drops the unimplemented `.buffer(...)`
52+
53+
The `.buffer(capacity)` builder method was listed in the locked
54+
surface but never implemented. Section 4.9 records it as
55+
post-1.0 minor-release roadmap material; section 4.10 keeps the
56+
feature-flag table accurate.
57+
58+
### Changed - `ROADMAP.md` re-anchored
59+
60+
All `0.x` releases listed as shipped. Forward-looking work
61+
(`.buffer`, per-stage threading, `pipe-io-tokio`,
62+
`StageFailure::input`) explicitly marked as post-1.0 minor
63+
releases.
64+
65+
### Changed - `README.md` rewritten for production
66+
67+
Hero block, feature highlights grouped by concern (pipeline
68+
composition / backpressure-batching-windowing / error
69+
isolation / runtime / reliability), installation block with
70+
feature-flag table, quick-start snippets per surface
71+
(basic / batching / windowing / dead-letter / threaded /
72+
custom driver), examples table, status section declaring
73+
1.0.0 stable, documentation links, version compatibility,
74+
contributing notes, license.
75+
76+
### Changed - `docs/API.md` declared frozen
77+
78+
The intro now points at the `1.0.0` freeze and the
79+
[Stability](docs/API.md#stability) section spells out the SemVer
80+
rules and the `#[non_exhaustive]` reminder. The duplicated
81+
feature-flag tables are harmonized.
82+
83+
### Changed - `docs/MIGRATION.md` records the `v0.9.0 -> v1.0.0` upgrade
84+
85+
Pure version marker; no source changes required.
86+
87+
There are no source-level changes to the crate code between
88+
`v0.9.0` and `v1.0.0`. The package contents on crates.io are
89+
functionally identical; the version bump signals API stability.
90+
991
## [0.9.0] - 2026-05-19
1092

1193
Pre-1.0 stabilization release. No public API changes. Adds the
@@ -352,7 +434,8 @@ public surface.
352434
`.dev/` planning structure (DIRECTIVES, ROADMAP, PROMPTS).
353435
- Crate name reserved on crates.io.
354436

355-
[Unreleased]: https://github.com/jamesgober/pipe-io/compare/v0.9.0...HEAD
437+
[Unreleased]: https://github.com/jamesgober/pipe-io/compare/v1.0.0...HEAD
438+
[1.0.0]: https://github.com/jamesgober/pipe-io/compare/v0.9.0...v1.0.0
356439
[0.9.0]: https://github.com/jamesgober/pipe-io/compare/v0.8.0...v0.9.0
357440
[0.8.0]: https://github.com/jamesgober/pipe-io/compare/v0.7.0...v0.8.0
358441
[0.7.0]: https://github.com/jamesgober/pipe-io/compare/v0.6.0...v0.7.0

Cargo.lock

Lines changed: 1 addition & 1 deletion
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
@@ -1,6 +1,6 @@
11
[package]
22
name = "pipe-io"
3-
version = "0.9.0"
3+
version = "1.0.0"
44
edition = "2021"
55
rust-version = "1.75"
66
readme = "README.md"

0 commit comments

Comments
 (0)