Just to kind of flesh out something I suggested in Matrix for moss:
User Story:
I, an intrepid and easily distractable package maintainer, often get "genius" ideas for how to improve/overhaul certain packages. Often these ideas don't pan out, require more work than I'm willing to commit at the moment, or I just got distracted by some other new shiny.
Let's say for example that I have an idea to improve mesalib. I will make my change and relbump mesalib, then relbump dependent packages (and perhaps make some other changes along the way). Then I will install mesalib and the modified packages to test, but then discover that while my system is functional that I would still need to do some additional work to get my changes ready for submitting. Let's say that sometime after this point someone else does a breaking update to the mesalib package, pushes it along with dependent package rebuilds, but because the relnum of my installed packages is the same as the updated packages those updates do not get installed to my system. This could lead to breakages locally, or more importantly (from the perspective of a system maintainer) it could mean that my system is functional and that I don't see issues that are present in the new version of the package (issues that I could otherwise help contribute fixes for).
So as a fix for this situation it would be great to get a moss diff
or similar that would compare the state of the local package database against the configured repos. Installed packages that different in some aspect of the metadata would be displayed and additionally packages that were installed locally that were not in any repo would be shown (for instance if my changes to a package required that I package new deps).
Something like:
moss diff
Packages different than repo packages:
mesalib
dependentPackage1
dependentPackage2
Packages not in repo:
mesalibFancyDependency
Perhaps also with a --detailed
option to show exactly what's different:
moss diff --detailed
Packages different than repo packages:
mesalib (different version, checksum mismatch)
dependentPackage1 (checksum mismatch)
dependentPackage2 (checksum mismatch)
Packages not in repo:
mesalibFancyDependency