Skip to content

feat: Group pixi-update lockfiles into one pull request - #35

Draft
Yannik Tausch (ytausch) wants to merge 3 commits into
mainfrom
yt/pixi-update-group
Draft

Yannik Tausch (ytausch) wants to merge 3 commits into
mainfrom
yt/pixi-update-group

Conversation

@ytausch

@ytausch Yannik Tausch (ytausch) commented Sep 17, 2026

Copy link
Copy Markdown
Member

Motivation

Closes #30.

quant-ranger currently opens one pull request per updated pixi.toml. In
monorepos with many manifests this produces a lot of pull requests, and merging
them triggers repeated CI runs. As suggested in the issue, each manifest can now
declare a group in its [tool.update] section, and all manifests with the same
group are published in a single pull request.

Changes

  • Add an optional group key to [tool.update] in pixi.toml. It is
    branch-safe (^[A-Za-z0-9][A-Za-z0-9._/-]*$) because it is used as a branch
    segment.
  • Lockfiles of the same repository that share a group are regenerated in one
    checkout and published together as one pull request. The branch is
    <autoupdate-branch-prefix>/<group>, the title is
    <autoupdate-commit-message> (<group>), and the body contains one section per
    changed lockfile.
  • Grouped manifests must agree on autoupdate-branch-prefix,
    autoupdate-commit-message, and autoupdate-pull-request-labels; a
    disagreement fails the group instead of silently picking one manifest's values.
  • Lockfiles that are already up to date are not staged and are not listed in the
    body. A failing lockfile only fails its own item; the remaining lockfiles are
    still published.
  • The updater base gains two small seams: _update_units groups items that share
    a run, and _run_unit executes one group, so one updater run can publish
    several items through a single checkout while still emitting one result per
    item. Outcome recording is shared between the normal and unexpected-failure
    paths. Default behavior (one checkout and one pull request per item) is
    unchanged.
  • Document the option in the pixi-update reference and the managed-branches table.

Notes:

  • group is per repository, so it does not introduce a new config file and stays
    extensible. Groups are keyed by repository and group name.
  • The dependency report of each changed lockfile is still produced with
    pixi-diff-to-markdown and concatenated under per-manifest headings. Filtering
    for major upgrades/downgrades in pixi-diff-to-markdown remains a separate
    follow-up, since that is upstream work.
  • Posting one review per pixi.lock (instead of the body table) is not part of
    this change; the current body-table behavior is kept for both grouped and
    single-lockfile updates.

@github-actions github-actions Bot added the enhancement New feature or request label Sep 17, 2026
@codecov

codecov Bot commented Sep 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (3f5379d) to head (523dd36).

Additional details and impacted files
@@            Coverage Diff             @@
##              main       #35    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           49        49            
  Lines         3077      3177   +100     
==========================================
+ Hits          3077      3177   +100     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider support grouping updater changes into a single PR

1 participant