From 3aaaa2541d075f356b82e22d02b17b1f4e22de6d Mon Sep 17 00:00:00 2001 From: JasterV <49537445+JasterV@users.noreply.github.com> Date: Wed, 29 Oct 2025 11:07:19 +0100 Subject: [PATCH] Update release-plz config & CHANGELOG --- CHANGELOG.md | 184 ++++++++++++++++++++++++++++++++++++----------- cliff.toml | 131 ++++++++++++++++++--------------- release-plz.toml | 6 ++ 3 files changed, 220 insertions(+), 101 deletions(-) create mode 100644 release-plz.toml diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b69bbd..c230eac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,72 +1,170 @@ -## [unreleased] +# Changelog -### โš™๏ธ Miscellaneous Tasks +All notable changes to this project will be documented in this file. -- Add a rust-toolchain.toml -## [test-context-v0.5.0] - 2025-10-29 +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -### โš™๏ธ Miscellaneous Tasks +## [Unreleased] + +### Added +- Add a CHANGELOG by @JasterV +- Add a rust-toolchain.toml by @JasterV -- Update dependabot & add release-plz workflow ## [0.5.0] - 2025-10-29 -### ๐Ÿ› Bug Fixes +### Added +- Added the ability to work with rstest by @killpop3770 in [#51](https://github.com/JasterV/test-context/pull/51) -- Manual drop on tests +### Changed +- Explain why #[test_context] must come before #[tokio::test]; clarify attribute expansion order by @vilinski in [#49](https://github.com/JasterV/test-context/pull/49) +- Update README.md by @JasterV in [#47](https://github.com/JasterV/test-context/pull/47) +- Update dependabot & add release-plz workflow by @JasterV -### ๐Ÿ“š Documentation +### Fixed +- Manual drop on tests by @JasterV + +### New Contributors +* @killpop3770 made their first contribution in [#51](https://github.com/JasterV/test-context/pull/51) +* @vilinski made their first contribution in [#49](https://github.com/JasterV/test-context/pull/49) -- Explain why #[test_context] must come before #[tokio::test]; clarify attribute expansion order (#49) ## [0.4.0] - 2025-01-27 -### ๐Ÿš€ Features +### Changed +- Upgrade to 0.4.0 by @JasterV in [#46](https://github.com/JasterV/test-context/pull/46) +- Support generic types in test_context macro by @JasterV in [#45](https://github.com/JasterV/test-context/pull/45) +- Support generic types in test_context macro by @rookiecj in [#44](https://github.com/JasterV/test-context/pull/44) -- Support generic types in test_context macro (#44) +### New Contributors +* @rookiecj made their first contribution in [#44](https://github.com/JasterV/test-context/pull/44) -### ๐Ÿšœ Refactor - -- Support generic types in test_context macro (#45) - -### โš™๏ธ Miscellaneous Tasks - -- Upgrade to 0.4.0 (#46) ## [0.3.0] - 2024-02-27 -### ๐Ÿš€ Features +### Added +- Add support for the skip_teardown keyword by @JasterV in [#40](https://github.com/JasterV/test-context/pull/40) -- Add support for the skip_teardown keyword (#40) +### Changed +- Upgrade to 0.3.0 by @JasterV in [#41](https://github.com/JasterV/test-context/pull/41) +- Merge pull request #39 from JasterV/refactor/test-context-macro by @JasterV in [#39](https://github.com/JasterV/test-context/pull/39) +- Clean up the macro implementation by @JasterV -### ๐Ÿšœ Refactor - -- Clean up the macro implementation - -### โš™๏ธ Miscellaneous Tasks - -- Upgrade to 0.3.0 (#41) ## [0.2.0] - 2024-02-26 -### ๐Ÿšœ Refactor +### Changed +- Merge pull request #38 from JasterV/chore/upgrade-to-0.2.0-version by @JasterV in [#38](https://github.com/JasterV/test-context/pull/38) +- Upgrade to 0.2.0 version by @JasterV +- Merge pull request #37 from JasterV/refactor/remove-async-trait-support by @JasterV in [#37](https://github.com/JasterV/test-context/pull/37) -- Remove support for async-trait crate +### Removed +- Remove support for async-trait crate by @JasterV -### โš™๏ธ Miscellaneous Tasks - -- Upgrade to 0.2.0 version ## [0.1.6] - 2024-02-26 -### ๐Ÿ› Bug Fixes +### Changed +- Merge pull request #36 from JasterV/chore/update-to-0-1-6 by @JasterV in [#36](https://github.com/JasterV/test-context/pull/36) +- Update to 0.1.6 by @JasterV +- Merge pull request #35 from JasterV/chore/update-patch-version by @JasterV in [#35](https://github.com/JasterV/test-context/pull/35) +- Update patch version by @JasterV +- Merge pull request #34 from JasterV/refactor/cargo-workspace by @JasterV in [#34](https://github.com/JasterV/test-context/pull/34) +- Update workspace properties by @JasterV +- Restructure the workspace members organization by @JasterV +- Merge pull request #33 from JasterV/chore/update-package-information by @JasterV in [#33](https://github.com/JasterV/test-context/pull/33) +- Update crate information by @JasterV +- Merge pull request #31 from JasterV/fix/doc-tests-clippy-error by @JasterV in [#31](https://github.com/JasterV/test-context/pull/31) +- Merge pull request #29 from JasterV/dependabot/cargo/syn-tw-2 by @JasterV in [#29](https://github.com/JasterV/test-context/pull/29) +- Merge branch 'main' into dependabot/cargo/syn-tw-2 by @JasterV +- Merge pull request #23 from yotamofek/syn2 by @JasterV in [#23](https://github.com/JasterV/test-context/pull/23) +- Merge branch 'main' into syn2 by @JasterV +- Merge branch 'main' into syn2 by @JasterV +- Update syn by @yotamofek +- Update syn requirement from ^1 to ^2 by @dependabot[bot] +- Merge pull request #30 from JasterV/chore/update-to-2021-edition by @JasterV in [#30](https://github.com/JasterV/test-context/pull/30) +- Update to 2021 rust edition by @JasterV +- Merge pull request #28 from JasterV/JasterV-patch-1 by @JasterV in [#28](https://github.com/JasterV/test-context/pull/28) +- Create dependabot.yml by @JasterV +- Merge pull request #27 from JasterV/JasterV-patch-1 by @JasterV in [#27](https://github.com/JasterV/test-context/pull/27) +- Update README.md by @JasterV +- Update README.md by @markhildreth +- Merge pull request #19 from SomeoneToIgnore/patch-1 by @markhildreth in [#19](https://github.com/JasterV/test-context/pull/19) +- Use proper World capitalization in the main example by @SomeoneToIgnore -- Clippy unit test on doctests warnings +### Fixed +- Clippy unit test on doctests warnings by @JasterV -### ๐Ÿšœ Refactor +### New Contributors +* @JasterV made their first contribution in [#36](https://github.com/JasterV/test-context/pull/36) +* @dependabot[bot] made their first contribution +* @yotamofek made their first contribution +* @SomeoneToIgnore made their first contribution -- Restructure the workspace members organization +## [0.1.4] - 2022-07-19 -### โš™๏ธ Miscellaneous Tasks +### Changed +- Merge pull request #17 from markhildreth/bump-to-0.1.4 by @markhildreth in [#17](https://github.com/JasterV/test-context/pull/17) +- Bumped to 0.1.4 by @markhildreth +- Merge pull request #16 from markhildreth/use-original-argument-list by @markhildreth in [#16](https://github.com/JasterV/test-context/pull/16) +- Copy original argument list directly from input token stream. by @markhildreth + +## [0.1.3] - 2021-02-27 + +### Added +- Add basic impl TestContext for AsyncTestContext by @Shadow53 + +### Changed +- Merge pull request #11 from markhildreth/bump-to-0.1.3 by @markhildreth in [#11](https://github.com/JasterV/test-context/pull/11) +- Bumped to v0.1.3 by @markhildreth +- Merge pull request #10 from markhildreth/add-sync-async-impl-docs by @markhildreth in [#10](https://github.com/JasterV/test-context/pull/10) +- Documented behavior of AsyncContext with normal function. by @markhildreth +- Merge pull request #9 from Shadow53/impl-sync-for-async by @markhildreth in [#9](https://github.com/JasterV/test-context/pull/9) +- Run cargo fmt by @Shadow53 + +### New Contributors +* @Shadow53 made their first contribution + +## [0.1.2] - 2021-02-07 + +### Added +- Added badges by @markhildreth + +### Changed +- Merge pull request #7 from markhildreth/bump-to-0.1.2 by @markhildreth in [#7](https://github.com/JasterV/test-context/pull/7) +- Bumped to version v0.1.2 by @markhildreth +- Merge pull request #6 from markhildreth/badges by @markhildreth in [#6](https://github.com/JasterV/test-context/pull/6) +- Merge pull request #5 from markhildreth/fixed-typo by @markhildreth in [#5](https://github.com/JasterV/test-context/pull/5) +- Merge branch 'main' into fixed-typo by @markhildreth +- Merge pull request #4 from markhildreth/future-dependency by @markhildreth in [#4](https://github.com/JasterV/test-context/pull/4) +- Forced futures to be imported through test_context crate. by @markhildreth +- Fixed typo in documentation by @markhildreth + +## [0.1.1] - 2021-01-18 + +### Changed +- Merge pull request #3 from markhildreth/v0.1.1 by @markhildreth in [#3](https://github.com/JasterV/test-context/pull/3) +- Bumped to version v0.1.1 by @markhildreth +- Merge pull request #2 from markhildreth/github-workflows by @markhildreth in [#2](https://github.com/JasterV/test-context/pull/2) +- Updated github ci.yml by @markhildreth +- Merge pull request #1 from markhildreth/allow-returns by @markhildreth in [#1](https://github.com/JasterV/test-context/pull/1) +- Allow return of wrapped functions value. by @markhildreth -- Update to 2021 rust edition -- Update crate information -- Update workspace properties -- Update patch version -- Update to 0.1.6 ## [0.1] - 2021-01-18 + +### Changed +- Initial version by @markhildreth +- Initial commit by @markhildreth + +### New Contributors +* @markhildreth made their first contribution + +[unreleased]: https://github.com/JasterV/test-context/compare/test-context-v0.5.0...HEAD +[test-context-v0.5.0]: https://github.com/JasterV/test-context/compare/v0.5.0...test-context-v0.5.0 +[0.5.0]: https://github.com/JasterV/test-context/compare/v0.4.0...v0.5.0 +[0.4.0]: https://github.com/JasterV/test-context/compare/v0.3.0...v0.4.0 +[0.3.0]: https://github.com/JasterV/test-context/compare/v0.2.0...v0.3.0 +[0.2.0]: https://github.com/JasterV/test-context/compare/v0.1.6...v0.2.0 +[0.1.6]: https://github.com/JasterV/test-context/compare/v0.1.4...v0.1.6 +[0.1.4]: https://github.com/JasterV/test-context/compare/v0.1.3...v0.1.4 +[0.1.3]: https://github.com/JasterV/test-context/compare/v0.1.2...v0.1.3 +[0.1.2]: https://github.com/JasterV/test-context/compare/v0.1.1...v0.1.2 +[0.1.1]: https://github.com/JasterV/test-context/compare/v0.1...v0.1.1 + + diff --git a/cliff.toml b/cliff.toml index b278c49..da2f9a0 100644 --- a/cliff.toml +++ b/cliff.toml @@ -1,92 +1,107 @@ # git-cliff ~ configuration file # https://git-cliff.org/docs/configuration - [changelog] +# A Tera template to be rendered as the changelog's header. +# See https://keats.github.io/tera/docs/#introduction +header = """ +# Changelog\n +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n +""" # A Tera template to be rendered for each release in the changelog. # See https://keats.github.io/tera/docs/#introduction body = """ -{% if version %}\ +{%- macro remote_url() -%} + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} +{%- endmacro -%} + +{% if version -%} ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} -{% else %}\ - ## [unreleased] -{% endif %}\ +{% else -%} + ## [Unreleased] +{% endif -%} + {% for group, commits in commits | group_by(attribute="group") %} - ### {{ group | striptags | trim | upper_first }} - {% for commit in commits %} - - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ - {% if commit.breaking %}[**breaking**] {% endif %}\ - {{ commit.message | upper_first }}\ + ### {{ group | upper_first }} + {%- for commit in commits %} + - {{ commit.message | split(pat="\n") | first | upper_first | trim }}\ + {% if commit.remote.username %} by @{{ commit.remote.username }}{%- endif -%} + {% if commit.remote.pr_number %} in \ + [#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }}) \ + {%- endif -%} {% endfor %} {% endfor %} + +{%- if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %} + ### New Contributors +{%- endif -%} + +{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} + * @{{ contributor.username }} made their first contribution + {%- if contributor.pr_number %} in \ + [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \ + {%- endif %} +{%- endfor %}\n + +{%- if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}{% raw %}\n{% endraw -%}{% endif %} + +""" +# A Tera template to be rendered as the changelog's footer. +# See https://keats.github.io/tera/docs/#introduction +footer = """ +{%- macro remote_url() -%} + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} +{%- endmacro -%} + +{% for release in releases -%} + {% if release.version -%} + {% if release.previous.version -%} + [{{ release.version | trim_start_matches(pat="v") }}]: \ + {{ self::remote_url() }}/compare/{{ release.previous.version }}...{{ release.version }} + {% endif -%} + {% else -%} + [unreleased]: {{ self::remote_url() }}/compare/{{ release.previous.version }}...HEAD + {% endif -%} +{% endfor %} + """ # Remove leading and trailing whitespaces from the changelog's body. trim = true -# Render body even when there are no releases to process. -render_always = true -# An array of regex based postprocessors to modify the changelog. -postprocessors = [ - # Replace the placeholder with a URL. - #{ pattern = '', replace = "https://github.com/orhun/git-cliff" }, -] -# render body even when there are no releases to process -# render_always = true -# output file path -# output = "test.md" [git] # Parse commits according to the conventional commits specification. # See https://www.conventionalcommits.org conventional_commits = true # Exclude commits that do not match the conventional commits specification. -filter_unconventional = true -# Require all commits to be conventional. -# Takes precedence over filter_unconventional. -require_conventional = false -# Split commits on newlines, treating each line as an individual commit. -split_commits = false +filter_unconventional = false # An array of regex based parsers to modify commit messages prior to further processing. commit_preprocessors = [ - # Replace issue numbers with link templates to be updated in `changelog.postprocessors`. - #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/issues/${2}))"}, - # Check spelling of the commit message using https://github.com/crate-ci/typos. - # If the spelling is incorrect, it will be fixed automatically. - #{ pattern = '.*', replace_command = 'typos --write-changes -' }, + # Remove issue numbers. + { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "" }, ] -# Prevent commits that are breaking from being excluded by commit parsers. -protect_breaking_commits = false # An array of regex based parsers for extracting data from the commit message. # Assigns commits to groups. # Optionally sets the commit's scope and can decide to exclude commits from further processing. commit_parsers = [ - { message = "^feat", group = "๐Ÿš€ Features" }, - { message = "^fix", group = "๐Ÿ› Bug Fixes" }, - { message = "^doc", group = "๐Ÿ“š Documentation" }, - { message = "^perf", group = "โšก Performance" }, - { message = "^refactor", group = "๐Ÿšœ Refactor" }, - { message = "^style", group = "๐ŸŽจ Styling" }, - { message = "^test", group = "๐Ÿงช Testing" }, - { message = "^chore\\(release\\): prepare for", skip = true }, - { message = "^chore\\(deps.*\\)", skip = true }, - { message = "^chore\\(pr\\)", skip = true }, - { message = "^chore\\(pull\\)", skip = true }, - { message = "^chore|^ci", group = "โš™๏ธ Miscellaneous Tasks" }, - { body = ".*security", group = "๐Ÿ›ก๏ธ Security" }, - { message = "^revert", group = "โ—€๏ธ Revert" }, - { message = ".*", group = "๐Ÿ’ผ Other" }, + { message = "^[a|A]dd", group = "Added" }, + { message = "^[s|S]upport", group = "Added" }, + { message = "^[r|R]emove", group = "Removed" }, + { message = "^.*: add", group = "Added" }, + { message = "^.*: support", group = "Added" }, + { message = "^.*: remove", group = "Removed" }, + { message = "^.*: delete", group = "Removed" }, + { message = "^test", group = "Fixed" }, + { message = "^fix", group = "Fixed" }, + { message = "^.*: fix", group = "Fixed" }, + { message = "^.*", group = "Changed" }, ] # Exclude commits that are not matched by any commit parser. filter_commits = false -# An array of link parsers for extracting external references, and turning them into URLs, using regex. -link_parsers = [] -# Include only the tags that belong to the current branch. -use_branch_tags = false # Order releases topologically instead of chronologically. topo_order = false -# Order releases topologically instead of chronologically. -topo_order_commits = true # Order of commits in each group/release within the changelog. # Allowed values: newest, oldest -sort_commits = "oldest" -# Process submodules commits -recurse_submodules = false +sort_commits = "newest" diff --git a/release-plz.toml b/release-plz.toml new file mode 100644 index 0000000..0b7b3ac --- /dev/null +++ b/release-plz.toml @@ -0,0 +1,6 @@ +[workspace] +pr_branch_prefix = "release-" +pr_labels = ["release"] +git_tag_enable = true +git_tag_name = "v{{ version }}" +pr_draft = true