Skip to content
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
3 changes: 1 addition & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
## CHANGELOG

- [ ] I added an entry under `## [Unreleased]` in `CHANGELOG.md`
describing the user-visible effect of this change, per
[`.dev/DIRECTIVES.md`](../.dev/DIRECTIVES.md) §D-1.
describing the user-visible effect of this change.

## Local verification

Expand Down
4 changes: 2 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ updates:
- "minor"
- "patch"
# Ignore major bumps that require source-level migration. They
# come back as candidates for the next minor release (tracked
# in `.dev/ROADMAP.md`), not as auto-applied PRs.
# come back as candidates for the next minor release, not as
# auto-applied PRs.
ignore:
# `rand 0.10` renamed `thread_rng()` to `rng()` and shifted
# `Rng::gen_range` signature. Migration is intentional — see
Expand Down
4 changes: 1 addition & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ Patch release for `error-forge` and `error-forge-derive` (both `1.0.1`). Bug fix
- `error-forge-derive`: `#[derive(ModError)]` on a union now reports a `compile_error!` at the `union` keyword instead of panicking inside the proc macro.
- `error-forge-derive`: `#[derive(ModError)]` no longer generates code that fails to compile ("argument never used" / "named argument never used") for variants with fields that have no `#[error_display]`, or whose display string does not mention every field. Only the fields the string references are passed to `format!`. Strings that compiled before render the same output.
- `docs/API.md` examples compile and pass. The file had carried a stale second half since `0.9.7` (starting mid code block) that documented APIs which do not exist (`ErrorMetadata`, `register_url_format`, `with_success_threshold`, async `retry`), listed the removed `thread-safety` feature and `AppError::with_async_context`, and grouped `io::Error` directly. Those sections are replaced by working examples for hooks, logging, context, error codes, collection, backoff, retry, the circuit breaker, `ForgeErrorRecovery` and `AsyncForgeError`. Every `rust` block in the file now runs as a doctest under `cargo test --all-features`.
- The `[1.0.0]` CHANGELOG entry links its release notes to the v1.0.0 GitHub release. It pointed at `.dev/release/v1.0.0.md`, which is git-ignored and does not exist in the repository or the published crate.
- The `[1.0.0]` CHANGELOG entry links its release notes to the v1.0.0 GitHub release. It pointed at a file that does not exist in the repository or the published crate.

## [1.0.0] - 2026-05-18

Expand All @@ -155,7 +155,6 @@ Stable API. The public surface is locked under SemVer for the entire `1.x` line
- **`CONTRIBUTING.md`** — contributor workflow, CI gates, code style, banned terms.
- **`RELEASING.md`** — codified release procedure with the derive-first publish order documented.
- **`CODEOWNERS`** — single-maintainer default.
- **`.dev/DIRECTIVES.md`** and **`.dev/ROADMAP.md`** — internal workflow rules and outstanding-work tracker (git-ignored).
- **`.github/dependabot.yml`** — weekly grouped updates for `cargo` and `github-actions` ecosystems with the `dtolnay/rust-toolchain` tag-format workaround.
- **`.github/PULL_REQUEST_TEMPLATE.md`** + `.github/ISSUE_TEMPLATE/{bug_report,feature_request}.md`.
- **`deny.toml`** — license allow-list, wildcard ban, `crates.io`-only sources.
Expand Down Expand Up @@ -204,7 +203,6 @@ Cleanup release. Drops the deprecated `atty` dependency, prunes a dead feature f
- `MSRV` badge in `README.md`.
- `cargo audit` CI job that runs the RustSec advisory database against every push. The job declares `permissions: { contents: read, checks: write }` so the `rustsec/audit-check` action can post findings as GitHub Check Runs without hitting `Resource not accessible by integration`.
- `#[doc(hidden)] pub mod __private` in `lib.rs` re-exporting `pastey` so that `define_errors!` expansions in downstream crates do not require the user to add the dep manually.
- `.dev/release/v0.9.8.md` release note describing the full cleanup scope.

### Changed
- **`Cargo.toml` description rewritten without banned terms** (`comprehensive`, `robust`). The new text reads: "Pragmatic Rust error-handling framework with stable error metadata, contextual diagnostics, optional async support, and synchronous recovery primitives (retry, circuit-breaker, backoff). Optional `#[derive(ModError)]`, declarative `define_errors!`, and feature-gated logging / tracing / serde adapters."
Expand Down
8 changes: 3 additions & 5 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Before tagging:
- [ ] The main crate's `[dependencies]` entry for
`error-forge-derive` matches the new version exactly.
- [ ] `README.md` install snippet shows the new version.
- [ ] `.dev/release/vX.Y.Z.md` exists and describes the release.
- [ ] Release notes for the new version are written.

## Local verification gate

Expand Down Expand Up @@ -69,8 +69,7 @@ actually published. That's expected — dry-run the main crate

```bash
git add Cargo.toml error-forge-derive/Cargo.toml \
README.md CHANGELOG.md src/ docs/ benches/ examples/ \
.dev/release/vX.Y.Z.md
README.md CHANGELOG.md src/ docs/ benches/ examples/
git commit -m "Release vX.Y.Z"

git tag -a vX.Y.Z -m "Release vX.Y.Z"
Expand Down Expand Up @@ -108,7 +107,7 @@ retry.
## Post-release

- [ ] GitHub release created with body lifted from
`.dev/release/vX.Y.Z.md`. Title: `vX.Y.Z — <summary>`.
the release notes. Title: `vX.Y.Z — <summary>`.
- [ ] crates.io page renders (`https://crates.io/crates/error-forge`).
- [ ] docs.rs build succeeds
(`https://docs.rs/error-forge/X.Y.Z`).
Expand Down Expand Up @@ -156,6 +155,5 @@ new tag has not yet been pushed).

## Pre-1.0 history

Pre-1.0 release notes live in `.dev/release/v0.x.y.md`.
Pre-1.0 releases occasionally skipped this ceremony; `1.0.0`
formalises it.
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,5 +82,5 @@ dep cannot be removed or worked around.
## Acknowledgements

Reporters who help us fix issues responsibly are credited in
the release-notes file (`.dev/release/vX.Y.Z.md`) and in the
the release notes and in the
GitHub release announcement, unless they request anonymity.
Loading