fix: Always skip autoupdate-schedule = "never" - #21
Merged
Conversation
Both pixi scanners only compared `autoupdate-schedule` against the run's schedule when `--schedule` was passed, so an unfiltered run ignored the setting entirely and opened pull requests for repositories that had opted out. Treat `never` as an unconditional opt-out instead: it is honored with or without `--schedule`, while the remaining values keep selecting a cadence.
Pavel Zwerschke (pavelzw)
requested a review
from Yannik Tausch (ytausch)
as a code owner
August 4, 2026 14:42
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #21 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 48 49 +1
Lines 3067 3077 +10
=========================================
+ Hits 3067 3077 +10 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Yannik Tausch (ytausch)
approved these changes
Aug 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
prompt:
🤖 yap
Problem
[tool.update] autoupdate-schedule = "never"was ignored unless--schedulewas also passed, so unfiltered runs opened pull requests for repositories that had explicitly opted out.Both pixi scanners guarded the comparison behind
self.schedule is not None:With no
--schedule, no filtering happened at all. This was documented as intended behavior, butneveris the one value that isn't a cadence, so it can never match a cadence filter — reading it as "never, unless nobody asked about schedules" is a footgun.Real-world impact: Quantco/conda-deny#162–#165 were opened against four lockfiles that all had
autoupdate-schedule = "never", set in Quantco/conda-deny#157.Change
neveris now an unconditional opt-out, honored with or without--schedule. The remaining values keep selecting a cadence, so--schedule weeklybehaves exactly as before.The same bug was present in
pixi-version(_pixi_version.py:111) and is fixed alongside it._pixi_update/_update.py,_pixi_version.py— checkneverbefore the cadence comparisoncli_options.py,docs/contents/built-in-updaters/pixi.md, regenerateddocs/contents/reference/cli.mdVerification
Both new tests fail without the fix and pass with it (verified via
git stash, so they aren't vacuous). 561 tests pass;pixi run lintis clean.Unfiltered dry run against the affected repository:
All four pull requests above are no longer generated. The one remaining item is
tests/pixi-build/pixi.lock, which has no[tool.update]section and so keeps the monthly default.Out of scope
Those pull requests had
No diffas their body, which is a separate bug left untouched here._update.py:326detects a no-op viaoutput.stdout.strip() == "{}", but pixi 0.73 emits{"version": 1, "environment": {}}, making theUP_TO_DATEbranch dead code. The file still changes becausepixi updatemigrates the lockfile format (v6 → v7), producing a real git diff with an empty dependency diff.conda-deny is unaffected now that its lockfiles are skipped, but any other repository with a
version: 6lockfile and an active schedule will still get oneNo diffpull request, andUP_TO_DATEis never reported.