bms-table 0.12.1

BMS (Be-Music Source) difficulty table parser & fetcher
Documentation
[workspace]
publish = true
changelog_update = true
dependencies_update = true
git_release_enable = true
git_tag_enable = true
release_always = false
pr_branch_prefix = "release-plz-"
pr_labels = ["release"]
pr_name = "chore: release v{{ version }}"

pr_body = """
## 🤖 New Version Release

This PR was automatically generated by [release-plz](https://github.com/release-plz/release-plz).

{% for release in releases %}
### `{{ release.package }}`

- Version: {{ release.previous_version }} -> {{ release.next_version }}

{%- if release.semver_check == "incompatible" %} ⚠️ **API Breaking Changes**
{%- elif release.semver_check == "compatible" %} ✓ **API Compatible Changes**
{%- endif %}

{% if release.breaking_changes %}
**Breaking Changes:**
```
{{ release.breaking_changes }}
```
{% endif %}

{% if release.changelog %}
**Changelog:**
{{ release.changelog }}
{% endif %}
{% endfor %}

---

### Merge Instructions

1. Verify that the version number and changelog are correct
2. Merging this PR will automatically publish to crates.io, create GitHub release, and create git tags
3. Uses Trusted Publishing, no API Token required

---

This PR was generated by [release-plz](https://github.com/release-plz/release-plz).
"""

git_release_body = """
{{ changelog }}

{% if remote.contributors %}
### Contributors
{% for contributor in remote.contributors %}
* @{{ contributor.username }}
{% endfor %}
{% endif %}

---

📦 **Crates.io**: This version has been published to [crates.io](https://crates.io/crates/bms-table).
"""

[[package]]
name = "bms-table"
changelog_path = "./CHANGELOG.md"

[changelog]
protect_breaking_commits = true

header = """
# Changelog

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).

## [Unreleased]
"""

body = """
## [{{ version }}]{%- if release_link -%}({{ release_link }}){% endif %} - {{ timestamp | date(format="%Y-%m-%d") }}

{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | upper_first }}

{% for commit in commits %}
{%- if commit.scope -%}
- **({{commit.scope}})** {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message }}
{%- else -%}
- {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message }}
{%- endif %}

{%- if commit.links %} ({% for link in commit.links %}{{ link.text }}{% endfor -%}){% endif %}
{% endfor %}
{% endfor %}
"""

commit_parsers = [
  { message = "^feat", group = "Features" },
  { message = "^fix", group = "Bug Fixes" },
  { message = "^perf", group = "Performance" },
  { message = "^refactor", group = "Refactoring" },
  { message = "^docs", group = "Documentation" },
  { message = "^style", group = "Style" },
  { message = "^test", group = "Tests" },
  { message = "^chore\\(release\\)", skip = true },
  { message = "^chore", group = "Chore" },
  { message = "^.*", group = "Other" },
]

commit_preprocessors = [
  { pattern = "\\(#([0-9]+)\\)", replace = "([#${1}](https://github.com/MiyakoMeow/bms-table-rs/pull/${1}))" },
]