Files
grm/CHANGELOG.md
T
2026-08-08 23:38:33 +00:00

477 lines
12 KiB
Markdown

# Changelog
All notable changes to this project will be documented in this file.
## [0.19.0] - 2026-08-08
### Features
- Use Gitea mirror for Ansible collection installs
## [0.18.8] - 2026-08-06
### Bug Fixes
- Pin containerd.io to compatible version for Docker 28.x
## [0.18.7] - 2026-08-06
### Bug Fixes
- Move StartLimit to [Unit] and make prune timer reload conditional
## [0.18.6] - 2026-08-05
### Bug Fixes
- Pre-configure daemon.json before rootless setuptool + add DBUS_SESSION_BUS_ADDRESS
## [0.18.5] - 2026-08-05
### Bug Fixes
- Pin Docker 28.x + disable containerd snapshotter + tune prune/disk
## [0.18.4] - 2026-08-05
### Bug Fixes
- Harden rootless Docker daemon resilience on CI runners
## [0.18.3] - 2026-08-04
### Bug Fixes
- Switch default network driver to slirp4netns (pasta TCP RST bug)
## [0.18.2] - 2026-07-16
### Bug Fixes
- Load tun module and pre-configure systemd override for Arch rootless Docker
## [0.18.1] - 2026-07-16
### Bug Fixes
- Fetch rootless Docker scripts on Arch Linux
## [0.18.0] - 2026-07-12
### Features
- *(runner)* Enable IPv6 in rootless Docker via pasta network driver
## [0.17.2] - 2026-07-11
### Refactor
- Adopt devx v0.40.0
## [0.17.1] - 2026-07-09
### Bug Fixes
- Disable IPv6 in rootless Docker daemon on runners
## [0.17.0] - 2026-07-08
### Features
- Bump devx to 0.38.0 and migrate to role-based Gitea tokens
## [0.16.0] - 2026-07-07
### Features
- Consolidate docs checks into devx-docs-check target
### Bug Fixes
- Replace --strict with --verify for sync_wiki
## [0.15.0] - 2026-07-06
### Features
- Adopt documentation-as-code enhancements from devx
## [0.14.4] - 2026-07-06
### Refactor
- Remove project-specific references from grm
## [0.14.3] - 2026-07-06
### Refactor
- Rename PyPI package from gitea-runner-manager to grm
## [0.14.2] - 2026-07-05
### Bug Fixes
- Add pre-commit hooks for quality gates matching CI
## [0.14.1] - 2026-07-01
### Refactor
- Align venv management to devx.mak targets
## [0.14.0] - 2026-07-01
### Features
- Bump devx to v0.30.0
## [0.13.0] - 2026-07-01
### Features
- Bump devx to v0.29.1, upgrade molecule, ubuntu 26.04
## [0.12.5] - 2026-06-30
### Bug Fixes
- Right-size molecule-tests matrix to [1-6]
- Cast disk threshold to string in template-content verify assertion
## [0.12.4] - 2026-06-29
### Bug Fixes
- Use hardcoded matrix array for Gitea 1.26 compatibility
## [0.12.3] - 2026-06-29
### Bug Fixes
- Fix wiki link URLs, heading hierarchy, quote pip install vars
- Improve runner service stability and deregistration
## [0.12.2] - 2026-06-28
### Bug Fixes
- Bump devx to 0.26.3 (latest with pinned deps)
## [0.12.1] - 2026-06-28
### Bug Fixes
- Add approval step to auto-merge workflow using REVIEW_GITEA_TOKEN
## [0.12.0] - 2026-06-28
### Features
- Upgrade all dependencies, add trigger-workflow command
## [0.11.1] - 2026-06-28
### Bug Fixes
- Makefile HOST/NAME requirement errors, add restart and list targets
## [0.11.0] - 2026-06-28
### Features
- Unified --become-password-file, --verbose, --no-status, labels fix
## [0.10.3] - 2026-06-27
### Bug Fixes
- Install hadolint on-the-fly in setup-image
- Revert EXTRAS=ci default in setup-image
- Add EXTRAS=ci to all setup-image calls, workflow-level CI_GITEA_TOKEN
### Refactor
- Remove hadolint on-the-fly install workaround
- Use devx Makefile aliases, bump devx>=0.23.0
## [0.10.2] - 2026-06-27
### Bug Fixes
- Setup-image configures Gitea PyPI registry and shows pip errors
- Gate auto-merge on release-dry-run and unmask failures
- Bump devx>=0.22.0 and remove REPO_TOKEN alias
### Refactor
- Rename REPO_TOKEN to CI_GITEA_TOKEN, consolidate env vars
## [0.10.1] - 2026-06-27
### Bug Fixes
- Set PYTHONPATH=src in publish Install CI tools step
### Refactor
- Replace duplicated Makefile targets with devx.mak aliases
- Consolidate publish.yml into post-merge.yml
## [0.10.0] - 2026-06-26
### Features
- Adopt devx tools, devx.mak fragment, ci extra, remove legacy install-devx
### Bug Fixes
- Always run publish in post-merge (idempotent)
## [0.9.0] - 2026-06-24
### Features
- Adopt devx v0.11.1 across Makefile and workflows
- Add Polish as officially supported language
## [0.8.1] - 2026-06-24
### Bug Fixes
- Repair publish workflow and add publish step to post-merge
- Add build/twine to ci deps, activate venv in notify_failure
## [0.8.0] - 2026-06-24
### Features
- Remove .taskid file, use branch name only for task ID
### Bug Fixes
- Add workflow_dispatch to publish workflow and update devx to 0.9.12
## [0.7.0] - 2026-06-24
### Features
- Switch devx installation from git to Gitea PyPI registry
- Adopt per-test timing quality gate from devx 0.7.0
### Bug Fixes
- Update devx to v0.4.2 and fix workflow env vars
- Pin devx to v0.4.3 to fix post-merge workflow failures
- Pin devx to v0.4.4 to fix validate-commit-msg and sync-wiki
- Rewrite CHANGELOG with correct version ordering and missing sections
- Lower test speed threshold to 4s and update devx to v0.8.2
- Retrospective fixes for CI/CD friction
- Replace stale badge SHA URLs with raw/branch/badges/
## [0.6.4] - 2026-06-22
### Bug Fixes
- Update devx to v0.4.2 and fix workflow env vars
- Pin devx to v0.4.3 to fix post-merge workflow failures
- Pin devx to v0.4.4 to fix validate-commit-msg and sync-wiki
## [0.6.3] - 2026-06-22
### Bug Fixes
- Add scripts/** to infrastructure classification config
## [0.6.2] - 2026-06-22
### Bug Fixes
- Include lint extras in setup-ci and setup-release
- Use commit SHA URLs for badges to bypass Gitea cache
- Make sync-wiki and vikunja depend on release
- Pin devx to v0.4.0, fix cliff.toml preprocessor, bump to v0.7.0
### Refactor
- Fully automate PR merge — no manual label/review needed
- Require tea CLI everywhere, fail on missing Vikunja task
- Separate GRM and CI translations with validation
- Migrate from scripts/ to devx package
## [0.6.1] - 2026-06-22
### Bug Fixes
- Badges always update on release commits + fix configure-repo PYTHONPATH
- Enforce commit message convention on master with CI validation
- Post-merge workflow failures (4 jobs)
## [0.6.0] - 2026-06-22
### Bug Fixes
- Molecule-tests matrix runner-index renders as empty for 0
- Use 1-based runner indices for Gitea Actions compatibility
- Molecule-tests static matrix and role_dir path fix
- Auto-merge label condition uses pull_request.labels
- Revert review_pr.py to GiteaClient (tea v0.14.1 is interactive-only) (#70)
### Revert
- Remove v0.6.0 release (no user-facing changes)
## [0.5.0] - 2026-06-22
### Features
- Enforce commit naming conventions and workflow discipline
### Bug Fixes
- Clean up infrastructure-only releases and fix release classification
- Rewrite changelog and re-tag releases at user-facing milestones
## [0.4.0] - 2026-06-21
### Features
- Replace inline workflow scripts with tested Python modules
- User-friendly click errors with i18n in configure_repo
- Bandit integration (#1)
- Auto-delete branch after merge in configure_repo script
- Add runner labels support and refactor i18n to JSON
- Parallel molecule runner with kill-on-first-failure
- Cross-runner molecule cancellation via Gitea API polling
### Bug Fixes
- Set runner_mode to binary in multi-instance converge
- Skip systemd operations in lifecycle molecule when unavailable
- Improve make setup with version guard, pre-push hooks and commit-msg validator
- Enforce GRM-N: conventional on master commits and PR titles
- Remove molecule tests from pre-push hooks
- Resolve bandit security warnings in source code and tests
- CI pipeline for rootless Docker runners
- CI workflows for rootless runner compatibility
- Vikunja task resolution pagination in post_merge.py
- Use PUT instead of POST for Vikunja task comments
- Parse pytest output with warnings in check_test_speed
- Use systemd as container command for rootless molecule tests
- Add Docker APT repository before installing docker-ce
- Use deb822_repository for Docker APT repo (proper GPG handling)
- Dearmor Docker GPG key with gpg --dearmor for apt_repository
- Use bash for gpg dearmor (pipefail not available in sh)
- Install curl, gpg, ca-certificates in molecule prepare
- Separate apt update after adding Docker repo, use variable for repo string
- Add apt source debug tasks, fix arch mapping for Docker repo
- Fail-fast CI, write Docker apt source directly, fix arch mapping
- Skip rootless Docker daemon startup in molecule tests
- Gate all Docker-dependent tasks behind docker_rootless_setup
- Catch TimeoutExpired in parallel runner wait loop
- Stream molecule subprocess output to CI logs
- Run molecule pairs sequentially within each CI runner
- Guard all systemctl --user tasks with docker_rootless_setup
- Guard handler systemctl --user calls with docker_rootless_setup
- Make user_setup and download tasks idempotent
- Use gnupg instead of gpg package name on Arch Linux
- Add default(0) to gitea_runner_uid in environment blocks
- Set runner_name in deregister verify.yml
- Security, dead code, idempotence, and documentation cleanup
- Use content_base64 for Gitea wiki API, add --verify flag (#33)
- Wiki links, add --strict integrity check for wiki sync (#34)
### Refactor
- Standardise pre-commit hooks on make targets
- Use http.HTTPStatus constants instead of magic numbers
- Rework all scripts to use click and i18n
- *(scripts)* Centralize constants, API clients, and HTTP status codes
- Rootless Docker, fix auto-merge, molecule platform matrix
## [0.3.2] - 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)
### Refactor
- 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
- Bypass commit-msg hook for release commits
- Enforce tests pass before tagging a release
## [0.2.1] - 2026-06-21
### Bug Fixes
- Strip git-cliff header from CHANGELOG.md updates
## [0.2.0] - 2026-06-18
### Features
- Parameterize all hardcoded configuration values as Ansible variables
- Add GITEA_ADMIN_TOKEN support for integration test
- Add AnsibleExecutor and i18n modules
- Integrate AnsibleExecutor and i18n into CLI and RunnerManager
- Add systemd template units and multi-instance Ansible support
- Add lifecycle CLI commands and RunnerManager extensions
- Add runner registry for simplified CLI UX
- Add translated operation report for success and failure cases
- Replace print() with stdlib logging module
- Use click.echo() for user-facing messages with dual logging
- Add colorized output for better visual feedback
- Add --force flag to grm remove for unreachable runners
- Make --ask-become-pass the default behavior
### Bug Fixes
- Resolve idempotence issues and testing infrastructure
- Remove recursive variable definitions in install and update playbooks
- Add timeout to runner registration to prevent indefinite hangs
- Override Docker container entrypoint to bypass run.sh wrapper
- Set Docker working dir to /data for .runner persistence
- Make integration test conditional on admin API accessibility
- Remove recursive var definitions from install-runner.yml
- Convert runner config from TOML to YAML format
- Rewrite integration test to verify .runner file and container health instead of unreliable API checks
- Eliminate duplicate console output, restore GRM_LOG_LEVEL filtering
- Make grm list retrieve runner status correctly
### Refactor
- Remove dead code and legacy artifacts
- Migrate source terminology from act_runner to gitea_runner
- Consolidate systemd checks and deduplicate role structure
- Deduplicate CLI, remove dead code, move validation to business layer
- Resolve_runner returns gitea_url, add --url CLI option, force remove improvements, code quality fixes
## [0.1.0] - 2026-06-17
### Features
- Initial implementation of Gitea Runner Manager