On Mon, Aug 26, 2013 at 3:38 AM, Michał Górny <mgo...@gentoo.org> wrote:
> I've noticed that some people are using internal eclass functions
> in their ebuilds. I mean, functions that are explicitly marked
> @INTERNAL and that start with an underscore. What should I do to them?

Seems crazy to need a written policy to not do something so dumb...

> What should I do now? Mask the ebuild? Proceed with changing
> the function and break it?

Seems like masking and changing is the most appropriate course of
action.  By all means log a bug and give the maintainer a week or
whatever.

The only exception I'd make would be for important packages.  I
wouldn't make it because their maintainers are important, but because
we care about our users.  Obviously we can't go masking bash or
whatever.

However, we should in general consider the use of internal functions a
QA issue, and follow-up with the devs doing so.  Maybe burning at the
stake is a bit harsh since the issue hasn't come up before, but there
is no excuse for this.

>
> Or maybe do we need to have GPG signature verification of bash
> tracebacks in every internal function to prevent developers from using
> those?

This is not a technical problem, it is a people problem.  If any
internal functions lack underscores or are referenced in the
devmanual/etc those should be fixed, and /maybe/ a repoman warning
would be helpful (really?  a developer might not realize they've used
an undocumented internal function?).

Sure, maybe some of those internal functions are useful and should
turn into published APIs.  Devs are welcome to step up and do just
that if it makes sense (and following the normal eclass process).
However, devs are not welcome to just use internal APIs and then make
users deal with the aftermath when ebuilds break.  Using internal APIs
is bad practice - if anybody doesn't already understand why they're
probably on the wrong list.

Rich

Reply via email to