DEVX-3: feat: pluggable change classification framework

This commit is contained in:
2026-06-22 17:31:30 +00:00
parent 89a165be46
commit 87d730d8be
4 changed files with 815 additions and 248 deletions
+51
View File
@@ -83,3 +83,54 @@ indent-style = "space"
include = ["src"]
pythonVersion = "3.12"
strict = ["src/devx/config.py", "src/devx/exceptions.py", "src/devx/i18n.py", "src/devx/api_clients.py", "src/devx/gitea_cli.py"]
# ---------------------------------------------------------------------------
# Change classification — determines which changes trigger a release
# ---------------------------------------------------------------------------
# Safe-by-default: any file NOT listed here defaults to user-facing
# (requiring a release). This prevents new file types from silently
# skipping releases.
#
# Rule priority (first match wins):
# 1. user_facing_overrides (safety — highest priority)
# 2. infrastructure_overrides (explicit per-file)
# 3. infrastructure (glob patterns)
# 4. Default: user-facing (safe)
[tool.devx.classify]
# Infrastructure paths — changes here don't trigger a release
infrastructure = [
".gitea/**",
"tests/**",
"docs/**",
"hooks/**",
"Makefile",
"cliff.toml",
".pre-commit-config.yaml",
".env.example",
".gitignore",
".ruff.toml",
"AGENTS.md",
"README.md",
"CHANGELOG.md",
"TROUBLESHOOTING.md",
".ansible-lint",
".github/**",
]
# Infrastructure overrides — files that would default to user-facing
# but are actually infrastructure:
# - __init__.py: only contains __version__ (release artifact, not code)
# - api_clients.py: used only by CI/CD scripts, not by the CLI
infrastructure_overrides = [
"src/devx/__init__.py",
"src/devx/api_clients.py",
]
# User-facing overrides — safety override for broad infrastructure patterns
# (empty — add when an infrastructure pattern is too broad)
user_facing_overrides = []
# Tag patterns — additional categories for CI conditional execution
# Orthogonal to release impact (user-facing vs infrastructure)
[tool.devx.classify.tags]
ansible = ["ansible/**", ".ansible-lint"]