reasoninglayer 0.2.1

Rust client SDK for the Reasoning Layer API
Documentation
# Configuration for cargo-release: https://github.com/crate-ci/cargo-release
#
# Quick start:
#
#   cargo install cargo-release            # one-time
#   cargo release patch                    # dry-run: show what would happen
#   cargo release patch --execute          # actually do it
#   cargo release 0.2.0 --execute          # explicit version
#
# What `cargo release patch --execute` does:
#
#   1. Verifies the working tree is clean and the current branch is `main`.
#   2. Bumps the package version in Cargo.toml (patch / minor / major / explicit).
#   3. Refreshes Cargo.lock.
#   4. Rewrites CHANGELOG.md — moves the contents of `## [Unreleased]` under a
#      new `## [X.Y.Z] — YYYY-MM-DD` heading and re-inserts a fresh empty
#      `## [Unreleased]` above it.
#   5. Runs `cargo test --all-features` (pre-release-hook) and
#      `cargo publish --dry-run --all-features` (verify).
#   6. Commits Cargo.toml + Cargo.lock + CHANGELOG.md with the message
#      `chore(release): X.Y.Z`.
#   7. Tags `vX.Y.Z` (matches the `^v\d+\.\d+\.\d+$` rule in `.gitlab-ci.yml`).
#   8. Pushes commit and tag to `origin`.
#
# What it does NOT do:
#
#   - It does not run `cargo publish`. GitLab CI runs the publish step on tag
#     push, using the masked `CARGO_REGISTRY_TOKEN` CI/CD variable. This keeps
#     the publish credential off developer laptops.

# Don't publish from local — CI does it on tag push.
publish = false

# Push the release commit and tag to origin once everything passes.
push = true
push-remote = "origin"

# Releases must originate from the main branch.
allow-branch = ["main"]

# We don't currently sign release artefacts. Flip these on if/when the team
# adopts signed commits + GPG-signed tags.
sign-commit = false
sign-tag = false

# Run the test suite as a pre-release sanity check. CI re-runs everything on
# push, but failing locally before we tag is faster than failing in CI after.
pre-release-hook = ["cargo", "test", "--all-features"]

# Run `cargo publish --dry-run` before tagging — same check the CI performs.
verify = true

# Rewrite CHANGELOG.md: rename `## [Unreleased]` to `## [Unreleased]\n\n## [X.Y.Z] — YYYY-MM-DD`,
# so whatever was under [Unreleased] becomes the release notes for this version
# and a fresh empty [Unreleased] section is left for the next iteration.
# `min = 1` makes this fail loudly if the [Unreleased] header is missing.
pre-release-replacements = [
    { file = "CHANGELOG.md", search = "## \\[Unreleased\\]", replace = "## [Unreleased]\n\n## [{{version}}] — {{date}}", min = 1 },
]

# Tag name must match the GitLab CI publish trigger:
# `rules: - if: $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/`
tag-prefix = ""
tag-name = "v{{version}}"

# Commit and tag messages.
pre-release-commit-message = "chore(release): {{version}}"
tag-message = "Release v{{version}}"