From cacc7d0ddfe12fc664a87f1e3092ba81f3814961 Mon Sep 17 00:00:00 2001 From: emil Date: Sat, 8 Aug 2026 23:38:07 +0200 Subject: [PATCH] fix(setup): extract version from filename for mirror installs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Type: url entries in requirements.yml don't have a version field — the version is embedded in the tarball filename. Extract it with a regex so ansible-galaxy can install the correct version from the local file. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- src/devx/tools/setup.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/devx/tools/setup.py b/src/devx/tools/setup.py index c142d2a..a0a0760 100644 --- a/src/devx/tools/setup.py +++ b/src/devx/tools/setup.py @@ -138,10 +138,14 @@ def _try_gitea_mirror_install(galaxy: str, requirements: Path) -> bool: click.echo(f" WARN: mirror download failed for {entry.get('name')}: {e}") click.echo(" Falling back to galaxy.ansible.com") return False + # Extract version from filename (e.g. ansible-posix-2.2.2.tar.gz) + import re + + ver_match = re.search(r"(\d+\.\d+\.\d+)", filename) local_entries.append( { "name": entry["name"], - "version": entry.get("version"), + "version": ver_match.group(1) if ver_match else entry.get("version"), "type": "file", "source": str(dest), }