- ci.yml: API lint (ruff F+I) + pytest, web vue-tsc + vitest + build - mirror.yml: push to GitHub (CircuitForgeLLC) + Codeberg (CircuitForge) on main/tags - release.yml: Docker build → Forgejo registry + release via API; GHCR deferred pending BSL policy (cf-agents#3) - .cliff.toml: git-cliff changelog config for semver releases - pyproject.toml: add [dev] extras (pytest, ruff), ruff config - Fix 45 ruff violations across codebase (import sorting, unused vars, unused imports)
41 lines
1.2 KiB
TOML
41 lines
1.2 KiB
TOML
[changelog]
|
|
header = """
|
|
# Changelog\n
|
|
"""
|
|
body = """
|
|
{% if version %}\
|
|
## [{{ version | trim_start_matches(pat="v") }}] — {{ timestamp | date(format="%Y-%m-%d") }}
|
|
{% 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 %}{{ commit.message | upper_first }}\
|
|
{% endfor %}
|
|
{% endfor %}\n
|
|
"""
|
|
trim = true
|
|
footer = ""
|
|
|
|
[git]
|
|
conventional_commits = true
|
|
filter_unconventional = true
|
|
split_commits = false
|
|
commit_preprocessors = [
|
|
{ pattern = '\(#([0-9]+)\)', replace = "([#${1}](https://git.opensourcesolarpunk.com/Circuit-Forge/snipe/issues/${1}))" },
|
|
]
|
|
commit_parsers = [
|
|
{ message = "^feat", group = "Features" },
|
|
{ message = "^fix", group = "Bug Fixes" },
|
|
{ message = "^perf", group = "Performance" },
|
|
{ message = "^refactor", group = "Refactoring" },
|
|
{ message = "^docs", group = "Documentation" },
|
|
{ message = "^test", group = "Testing" },
|
|
{ message = "^revert", group = "Reverts" },
|
|
{ message = "^chore", skip = true },
|
|
]
|
|
filter_commits = true
|
|
tag_pattern = "v[0-9]*"
|
|
topo_order = false
|
|
sort_commits = "oldest"
|