Michał Górny <mgo...@gentoo.org> wrote: >> If this is such a big problem, maybe we should be discussing how to >> redesign things to improve it? > > Like, by not using eclasses and instead inlining all the stuff?
There are other ways. One way to mitigate the problem might be to require that eclasses contain some # @VERSION: major.minor-revision line and that the metadata cache of an ebuild contains that version number (or at least the major component of it) instead of an md5 sum. Then the commiter of the eclass has full control whether a metadata regeneration will happen or not: For trivial changes (see below), the committer simply does not increase that version number (or increase only minor-revision), and one could agree that a rebuild of the metadata only happens if the major version number of an eclass changes. By "trivial changes" I mean in this connection not only changes in comments but also minor changes in functionality or even in the API: The only strict requirement is that the major version has to increase if the eclass change can induce a change in the metadata of some ebuild using it (e.g. if a value printed by some function changes which might involve IUSE, REQUIRED_USE, DEPEND, ...)