error-forge 1.0.0

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.
Documentation
version: 2

updates:
  # Cargo dependency updates.
  - package-ecosystem: "cargo"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
    open-pull-requests-limit: 5
    # Group minor + patch updates so the per-cycle PR count stays
    # manageable. Major bumps still get their own PR per crate so
    # breaking changes aren't hidden inside a group.
    groups:
      cargo-minor-and-patch:
        applies-to: "version-updates"
        update-types:
          - "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.
    ignore:
      # `rand 0.10` renamed `thread_rng()` to `rng()` and shifted
      # `Rng::gen_range` signature. Migration is intentional — see
      # ROADMAP §1.x backlog.
      - dependency-name: "rand"
        update-types: ["version-update:semver-major"]
      # `thiserror 2.0` is a major bump scheduled for a future
      # minor release after audit.
      - dependency-name: "thiserror"
        update-types: ["version-update:semver-major"]
      # `syn 2.0` requires reworking the derive crate's `Meta`
      # parsing. Scheduled for a future minor release.
      - dependency-name: "syn"
        update-types: ["version-update:semver-major"]

  # GitHub Actions ecosystem updates. Same grouping discipline.
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
    open-pull-requests-limit: 5
    groups:
      actions-official-minor-and-patch:
        applies-to: "version-updates"
        patterns:
          - "actions/*"
        update-types:
          - "minor"
          - "patch"
      actions-third-party-minor-and-patch:
        applies-to: "version-updates"
        exclude-patterns:
          - "actions/*"
        update-types:
          - "minor"
          - "patch"
    ignore:
      # `dtolnay/rust-toolchain` uses Rust version numbers as tags
      # (e.g. `@1.81.0` in the MSRV job). Dependabot mistakes them
      # for action versions and proposes bumps to non-existent
      # toolchains. The MSRV pin must track `Cargo.toml`'s
      # `rust-version` field manually.
      - dependency-name: "dtolnay/rust-toolchain"