Subject: bug#37774: 27.0.50; new :extend attribute broke visuals of all themes and other packages

From: Eli Zaretskii <[email-masked]>
Date: Wed, 23 Oct 2019 21:04:08 +0300

> Cc: [email-masked]
> From: Dmitry Gutov <[email-masked]>
> Date: Wed, 23 Oct 2019 19:12:26 +0300
> 
> >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=37774#233
> > 
> > AFAIU, that's a list of faces one particular user decided to customize
> > to have them extended.  It's a far cry from the list of faces that
> > actually need to be extended, lest some important functionality will
> > suffer.  IOW, we need some rationale for each face, so that we could
> > consider that and decide whether or not to extend each one by default.
> 
> Magit's maintainer will decide for each face, sure.

I don't mind if package maintainers want to make that decision by
themselves, but if that is the case, I don't think there's anything
left to do for this bug report?  I though some action will be required
from us, that's why I asked all those questions.

> But I don't really see much a difference between having 2 and 20 faces 
> that will need to be updated, if it's within one package.

It's a difference between a small number and a very large number.
Theoretically, someone could argue that a change that requires to
modify lots of faces shouldn't be so unconditional, or shouldn't be
the default, or should have a "fire escape", or something to that
effect.  But if people don't mind changing their faces, then such
fears have no basis, and we are good with what we have.

> Even if it's just 2, do we have a recommended way to write their 
> definitions in third-party packages in a way that's compatible with 
> Emacs 26?

The best way is to inherit from some suitable parent face, I think.

> > If too many faces in unbundled packages indeed need to change in that
> > way, we should consider additional measures.  That's why we need good
> > reasons for extending each face, not just "because they were before"
> > or because people were used to see them extended.
> 
> Those are not the worst reasons, though.

Not sure I understand in what sens did you use "the worst" here.