Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/maint-51-dependency-refresh.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
- name: Refresh requirements.lock
run: |
set -euo pipefail
uv pip compile --python-version 3.12 --upgrade pyproject.toml --extra dev --extra langchain requirements.txt --universal -o requirements.lock
uv pip compile --python-version=3.12 --upgrade --extra=dev --extra=langchain --universal --output-file=requirements.lock pyproject.toml requirements.txt

- name: Verify lockfile aligns with current compile
env:
Expand All @@ -84,8 +84,9 @@ jobs:
continue
if re.match(r'^#\s*uv pip compile.*', stripped):
lines.append(
'# uv pip compile --python-version 3.12 pyproject.toml --extra dev '
'--extra langchain requirements.txt --universal -o requirements.lock'
'# uv pip compile --python-version=3.12 --extra=dev '
'--extra=langchain --universal --output-file=requirements.lock '
'pyproject.toml requirements.txt'
)
continue
if (
Expand Down
15 changes: 13 additions & 2 deletions renovate.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"description": "Workflows Renovate config — extends the stranske fleet-shared preset (renovate-presets/fleet.json), the single source of truth for grouping, automerge-on-green, dev-tool exclusions, and the vendored-minimatch cascade. Workflows dogfoods the same preset every consumer repo extends. Repo-specific overrides, if ever needed, go in packageRules below.",
"extends": ["github>stranske/Workflows//renovate-presets/fleet"]
"description": "Workflows Renovate config — extends the stranske fleet-shared preset (renovate-presets/fleet.json), the single source of truth for grouping, automerge-on-green, dev-tool exclusions, and the vendored-minimatch cascade. Workflows dogfoods the same preset every consumer repo extends. CANARY (do not promote to the fleet preset until proven here): the pip-compile manager block regenerates requirements.lock (a `uv pip compile` output) in-PR, because Renovate does NOT touch uv-pip-compile locks by default and the reusable Python CI installs `-r requirements.lock`. Renovate parses the lock header to find the source files + command — it requires `--python-version=3.12` (equals form) in the header. requirements.txt is a pip-compile source, so pip_requirements is disabled for it (Renovate docs: avoid double-managing source files); tools/requirements-llm.txt stays on pip_requirements (standalone LLM pins, not a lock source).",
"extends": ["github>stranske/Workflows//renovate-presets/fleet"],
"pip-compile": {
"managerFilePatterns": ["/(^|/)requirements\\.lock$/"]
},
"packageRules": [
{
"description": "requirements.txt is a pip-compile source for requirements.lock; let the pip-compile manager own it to avoid duplicate PRs.",
"matchManagers": ["pip_requirements"],
"matchFileNames": ["requirements.txt"],
"enabled": false
Comment on lines +11 to +13

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Disable pep621 for the pip-compile source too

Because this canary makes requirements.lock a pip-compile output whose header names both pyproject.toml and requirements.txt as sources, suppressing only pip_requirements still leaves Renovate's default pep621 manager running independently on pyproject.toml. Renovate's pip-compile docs say source managers should be disabled to avoid running the same source twice; in this repo pre-commit==4.6.0/flake8==7.3.0 are non-excluded optional-dependency pins, so a pep621-only bump can still change pyproject.toml without regenerating requirements.lock, recreating the stale-lock PRs this change is meant to prevent. Add a scoped pep621 disable for pyproject.toml (or exclude those pins) alongside this rule.

Useful? React with 👍 / 👎.

}
]
}
2 changes: 1 addition & 1 deletion requirements.lock
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --python-version 3.12 pyproject.toml --extra dev --extra langchain requirements.txt --universal -o requirements.lock
# uv pip compile --python-version=3.12 --extra=dev --extra=langchain --universal --output-file=requirements.lock pyproject.toml requirements.txt
aiohappyeyeballs==2.6.2
# via aiohttp
aiohttp==3.14.1
Expand Down
Loading