On Wed, Nov 13, 2013 at 10:23 AM, Martin Vaeth
<va...@mathematik.uni-wuerzburg.de> wrote:
> Michał Górny <mgo...@gentoo.org> wrote:
>>
>>> As I understand, it tries to solve a "social" issue
>>> (that an ARCH user might set a USE-flag which eventually
>>> pulls in an ~ARCH package) on a technical level
>>> (by forcibly disabling the USE-flag for the user).
>>> Solving social problems by technical means is never a good
>>> idea:
>>
>> Then you don't understand it.
>>
>> The basic issue is that we couldn't stabilize a package without
>> stabilizing all of its optional dependencies.
>
> Exactly: The social issue is that you have this rule fixed
> without any exceptions and do not want to discuss about exceptions.
>
>> There were even cases when I had to revbump a package in order to keep
>> 'limited' revision to stabilize and 'full' to keep testing.
>
> The social issue has to be solved and it has to be clarified
> when packages are allowed to have USE-flags depending on unstable
> packages which the user has to resolve when he wants them.
>
>> Just to be clear -- this isn't only a social issue. This is a valid QA
>> concern that we had no distinction between 'flags that are fine on
>> stable' and 'flags that are not'. If some flags work and some do not,
>> resulting in 'unsatisfiable dep' errors, this is technical.
>
> No. The user has to be told that he *should* not use such certain
> flags on a stable system. This can happen by portage reporting
> a message that some USE-dependency is pulling in an unstable package,
> but it can also happen in a different way.
> The use.stable.mask "solution" is to not inform the user but just
> decide behind his back that he cannot use the flag and enforce
> this decision.
> Instead, e.g. one can let portage report if some useflag described
> in use.stable.mask needs to be disabled, or one can use some
> "I_KNOW_WHAT_I_AM_DOING" name, or whatever. There are many ways
> of reporting. But forcing a decision on the user without even
> communicating reasonably why this decision was forced is very bad IMHO.

Let's talk about the development workflow we use for a minute:

Say I want to stabilize a package on a given architecture. One of the
first tests I run is to change KEYWORDS and run repoman. repoman will
check to ensure that all dependencies are at least visible with the
given set of KEYWORDS. This is a fairly important check, and it often
prevents major fuck ups.

If we were to remove use.stable.mask, I as a developer would require
some alternate way to declare a use flag unsupported on stable so that
repoman knows not to check the optional dependencies for it with
stable keywords.

This is not a completely social issue; there is a very real
technical/QA issue that needs to be addressed on the development side.
If you can figure that out, we can talk about changing the end-user
experience.

Reply via email to