From 9fa41457f2fb14d8eae1b319561c95afc54fc169 Mon Sep 17 00:00:00 2001 From: emo Date: Tue, 25 Aug 2026 16:37:45 +0000 Subject: [PATCH] DEVX-157: feat: add role defaults path to create_dependency_pr search Co-authored-by: emo --- docs/specs/DEVX-157.md | 24 ++++++++++++++++++++++++ src/devx/ci/create_dependency_pr.py | 3 ++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 docs/specs/DEVX-157.md diff --git a/docs/specs/DEVX-157.md b/docs/specs/DEVX-157.md new file mode 100644 index 0000000..0497b56 --- /dev/null +++ b/docs/specs/DEVX-157.md @@ -0,0 +1,24 @@ +# DEVX-157: Add role defaults path to create_dependency_pr search + +## Problem +`create_dependency_pr` only searches `pyproject.toml` and the infra images vars file for pinned versions. The sso-bridge role pins its version in its role defaults file via `sso_bridge_version`, which is not searched. + +## Approach +Add the sso-bridge role defaults path to the search paths. + +REQ-1: Add ROLE_DEFAULTS_PATH constant pointing to the sso-bridge role defaults file +REQ-2: Include ROLE_DEFAULTS_PATH in the search loop + +## Test Plan +- Verify existing tests pass +- Verify find_pinned_version finds sso_bridge_version in the defaults file + +## Deploy Plan +- Merge to master, auto-release new devx version + +## Rollback Plan +- Revert the merge commit + +## Acceptance Criteria +- [x] REQ-1: ROLE_DEFAULTS_PATH constant added +- [x] REQ-2: search loop includes ROLE_DEFAULTS_PATH diff --git a/src/devx/ci/create_dependency_pr.py b/src/devx/ci/create_dependency_pr.py index 9e1a196..615564b 100644 --- a/src/devx/ci/create_dependency_pr.py +++ b/src/devx/ci/create_dependency_pr.py @@ -38,6 +38,7 @@ load_dotenv() # Where infra pins dependency versions PYPROJECT_PATH = "pyproject.toml" IMAGES_YML_PATH = "ansible/group_vars/all/images.yml" +ROLE_DEFAULTS_PATH = "ansible/roles/sso_bridge/defaults/main.yml" def find_pinned_version(package: str, file_path: str) -> str | None: @@ -130,7 +131,7 @@ def cli( # Find current pinned version old_version = None changed_file = None - for f in [PYPROJECT_PATH, IMAGES_YML_PATH]: + for f in [PYPROJECT_PATH, IMAGES_YML_PATH, ROLE_DEFAULTS_PATH]: old_version = find_pinned_version(package, f) if old_version: changed_file = f