This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Consensus on high-level objective of cleanup, refactor or rework patches.
- From: Joseph Myers <joseph at codesourcery dot com>
- To: Carlos O'Donell <carlos at redhat dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>, Florian Weimer <fweimer at redhat dot com>, Adhemerval Zanella <adhemerval dot zanella at linaro dot org>, Andreas Schwab <schwab at suse dot de>, Szabolcs Nagy <szabolcs dot nagy at arm dot com>
- Date: Fri, 14 Feb 2020 21:30:49 +0000
- Subject: Re: Consensus on high-level objective of cleanup, refactor or rework patches.
- Ironport-sdr: Z+qAaZ+rspOD2x3FEi3tOJLJ+jdsMnGgYJuQV/RGEiY9u2xb4dy1AbBMfM+v8s2o1U9JdyZR9M J80QWLTZqvZqD+YrJGCmqNiGbSw6t7TGZBoYpRygkCp09HOhKJ1xcHxDo0l5icL0Jjzr2edbVa 7gMAhRcsKlP8nenR7DWegIYrFVbKUgTGbtUeGQnF3qQPH8j5TKDjOycTmXbZeoV1JDqdJnw5yS Ts8T03gekTU3cOVOuhAQ3Yk0t2Afo8YIj0CN+BsYsp9li13C22HFC+psu2SMa2A+uQhUB6FrC0 +cs=
- Ironport-sdr: 6loO2elIEvAg8WCU12kOxAUpgegeA8MkKsUj8skpqY3xmF6q0vakp8JZIbgk7kHAaquLS9eb4X KeWqyUZ6jqJMSIIJUOE5gPzAN9Zs+fjf9TDN4maBPovtzY9Hz9w1TvYfoUMvSeX1T7k1COwsIj jWORxGZX5kqCV45hdJPPziRxxw7rlXKL/MFDZSPuX6Hb4LoKYxyUpiX4fdgb5fxCszauw0pC72 cYghl8NY2wIERA8ygE57VgtxbaqoLz7Y97OEIA7Xi+t169XKDaK80tLBpBtEVa59ubmMd3RmTt YqQ=
- References: <CAEMqeSqcGvsmuR9XwqG4v7UkTeBGpcsAD-RHjg9FBPiUZZW93A@mail.gmail.com> <alpine.DEB.2.21.2002141714470.15736@digraph.polyomino.org.uk> <CAEMqeSp5BKBtqjMDMtviFrY+71ZfTcVnvLgp6LvEdj4ut6Nvtg@mail.gmail.com>
On Fri, 14 Feb 2020, Carlos O'Donell wrote:
> In the cases where implementation causes a deviation from what was
> expressed in the initial concept then I expect the trusted developer
> to come back to the community to seek consensus around the new
> problem.
I think the implementation is generally needed to understand better
exactly what the concept is.
Maybe you're trying to get meta-consensus for a not-fully-defined
meta-concept. The sort of things I think of on reading your description
are e.g. all the changes rearranging the code in preparation for
supporting 64-bit times on systems currently using 32-bit times, or the
preparation for binary128 long double on powerpc64le. We have consensus
on the overall design, but there are lots of issues of detail in
individual patches that come up in review and show that we do need to keep
watching and reviewing the individual patches, and monitoring what those
patches imply for the overall design - it would not have been sensible to
treat consensus on the design as consensus for particular patches that
often have issues of their own.
> For example I like Zach's struct-splitting-into-header concept. Should
> we allow any patches that do that to just get committed with assumed
> consensus? Do we assume this is too disruptive?
That's one of the rare more mechanical examples.
If you take, say, Zack's no-nested-includes patch series (reducing the
extent to which one public header includes another), when someone approves
of the concept they are bringing with that approval their own
understanding of what "should" be defined by particular headers, and may
well find issues with a particular change where there seems to be a
significant compatibility issue removing something from a header's
interface; most patches in that series have their own special-case issues
that are described in the commit messages. So while in reviewing those
patches it's probably more useful to concentrate on the special cases and
choices described in the commit message, rather than the more mechanical
parts of the patches, there are clearly things needing review in each
patch. (And distribution build testing would be helpful once those
changes are in, to help detect compatibility issues that didn't show up in
review.)
> Do you have any suggestions for reducing the cost of cleanups or refactoring?
Reviewers should consider carefully exactly what needs reviewing when
reviewing a particular patch or patch series. In some cases, especially
given a good commit message, this may well concentrate on the higher-level
choices and special cases involved in that particular patch, and on
architecture- and OS-dependencies, and not the parts of the patch that are
clearly implementing the mechanical parts of a previously agreed cleanup,
unless those parts suggest a design issue that needs to be addressed.
--
Joseph S. Myers
joseph@codesourcery.com