From 59d976664fbb977bf9145bfa23917bbaea99b3e7 Mon Sep 17 00:00:00 2001 From: J / Jacob Babich Date: Mon, 30 Sep 2024 15:37:38 -0400 Subject: [PATCH] docs: explain the use of Conventional Commits, semantic versioning, Release-plz, and give examples of breaking changes --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index ffca137..22173b8 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,12 @@ tui-ratatui --> multibinary ## Versioning +This project aims to adhere to [semantic versioning](https://semver.org/) using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary), conducted by [Release-plz](https://release-plz.ieni.dev/). + +To be more specific about what a breaking change _could_ entail: + +- a previously successful compilation now failing +- the program (wrongly) exiting, panicking, reporting an error, etc, where it didn't previously +- changing the expected result of an existing integration test (not sure if unit tests would count) + All the crates in this project have a [minimum supported Rust version (MSRV)](https://rust-lang.github.io/rfcs/2495-min-rust-version.html) of 1.76, the release succeeding [the one that stabilized `async fn` in traits](https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html) (which the `core` crate of this project is expected to make use of). I intend to test this in CI (GitHub Actions) in the future to identify if it ever gets raised by changes but I have not set this up yet. Raising the MSRV will be considered a breaking change --- my justification is that it [seems more appropriate for an application like this](https://github.com/matklad/once_cell/issues/201#issuecomment-1257213601). This may be reconsidered if [Cargo's MSRV-aware resolver](https://rust-lang.github.io/rfcs/3537-msrv-resolver.html) is stabilized.