[libvirt] [PATCH] RFC: maint: Sort public symbols within a release

Daniel P. Berrangé berrange at redhat.com
Mon Jun 24 09:31:33 UTC 2019


On Fri, Jun 21, 2019 at 02:18:23PM -0500, Eric Blake wrote:
> In libvirt_private.syms, we have a policy of keeping blocks of symbols
> sorted by name - in fact, we enforce it during 'make check' with our
> check-symsorting rule calling out to a perl script.  But
> libvirt_public.syms has been more cavalier over the years.
> 
> 21 releases have been trivially sorted due to adding only one symbol;
> while the following 27 releases listed multiple symbols in
> alphabetical order, even if the symbols were not chronologically added
> in that order [1]:
> 
> 0.0.3   0.9.5   1.1.0
> 0.3.0   0.9.7   1.1.1
> 0.3.3   0.9.8   1.2.5
> 0.4.2   0.9.9   1.2.8
> 0.6.3   0.9.10  1.2.11
> 0.7.5   0.9.13  1.2.15
> 0.9.0   1.0.1   1.3.3
> 0.9.2   1.0.2   3.1.0
> 0.9.3   1.0.3   3.4.0
> 
> [1] Case study: git log -p v0.9.9..v0.9.10 src/libvirt_public.syms
> shows 9 commits adding 9 APIs among 7 authors:
> 0b7ddf9e - trivially in order
> adb99a05 - appending happened to also be sorted order
> 1f7aa0ac - irrelevant (removing TABs, not adding symbol)
> 6714fd04 - added in sorted order
> 8f8b0802 - appended, out of order
> e1eea747 - re-sorted previous addition, and added in sorted order
> 02af3e13 - added in sorted order
> c471e55e - added in sorted order
> 99fd69c3 - added in sorted order
> 
> The following patch changes the remaining 37 releases to do likewise,
> and documents the practice.
> 
> Signed-off-by: Eric Blake <eblake at redhat.com>
> 
> ---
> 
> I'm not sure if we want this patch - it got much bigger than I was
> expecting. 37 releases is less than half of the total versions in the
> file, but larger than the number of releases that were sorted (where
> it is not even obvious if that was always intentional or by luck).  We
> could also decide to adopt a policy of listing symbols in the same
> order as remote_protocol.x (although not all symbols go over RPC), but
> that seems like it would be even more churn and harder to enforce.
> 
> Ideally, if we DO want this patch, we should also teach 'make check'
> via src/check-symsorting.pl how to enforce it on the public file; as I
> did not do that, this is marked RFC.

I've no objection to sorting the public sym file.

If we do this though, I'd consider check-symsorting.pl to be a must
have. Too much liklihood of regression if we rely on reviewers
catching it.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list