477 lines
12 KiB
Markdown
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
|