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.