-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Start documenting updateinfo.xml #1523
RFC: Start documenting updateinfo.xml #1523
Conversation
If we want to have a canonical rpm-metadata repository, we could move my archive of files to this org and start figuring out proper documentation and evolution of the repodata format. |
The `yum`/`dnf` repository format isn't as well documented as one would necessarily like. For `updateinfo.xml` specifically, it is currently parsed by many third party tooling for the purpose of gathering information about updates applicable to Linux distributions using `yum`/`dnf` repositories. Since the format of `updateinfo.xml` has not been well defined over the years, this presents challenges to authors of these tools. With clear documentation on what exists in the wild, all authors of tools producing or parsing `updateinfo.xml` can refer to one canonical place for what exists in the wild and how to process it. Signed-off-by: Stewart Smith <[email protected]>
628f469
to
65076dc
Compare
I offer up https://github.com/fermitools/python-Updateinfo/blob/main/docs/updateinfo.xsd as I've been using it for years. |
Having a look at that, I notice a few differences from my XSD that would prevent validation of a number of The unique constraint on an update ID doesn't work for all The There's also The For the update I found that Rocky has the I've also seen For It looks like you have a more complete definition / list of the various values of The I also just noticed that I missed documenting the fact that seconds since the epoch has been part of the OpenSuSE metadata as a date format, i.e. there are 5 formats of this rather than 4. You do mention it here though. For For the |
As for the unique constraint, yum spits out warning messages when you've got duplicate IDs. I found most of those fields back in 2017. I'm not sure I've still got the samples I drew from. Its been so long since I looked a these my memory is a bit fuzzy. I'd say if you can't corroborate it today the sample I used probably bit rotted out. https://github.com/PackageKit/PackageKit/blob/main/backends/zypp/pk-backend-zypp.cpp#L2496 might it be worth adding |
There's now an rpm-metadata repo that this kind of documentation would be appropriate to target. |
Going to close this off in favor of rpm-software-management/rpm-metadata#2 as that's certainly the better place to have it. |
The
yum
/dnf
repository format isn't as well documented as one would necessarily like.For
updateinfo.xml
specifically, it is currently parsed by many third party tooling for the purpose of gathering information about updates applicable to Linux distributions usingyum
/dnf
repositories. Since the format ofupdateinfo.xml
has not been well defined over the years, this presents challenges to authors of these tools.With clear documentation on what exists in the wild, all authors of tools producing or parsing
updateinfo.xml
can refer to one canonical place for what exists in the wild and how to process it.In order to get to this schema, I've gathered as many samples of
updateinfo.xml
as I can find. That's about 189 files and 1.8GB - which likely should not sit in thednf5
repository, but should probably sit somewhere.Something that should come from that data set is various smaller snippets of
updateinfo.xml
that can be used by various tools for testing.This is the list of the files I've used for validating the schema:
updateinfo-xml-urls.txt
If anyone can think of any more, especially ones that may be different in some interesting way, please let me know!
I have the intent to create a version of the schema that is a Strict variant - with the view towards using that for code that produces
updateinfo.xml
. I'm putting this PR up first for initial feedback.One question I have is if the
dnf5
repository is the right location for this. @Conan-Kudo assembled https://pagure.io/rpm-metadata/ from existing sources, but I did not find anywhere with complete documentation on theupdateinfo.xml
schema and what variations existed in the wild.