Commit Graph
121 Commits
Author SHA1 Message Date
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 40896487ff fix: add tenacity retry to install_tools._download for transient network failures
The build-images CI job failed because GitHub releases dropped
connections ("Remote end closed connection without response") for
actionlint, vale, and hadolint simultaneously. The previous code only
fell through to the next fallback URL — there was no retry on the same
URL for transient connection resets.

Now uses tenacity.Retrying with exponential backoff (2-10s, 3 attempts)
on URLError/OSError/ConnectionError, matching the pattern already used
in devx.utils.network. The _sleep kwarg allows tests to skip real
sleeping.

3 new tests cover: retry-then-success, exhaustion-after-max-retries,
and no-retry-on-non-transient-errors.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-12 19:49:20 +02:00
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 5e1db395b8 docs: add wait-for-checks CLI command, ADR-0002, update architecture docs
Phase 1e-f of REFACTORING-PLAN.md:

- Register `devx ci wait-for-checks` in cli.py with test coverage
- Add ADR-0002 documenting the ansible_checks consolidation and
  wait_for_checks extraction decisions
- Update AGENTS.md package structure to reflect ansible_checks/
  subpackage and deprecated ci/discover_runners wrapper
- Update docs/user/cli-commands.md with wait-for-checks documentation
  and discover-runners deprecation notice
- Update docs/tech/architecture.md with new modules and canonical
  discover_runners location
- Update docs/mapping.json with ADR entries

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-12 19:31:20 +02:00
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 8f1232a7d7 refactor: extract wait_for_checks, consolidate ansible_checks, deprecate ci/discover_runners
Phase 1a-c of REFACTORING-PLAN.md:

- Extract devx.ci.wait_for_checks module (replaces inline polling in
  grm ci.yml) with 100% test coverage (26 tests)
- Consolidate 5 Ansible check tools into composable
  devx.tools.ansible_checks/ subpackage with shared utilities
  (AnsibleFileFinder, AnsibleYAMLParser, ViolationReporter); old
  modules remain as thin backward-compat wrappers
- Merge ci/discover_runners into molecule/discover_runners (canonical
  implementation with improved error logging); ci/discover_runners
  becomes a deprecated wrapper re-exporting from molecule

All 2393 existing tests pass; new modules at 100% coverage.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-12 19:25:15 +02:00
emil User 1fc7a03c1a DEVX-152: feat: sync missing features from v0.49.x line to master 2026-08-12 12:43:37 +00:00
emil User ccb7023965 DEVX-151: perf: skip dep resolution in setup-image with --no-deps 2026-08-07 21:01:06 +00:00
emil User 2669a0ea73 DEVX-149: fix: retry ansible-galaxy collection install on transient timeouts 2026-08-07 20:26:52 +00:00
oblachno Adminandemil User 03ddce427c DEVX-148: fix: add fallback URL for tea download
Co-authored-by: oblachno Admin <admin@oblachno.oblachno.fyi>
2026-08-07 15:33:54 +00:00
oblachno Adminandemil User 6601d90bee DEVX-146: feat: add --include-roles and --exclude-roles to distribute_molecule
Co-authored-by: oblachno Admin <admin@oblachno.oblachno.fyi>
2026-08-07 14:20:54 +00:00
emil User 9f1bdc4cf1 DEVX-145: feat: extract reusable components from infra and grm into devx 2026-07-22 20:56:27 +00:00
emil User d743ba93eb DEVX-144: fix: bake promtool into ci-full image, add download timeout, speed up tests 2026-07-17 02:10:17 +00:00
emil User a02bf6d70e DEVX-143: fix: add retry logic to TeaCLI for transient HTTP errors (502/503/504/429) 2026-07-17 00:44:27 +00:00
emil User a7a8637244 DEVX-142: fix: tea CLI login failure handling, error messages, release retry 2026-07-16 14:26:15 +00:00
emil User c62c560c85 DEVX-141: feat: add promtool to install_tools for alert rule validation 2026-07-14 23:18:29 +00:00
emil User d8ceb6c8a1 DEVX-140: feat: make check_test_isolation configurable via pyproject.toml 2026-07-14 16:29:31 +00:00
emil User ddfbdec956 DEVX-136: feat: add fix_pr_title module and update_pr API method 2026-07-13 23:55:11 +00:00
emil User 02b27dd343 DEVX-134: feat: add I/O function isolation check and skip integration tests 2026-07-13 02:57:54 +00:00
emil User 50dcb67083 DEVX-133: fix: auto-discover molecule root instead of hardcoding gitea-runner 2026-07-13 02:25:59 +00:00
emil User f44b321f37 DEVX-129: test: cover crypto.py line 37 (retry on leading dash) 2026-07-13 01:05:20 +00:00
emil User 77c2f7e043 DEVX-129: feat: test isolation pytest plugin, shift-left quality gates, dep upgrades 2026-07-13 00:57:28 +00:00
emil User d035b620e0 DEVX-127: fix: fall back to CI token when reviewer self-approval is rejected 2026-07-12 16:33:53 +00:00
emil User cb84dae050 DEVX-126: ci: consolidate CI and post-merge workflows 2026-07-12 01:52:40 +00:00
emil User 4cde7de696 DEVX-125: feat: detect double-prefix in Vikunja task title during pre-merge validation 2026-07-11 23:07:45 +00:00
emil ef3b882e5b DEVX-124: feat: extract shared utilities from infra and grm into devx 2026-07-09 11:51:50 +00:00
emil 0228fce5b9 DEVX-123: feat: introduce role-based Gitea API token environment variables 2026-07-08 19:30:10 +00:00
emil ef08513bcf DEVX-122: feat: consolidate docs checks into devx-docs-check target 2026-07-07 22:00:07 +00:00
emil 6a463a93d2 DEVX-121: fix: GiteaClient.set_repo_variable uses PUT instead of PATCH 2026-07-07 15:51:45 +00:00
emil f98534ebe2 DEVX-119: feat: add GiteaClient repo variable methods and parallelize pytest-cov 2026-07-07 11:57:04 +00:00
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> f50c4c1e00 DEVX-118: fix: use Gitea wiki dash-marker filename convention
Gitea appends a ".-" suffix before ".md" for wiki page titles that
contain dashes, to distinguish literal dashes from space-to-dash
conversions. For example, "Getting-Started" becomes
"Getting-Started.-.md", while "Architecture" becomes "Architecture.md".

Previously the code wrote "Getting-Started.md" which Gitea couldn't
recognize as a valid wiki page, causing verification to fail with
"page not found" for 15 of 21 pages.

Also force-push to handle concurrent CI runs that may have pushed to
the wiki repo between our clone and push.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-07-06 15:21:22 +02:00
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> c97b249935 DEVX-118: fix: add delay before wiki verification to avoid race condition
Gitea needs a few seconds to process pushed wiki commits before a
re-clone will see them. Add a 5s sleep after a successful push before
verification re-clones the wiki.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-07-06 15:00:02 +02:00
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> f017fec8f5 DEVX-118: fix: configure git identity before commit in sync_wiki
CI environments may lack git user.email/user.name config, causing
git commit to fail with exit code 128. Set identity explicitly before
committing wiki changes.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-07-06 11:41:36 +02:00
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 0a5625b70b DEVX-118: refactor: rewrite sync_wiki.py to use git-based approach
Replace the unreliable Gitea wiki API with direct Git operations:
- Clone {repo}.wiki.git, copy docs with link transformation, push
- Faster: single git push vs N API calls
- More reliable: no API timeouts or rate limits
- Atomic: all pages sync in one commit
- Auto-pruning: stale wiki pages removed automatically
- Link transformation: [text](file.md) → [text](file) for wiki format
- 36 new tests covering transform_links, clone, sync_files, commit, verify

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-07-06 10:26:00 +02:00
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> fb342e7b9d DEVX-118: feat: enrich lint_docs.py with single H1, max depth, line length, code block lang, orphan checks
- Add check_single_h1: each markdown file should have at most one H1
- Add check_max_heading_depth: headings should not exceed H4 (configurable)
- Add check_line_length: warn on lines >120 chars (non-blocking — badge URLs)
- Add check_code_block_languages: fenced code blocks must specify a language
- Add check_orphan_docs: warn on docs not linked from index.md or mapping.json
- Fix all code blocks in docs to specify language (text for plain blocks)
- Fix duplicate H1 in .vale/styles/devx/README.md
- Add 18 new tests for full coverage of new checks

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-07-06 10:15:54 +02:00
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> bbf0c81c32 DEVX-118: feat: enhance documentation-as-code with badges, version refs, Vale
- Fix badge system: clean .badges dir from orphan branch, add version
  verification, make badges job depend on release (avoids stale version
  badge race condition)
- Add check_doc_versions.py: lint tool that verifies docs version
  references match current __version__, with --fix for auto-update
- Integrate check_doc_versions into release process (auto-updates docs
  on every release commit)
- Add Vale prose linter integration: .vale.ini, custom styles for
  terminology and code block language, CI step, make target
- Fix stale version references in docs (0.27.0 → 0.33.4)
- Fix e.g. → for example in docs (Google.Latin Vale rule)
- Add CI steps for check_doc_versions and Vale to quality workflow
- Add make targets: devx-check-doc-versions, devx-vale

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-07-06 10:03:47 +02:00
emil e796b06a91 DEVX-117: refactor: remove project-specific references from devx 2026-07-06 06:17:52 +00:00
emil d623a64344 DEVX-115: fix: make wiki sync resilient to API timeouts and stale page lists 2026-07-06 04:55:06 +00:00
emil 9f02ccb40d DEVX-113: fix: abort sync_wiki when list_wiki_pages fails 2026-07-05 19:17:10 +00:00
emil 20ea80135c DEVX-112: fix: build images after post-merge publish, not on push 2026-07-05 14:46:33 +00:00
emil 2c0118111d DEVX-111: feat: add check_api_identity_checks, setup_ssh_key, and api utils 2026-07-05 14:11:58 +00:00
emil d59de06652 DEVX-110: feat: extract docker-login, tofu-ops, check-deps, install-tofu to Python tools 2026-07-01 23:00:28 +00:00
emil 77c1af8ed3 DEVX-110: feat: centralize venv management in devx.mak 2026-07-01 22:34:49 +00:00
emil 85b5ec1485 DEVX-108: feat: add standard label creation to configure_repo 2026-07-01 14:03:48 +00:00
emil e3fa9b7c95 DEVX-107: fix: strip task ID prefix from commit messages in extract_conventional_msg 2026-07-01 09:28:23 +00:00
emil c0fcaef25f DEVX-106: feat: detect badge commits as automated CI commits 2026-07-01 06:19:34 +00:00
emil 621b051793 DEVX-104: feat: auto-rebase in auto-merge, new rebase tools, CLI registration 2026-07-01 00:50:23 +00:00
emil 9d75e408ae DEVX-14: fix: retry wiki integrity check on transient API timeout 2026-06-30 05:33:00 +00:00
emil 0fae419584 DEVX-100: fix: retry release push on non-fast-forward with rebase loop 2026-06-29 11:29:31 +00:00
emil ee80c27631 DEVX-98: feat: add lint_docs tool, fix doc_coverage/check_translations for any repo 2026-06-28 16:35:59 +00:00
emil e836c09088 DEVX-96: fix: block admin merge override and auto-approve with review token 2026-06-28 14:37:36 +00:00
emil 55c530eb00 DEVX-93: fix: force pip upgrade in setup-image to install new dependencies 2026-06-28 12:14:31 +00:00
emil f7f53941a1 DEVX-92: feat: add distribute_items CI tool for parallel VM deployment 2026-06-28 01:58:42 +00:00