con un clic
changelog
// Changelog style guide for writing RELEASE.md files. Use when creating or reviewing RELEASE.md, writing changelog entries, or preparing a PR that needs release notes.
// Changelog style guide for writing RELEASE.md files. Use when creating or reviewing RELEASE.md, writing changelog entries, or preparing a PR that needs release notes.
How to approach code coverage in this project. Use when coverage CI fails, when writing tests for new code, or when you need to make untestable code testable. Also use proactively when writing new code to ensure it will be coverable.
Review your own changes before creating a pull request. Use this before running create-pr, or whenever you want to check that your changes are clean, correct, and well-tested. Trigger when: about to create a PR, finished a chunk of work, or asked to review changes.
| name | changelog |
| description | Changelog style guide for writing RELEASE.md files. Use when creating or reviewing RELEASE.md, writing changelog entries, or preparing a PR that needs release notes. |
This guide describes the style for writing RELEASE.md files for hegel-rust. The style is modeled on the Hypothesis changelog.
RELEASE_TYPEhegel-rust is currently zerover (0.x.y), so the usual semver mapping does not apply. While we are pre-1.0:
patch — Bug fixes, internal changes, and new features / non-breaking API additions. The default choice.minor — Breaking changes only. Any change that requires users to update their code (renamed/removed APIs, changed signatures, behavior changes that could break downstream tests) is a minor bump.major — Not used while we are zerover. Reserve for the eventual 1.0 and beyond.If you find yourself reaching for minor because the change feels "big," check whether it actually breaks any caller. A large new feature that adds API surface without removing or changing existing behavior is still a patch.
Every entry should open with a sentence that signals the scope and nature of the change:
"This patch ...""This release ..." and explain migration"Internal refactoring." or "Clean up some internal code."The opening verb should tell the reader what kind of change this is:
| Change type | RELEASE_TYPE | Opening pattern |
|---|---|---|
| Bug fix | patch | "This patch fixes ..." or "Fix ..." |
| New feature | patch | "This patch adds ..." |
| Improvement | patch | "This patch improves ..." |
| Performance | patch | "This patch improves the performance of ..." or "Optimize ..." |
| Deprecation | minor | "This release deprecates ..." |
| Breaking change | minor | "This release changes ..." (then explain migration) |
| Internal-only | patch | "Internal refactoring." / "Refactor some internals." / "Clean up some internal code." |
Bad: "Refactored the socket handling code to use a shared connection pool."
Good: "This patch changes the way the client manages the server to run a single persistent process for the whole test run. This should improve the performance of running many hegel tests."
For bug fixes, describe the bug (what went wrong from the user's perspective), not just "fixed a bug":
Bad: "Fix bug in server crash detection."
Good: "Fix server crash detection. The client now properly detects when the hegel server process exits unexpectedly, instead of hanging indefinitely."
"Refactor some internals.")Don't pad entries. If a change can be described in one sentence, use one sentence.
Include fenced code blocks for:
Don't include code blocks for bug fixes or internal changes.
([#24](https://github.com/hegeldev/hegel-ocaml/issues/24))"This should improve performance", "We expect this to...", "In some cases this may...""various improvements" — be specific about what changedGood patch (bug fix):
RELEASE_TYPE: patch
This patch fixes flaky generation failures not being displayed.
Good patch (internal):
RELEASE_TYPE: patch
Internal refactoring of the protocol handling code.
Good patch (new feature):
RELEASE_TYPE: patch
Add support for building and running on the OxCaml compiler (ocaml-variants.5.2.0+ox).
The ppx_hegel_generator PPX deriver now works on both standard OCaml and OxCaml by
abstracting over ppxlib AST differences (labeled tuples, constructor modalities)
via a platform-selected compatibility module.
Good minor (breaking change):
RELEASE_TYPE: minor
This release changes the public API for running Hegel tests to a new `let%hegel_test` PPX extension.
\```ocaml
# before
let my_invariant = Hegel.run_hegel_test (fun tc -> ...)
# after
let%hegel_test my_invariant tc = ...
\```
This will require updating your test declarations, but will enable integration with
Antithesis and `dune runtest` and automatically register tests with the new test runner.