3
26
Fork
You've already forked mere
1

fix: realization/manifest index mismatch and improve error diagnostics #45

Merged
jhuntwork merged 1 commit from fix-realizations into main 2026年04月01日 14:56:14 +02:00

Three related fixes:

  1. Realization indices now match manifest package order. The manifest
    encoder sorts packages alphabetically, but the realization was
    written using the resolver's install order. When a subsequent
    generation loaded the parent manifest (alphabetical) and parent
    realization (install order), the mismatched indices caused false
    path conflicts — e.g., iptables paths attributed to s6-rc.

    Fix: canonicalize packages by name at the entry points of
    createGeneration, publishProfileRoot, and buildProfile so all
    index-bearing structures use the same ordering.

  2. PathConflict errors now include full diagnostic details showing
    which packages claim which paths, instead of "unknown error".
    Added ConflictingProvision to the user-friendly error message map
    and wired formatAllConflicts into the error context.

  3. Preferred selections no longer hold back upgrades. When a newer
    version exists in the repository, the resolver skips the preferred
    (older) candidate instead of pinning to it. This prevents rollback
    protection from rejecting packages that should have been upgraded.

Three related fixes: 1. Realization indices now match manifest package order. The manifest encoder sorts packages alphabetically, but the realization was written using the resolver's install order. When a subsequent generation loaded the parent manifest (alphabetical) and parent realization (install order), the mismatched indices caused false path conflicts — e.g., iptables paths attributed to s6-rc. Fix: canonicalize packages by name at the entry points of createGeneration, publishProfileRoot, and buildProfile so all index-bearing structures use the same ordering. 2. PathConflict errors now include full diagnostic details showing which packages claim which paths, instead of "unknown error". Added ConflictingProvision to the user-friendly error message map and wired formatAllConflicts into the error context. 3. Preferred selections no longer hold back upgrades. When a newer version exists in the repository, the resolver skips the preferred (older) candidate instead of pinning to it. This prevents rollback protection from rejecting packages that should have been upgraded.
jhuntwork force-pushed fix-realizations from 61601264bf
Some checks failed
/ test (pull_request) Has been cancelled
to b247d3beac
All checks were successful
/ test (pull_request) Successful in 5m28s
2026年04月01日 14:42:27 +02:00
Compare
jhuntwork deleted branch fix-realizations 2026年04月01日 14:56:15 +02:00
Sign in to join this conversation.
No reviewers
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
merelinux/mere!45
Reference in a new issue
merelinux/mere
No description provided.
Delete branch "fix-realizations"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?