GRM-42: fix: clean up infrastructure-only releases and fix release classification

This commit is contained in:
2026-06-21 21:46:37 +00:00
parent 2ca56ed317
commit 60c94b2b93
5 changed files with 23 additions and 73 deletions
-56
View File
@@ -2,62 +2,6 @@
All notable changes to this project will be documented in this file.
## [0.4.0] - 2026-06-21
### Features
- Smart CI and release skipping for workflow-only changes
### Bug Fixes
- Set PYTHONPATH=. for release.py to find scripts.ci module (#32)
- Use content_base64 for Gitea wiki API, add --verify flag (#33)
- Wiki links, add --strict integrity check for wiki sync (#34)
### Other
- V0.3.2
### Refactor
- Split CI scripts, fix release PYTHONPATH, dynamic runner discovery
## [0.3.2] - 2026-06-21
### Bug Fixes
- Set PYTHONPATH=. for release.py to find scripts.ci module (#32)
### Other
- Smart CI and release skipping for workflow-only changes
- Split CI scripts, fix release PYTHONPATH, dynamic runner discovery
## [0.3.1] - 2026-06-21
### Bug Fixes
- Use correct Gitea 1.26 wiki API endpoints
## [0.3.0] - 2026-06-21
### Features
- Implement documentation-as-code with wiki sync and doc-coverage
## [0.2.2] - 2026-06-21
### Bug Fixes
- Enforce tests pass before tagging a release
- Bypass commit-msg hook for release commits
## [0.2.1] - 2026-06-21
### Bug Fixes
- Strip git-cliff header from CHANGELOG.md updates
## [0.2.0] - 2026-06-21
### Features
+2 -2
View File
@@ -50,7 +50,7 @@ gitea_runner_manager = ["translations.json"]
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src", "."]
addopts = "--cov=src/gitea_runner_manager --cov=scripts --cov=scripts/ci --cov-report=term-missing --cov-fail-under=100"
addopts = "--cov=src/gitea_runner_manager --cov=scripts --cov-report=term-missing --cov-fail-under=100"
markers = [
"integration: marks tests as integration tests (not counted in coverage)",
]
@@ -68,6 +68,6 @@ quote-style = "double"
indent-style = "space"
[tool.pyright]
include = ["src", "scripts", "scripts/ci"]
include = ["src", "scripts"]
pythonVersion = "3.12"
strict = ["src/gitea_runner_manager"]
+9 -8
View File
@@ -17,9 +17,8 @@ Classification strategy (safe-by-default):
Workflow-only paths (infrastructure → no release needed):
- .gitea/workflows/** — Gitea Actions workflows
- scripts/ci/**CI/CD automation scripts
- scripts/*.sh — Shell scripts (setup, molecule runners)
- scripts/__init__.py — Package init for scripts
- scripts/** All scripts (CI/CD, dev tools, setup)
- src/gitea_runner_manager/__init__.py — Version file (release artifact)
- docs/** — Documentation
- tests/** — Test files
- hooks/** — Git hooks
@@ -38,7 +37,7 @@ Classification strategy (safe-by-default):
Everything else is user-facing (tool changes → release needed),
including but not limited to:
- src/gitea_runner_manager/** — Python CLI source
- src/gitea_runner_manager/*.py — Python CLI source (except __init__.py)
- ansible/** — Ansible role
- pyproject.toml — Package metadata
- Any new file type not in the allowlist
@@ -63,10 +62,12 @@ WORKFLOW_ONLY_PATTERNS = frozenset(
[
# CI/CD infrastructure
".gitea/",
"scripts/ci/",
"scripts/setup.sh",
"scripts/molecule_all.sh",
"scripts/__init__.py",
# All scripts are infrastructure (CI/CD, dev tools, setup)
# User-facing code lives in src/gitea_runner_manager/
"scripts/",
# Version file — only contains __version__, not user-facing code.
# Version bumps are a release artifact, not a feature.
"src/gitea_runner_manager/__init__.py",
# Documentation
"docs/",
"AGENTS.md",
+1 -1
View File
@@ -1,3 +1,3 @@
"""Gitea Runner Manager — lean CLI for managing Gitea Actions runners."""
__version__ = "0.4.0"
__version__ = "0.2.0"
+11 -6
View File
@@ -34,12 +34,12 @@ class TestIsUserFacing:
def test_ci_scripts_are_not_user_facing(self) -> None:
assert is_user_facing("scripts/ci/release.py") is False
def test_dev_scripts_are_user_facing(self) -> None:
"""Dev scripts (check_test_speed, configure_repo) are NOT in the
workflow-only allowlist, so they default to user-facing."""
assert is_user_facing("scripts/check_test_speed.py") is True
assert is_user_facing("scripts/configure_repo.py") is True
assert is_user_facing("scripts/install_checkmake.py") is True
def test_dev_scripts_are_not_user_facing(self) -> None:
"""All scripts under scripts/ are infrastructure (CI/CD, dev tools).
User-facing code lives in src/gitea_runner_manager/."""
assert is_user_facing("scripts/check_test_speed.py") is False
assert is_user_facing("scripts/configure_repo.py") is False
assert is_user_facing("scripts/install_checkmake.py") is False
def test_shell_scripts_are_not_user_facing(self) -> None:
assert is_user_facing("scripts/setup.sh") is False
@@ -48,6 +48,11 @@ class TestIsUserFacing:
def test_scripts_init_is_not_user_facing(self) -> None:
assert is_user_facing("scripts/__init__.py") is False
def test_version_file_is_not_user_facing(self) -> None:
"""__init__.py only contains __version__ — a release artifact,
not user-facing code. Version bumps alone should not trigger releases."""
assert is_user_facing("src/gitea_runner_manager/__init__.py") is False
def test_docs_are_not_user_facing(self) -> None:
assert is_user_facing("docs/user/getting-started.md") is False