Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
The logic of Gentoo's keywords versus the SDLC
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
Ormaaj
Guru
Guru


Joined: 28 Jan 2008
Posts: 319

PostPosted: Thu Feb 18, 2010 11:25 pm    Post subject: The logic of Gentoo's keywords versus the SDLC Reply with quote

A given package can have three states:
  • Considered unstable/testing by upstream.
  • Considered stable by upstream, testing by Gentoo.
  • Considered stable by both Gentoo and upstream.
There are three "transition functions" between package states:
  • Large changes to or additions of upstream code.
  • Changes to existing upstream code which fix bug, regressions, and security issues.
  • Changes to the way Gentoo builds and installs upstream code.
A Gentoo system is made up of a set of packages which interact with one another. emerge -uDNav @world @system" transitions the whole system state. It's state as a whole is an aggregate of package states in combination with the way Gentoo builds and installs them. This means stability is multidimensional, with bugs either introduced or fixed by either upstream or downstream. Without user intervention, the system states are either all "~arch", or all "arch".
  • With all ~arch, you get a mixture of upstream stable and upstream testing, with a high incidence of downstream bugs. New packages can contain any number of bugs either fixed or introduced by either upstream or downstream.
  • With all "arch", you get all upstream stable and a lower incidence of downstream bugs, but without consideration for the above model, meaning it is possible to have installed packages with bugs fixed upstream in newer versions.
Following this model, the number of undiscovered security bugs and unfixed regressions in packages marked as stable by Gentoo should be approximately equal to those in "upstream stable" packages in ~arch except in cases where bugs are artifacts of the way Gentoo builds and installs software. So the overall effect of running "arch" doesn't translate to mean "stable" or "secure". It just means "old" and little more.

The linux kernel is a good example. With both feature and bugsfix releases, stability should be a variable of the tail element of the version tuple, while features correspond to the second-to-last member. This applies similarly to other packages like Firefox or Wine where most people probably want (or it is even advised) to always run the very latest stable version.

Gentoo is high maintainance for end-users because the categories of "~arch" and "arch" don't reflect this logic. While no defaults will satisfy everyones needs, and Gentoo is all about choice, the "stable and unstable branches" of Gentoo are at two extremes which diverge significantly from nearly everyone's needs. An ideal solution would be to have the right package metadata which indicates stability along all relavent dimensions plus an inference engine to determine what to install based upon a set of constraints - a bit like how portage handles package dependencies. One might for example want all packages in @world to run the latest upstream stable version without pulling in any alpha or beta versions. Not only does this potentially require a lot of either masking or unmasking, it requires that the users pay attention to what is going on upstream for all of the packages they have installed - regardless of whether you use Gentoo's whitelist (arch) or blacklist (~arch) package set as a starting point. Running a huge set of packages like KDE from the overlay is another example which requires the clumbsy method of symlinking a keywords list into the portage configs.

Masks and hardmasks help, but they don't really translate intuitively to the reality of the SDLC. Surely a better system can be invisioned that would reduce headaches for both users and developers. Perhaps something as simple as adding a few more categories in addition to merely marking as either ~ or not.
Back to top
View user's profile Send private message
depontius
Advocate
Advocate


Joined: 05 May 2004
Posts: 3509

PostPosted: Fri Feb 19, 2010 12:32 am    Post subject: Reply with quote

You've introduced a new acronym, "SDLC". What does it mean? Perhaps it's obvious to software developers, but I'm not one.

I got onto this thread because basically Gentoo flags are binary. When I saw the title, I was thinking of USE flags, now I see you're talking arch flags. Still, they're basically binary. Though there is some syntactic sugar to make things like VIDEO_CARDS look multivalued, look inside the ebuild and it appears to get broken up into a bunch of device-level binary flags. Obviously you've gone in a different direction than I had upon seeing the title, but still similar, in a way.

So imagine for a moment that portage accepts multivalue flags: With what you've suggested, "arch" could take on the 4 combinations of upstream and gentoo stable and unstable. For compatibility purposes, "arch" becomes stable/stable and "~arch" would need a little more definition work, which is really what you've suggested. As for USE flags, what we have now becomes 'USE="flag1 -flag2"' becomes 'USE="flag1=T flag2=f"', and things like VIDEO_CARDS become truly multivalued. I'm thinking that other functions which are currently split into multiple binary-value flags could become multi-valued, though at the moment I can't give an example. The idea would be to have plumbing which could run existing ebuilds and portage configuration, yet have extra power under the hood for a migration target, or special needs, sooner.
_________________
.sigs waste space and bandwidth
Back to top
View user's profile Send private message
Ormaaj
Guru
Guru


Joined: 28 Jan 2008
Posts: 319

PostPosted: Fri Feb 19, 2010 1:53 am    Post subject: Reply with quote

Sorry, SDLC is a systems analysis term which has multiple (but related) meanings, either systems development life cycle or software development life cycle which are mainly used in a business setting, but I'm not sure of the best analogous term for the open-source/collaborative/distributed development process of which there are many styles.

If there were a need for finer grained control over useflags it would probably be something developers would be more concerned with than users. My only gripe with use flags is the difficulty in organizing them. Generally I have to do things like comparing the output of "eix -U" and "eix --installed-with-use" to determine whether I want to handle a specific useflag additively or subtractively with package.use or globally in make.conf, and it takes a lot of manual checking to cut down on redundant entries in these files. Occasionally flags become depreciated or not applicable to my set of installed packages which adds more configuration cruft. Keeping flags, keywords, and masks up-to-date is really a nusciance when maintaining multiple systems. I have a few computers I don't update very often and sometimes I just throw away their configs and start over based upon those of my main machine because it would be very hard to spot the differences and make changes where applicable to a specific system.

A bigger related issue is portage's lack of a package atom syntax for dealing with masks and keywords on a per-overlay basis. Paludis handles this better IIRC; I haven't used it for a few years. There are many other package-specific things portage could probably handle better such as multiple compilers and package-specific build flags.

The biggest issue of all though IMO is that the arch flags aren't very meaningful when it comes to stability. It takes a lot of ongoing modification from either ~arch or arch in order to get things where most people probably want them. The complexity comes from the difference between what constitutes the stability of an individual package, and the stability of a system as a whole (and the fact that Gentoo can only officially support the latter).

For example, I can tell just from looking at the version numbers that vanilla-sources-2.6.30.10 contains bugfix changes from 2.6.30.9, which is currently the newest Gentoo has marked as stable from the 2.6.30 series. The fact that 2.6.30.10 exists tells me that 2.6.30.9 contained bugs, and the changes made between these versions were likely to fix more issues than were introduced due to the lack of feature changes. This means the only reason someone would want 2.6.30.9 over 2.6.30.10 is if they care about Gentoo's redundant testing phase, and feel that the POTENTIAL downstream issues introduced from the version bump outweigh the CERTAIN bugs fixed in the upstream bump.

However, it gets worse, because ~arch not only pulls in these changes but also alpha/beta versions that nobody considers stable. Even after upstream releases their *.0 version after their own testing period, Gentoo has it's own testing period which can be for differing reasons depending upon bugfix or feature release and the maturity of ebuilds and downstream patches, which are all things which factor in to the estimated package stability. The total effect is that running a system with no keyword overrides is inappropriate for literally everyone.

Gentoo already has plenty of control. You can customize however you want. What needs to be done is to formally model how software development actually works and then create a system for organizing various things that corresponds with that model.
Back to top
View user's profile Send private message
AllenJB
Veteran
Veteran


Joined: 02 Sep 2005
Posts: 1285

PostPosted: Fri Feb 19, 2010 12:33 pm    Post subject: Reply with quote

For some reason "reality of the software development lifecycle" jumped out at me while scanning this wall of text. After that I couldn't read any further because I was laughing too much.

You seem to have very little experience of development in:
a) Distros
b) Rolling distros like Gentoo
c) Open source
d) The real world (ie. outside of academia)

With regards to per-overlay syntax for package.*, I believe this is either already implemented in portage 2.2 or planned.

Testing isn't a blacklist. Everything (that's considered stable upstream) starts as testing, then gets whitelisted as stable. If there's a blacklist, it would be negative (eg. -x86) keywords and package.mask.

I don't believe you can compare, to take your example, kernel development to devleopment of the Gentoo package tree. The kernel is a single code base with everything connected. That's not at all true of the package tree - while there are dependencies and such, the links are weak and can easily not exist at all. The kernel is versioned, where as it's practically impossible to version the Gentoo package tree - you can snapshot it, but it has no real version in any terms.
Back to top
View user's profile Send private message
Ormaaj
Guru
Guru


Joined: 28 Jan 2008
Posts: 319

PostPosted: Fri Feb 19, 2010 3:24 pm    Post subject: Reply with quote

AllenJB wrote:
Testing isn't a blacklist. Everything (that's considered stable upstream) starts as testing, then gets whitelisted as stable. If there's a blacklist, it would be negative (eg. -x86) keywords and package.mask.
I'm not sure what I wrote that you feel disagrees with this. I am familiar with Gentoo's process.

AllenJB wrote:
I don't believe you can compare, to take your example, kernel development to development of the Gentoo package tree. The kernel is a single code base with everything connected. That's not at all true of the package tree - while there are dependencies and such, the links are weak and can easily not exist at all. The kernel is versioned, where as it's practically impossible to version the Gentoo package tree - you can snapshot it, but it has no real version in any terms.
You've misread or misunderstood. Nothing here implies that the development of the kernel is similar to Gentoo's package tree. The kernel is mentioned as part of an anecdote and was chosen only for it's versioning scheme to illustrate a point that you've clearly missed. What you call "snapshots" were referred to as "states". I never mentioned Gentoo as having versions. This is irrelevant to the topic.
Back to top
View user's profile Send private message
devilheart
l33t
l33t


Joined: 17 Mar 2005
Posts: 848
Location: Villach, Austria

PostPosted: Fri Feb 19, 2010 4:17 pm    Post subject: Reply with quote

Ormaaj wrote:
For example, I can tell just from looking at the version numbers that vanilla-sources-2.6.30.10 contains bugfix changes from 2.6.30.9, which is currently the newest Gentoo has marked as stable from the 2.6.30 series. The fact that 2.6.30.10 exists tells me that 2.6.30.9 contained bugs, and the changes made between these versions were likely to fix more issues than were introduced due to the lack of feature changes. This means the only reason someone would want 2.6.30.9 over 2.6.30.10 is if they care about Gentoo's redundant testing phase, and feel that the POTENTIAL downstream issues introduced from the version bump outweigh the CERTAIN bugs fixed in the upstream bump.
a new version of package A is released as stable by upstream and is added to portage in ~arch. a couple days later someone discoverse a bug which can break your system. this is not the behaviour of a stable package and gentoo arch system shields user from this situations (as long as they run a stable system). this is also why a package needs further testing by the distro
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2072
Location: /usa/utah

PostPosted: Fri Feb 19, 2010 4:58 pm    Post subject: Reply with quote

Ormaaj wrote:
Gentoo already has plenty of control. You can customize however you want. What needs to be done is to formally model how software development actually works and then create a system for organizing various things that corresponds with that model.


Huh?

I was mostly understanding you up until that point.

Again, though, I would guess that you might not be too familiar with managing *many* multiple open source / community projects. Organization would be awesome. Taking what you can get is the reality.

Anyway, I'd still be interested to hear more, since I'm a bit confused at what you're proposing.
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2072
Location: /usa/utah

PostPosted: Fri Feb 19, 2010 5:08 pm    Post subject: Re: The logic of Gentoo's keywords versus the SDLC Reply with quote

Ormaaj wrote:
One might for example want all packages in @world to run the latest upstream stable version without pulling in any alpha or beta versions.


Okay, I was rereading the whole thing trying to understand it, and I keep tripping over assumptions that you have that are just plainly incorrect.

For that one, what upstream labels as a release is incompletely irrelevant to its state of stability. Things can be in alpha, beta, release candidate, or even a VCS snapshot and be "stable".

The other trend I kind of notice is that while you believe our goal should be to have "stable" in Gentoo be the versions across the board with the fewest bugs, while that it is a laudible goal, it's not an attainable one due to manpower. Again, we take what we can get.

If we had the manpower to process every security bug and stability issue in realtime, then I could see your theoritical approach having merit. But when you factor in the human element of manpower, it breaks down to a more *practical* scenario where developers handle the most pressing needs first, and the ones they are interested in second.
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2072
Location: /usa/utah

PostPosted: Fri Feb 19, 2010 5:09 pm    Post subject: Reply with quote

One last thing I keep thinking to myself is, I imagine you'd make an interesting dev, and if you haven't considered applying to be one, to pleaes think about it. :)

(Don't let that be an excluded invitation though -- we still need devs for lots of stuff to help out, if anyone is interested)
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2072
Location: /usa/utah

PostPosted: Fri Feb 19, 2010 5:12 pm    Post subject: Reply with quote

Ormaaj wrote:
If there were a need for finer grained control over useflags it would probably be something developers would be more concerned with than users. My only gripe with use flags is the difficulty in organizing them. Generally I have to do things like comparing the output of "eix -U" and "eix --installed-with-use" to determine whether I want to handle a specific useflag additively or subtractively with package.use or globally in make.conf, and it takes a lot of manual checking to cut down on redundant entries in these files.


I'd be interested in hearing more about the problem in detail, as I guess I don't encounter it .. but then again, I've been using Gentoo for a loooong time, and I'm probably not even affected by the headaches of most users since I know my way around.

Anyway, if you don't wanna post it here, feel free to drop me an email. :)
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2072
Location: /usa/utah

PostPosted: Fri Feb 19, 2010 5:16 pm    Post subject: Reply with quote

Ormaaj wrote:
The biggest issue of all though IMO is that the arch flags aren't very meaningful when it comes to stability. It takes a lot of ongoing modification from either ~arch or arch in order to get things where most people probably want them. The complexity comes from the difference between what constitutes the stability of an individual package, and the stability of a system as a whole (and the fact that Gentoo can only officially support the latter).


The reality is actually quite different from the "policy."

Anecdotally speaking, the policy card is generally played by developers IF the user is doing something outside the realm of expectation that developer(s) supporting the package has run into.

For instance, I help maintain mplayer, and will happy fix bugs as best I can whether the package is marked stable or not. But, if someone runs the unmasked version AND flips on all these flags that are marked as EXPERIMENTAL and builds against an external library or something like that, and THEN they have the gall to expect me to "support" them, that's when I would politely decline, and pull out the "we don't support that configuration."

In most cases, it seems like "support" is extended as far as the user's reasonable application of the system is. The more offbeat they get, the less we can do to help them out -- it becomes less and less supporting Gentoo, and more a matter of personalized tech support for their situation.
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
ccp
n00b
n00b


Joined: 14 Sep 2007
Posts: 62

PostPosted: Fri Feb 19, 2010 5:22 pm    Post subject: Reply with quote

My interpretation of his propose. A profile with English syntax :)

Code:
# My stable profile
I want my system very stable.
I want my system lean and mean.
However I know package abc is unstable at version 1.2.3 but is required, so I accept.
However I know package def is unstable at version 2.3.4 but is required, so I accept.

I want my system can display 3D image.
I want my system can access network.
I want my system can read office document.
I want my system can play music.

My system have hardware list as follow,

* CPU is "Intel"
* 4GB ram
* Video card brand is "Famous brand"
* Sound system is "Famous sound system"
* Please find the rest automatically.


May be some one can write a compiler/interpreter with expert system for above to generate /etc/{make.conf,portage} :D :D :D
Back to top
View user's profile Send private message
beandog
Bodhisattva
Bodhisattva


Joined: 04 May 2003
Posts: 2072
Location: /usa/utah

PostPosted: Fri Feb 19, 2010 5:26 pm    Post subject: Reply with quote

Ormaaj wrote:
However, it gets worse, because ~arch not only pulls in these changes but also alpha/beta versions that nobody considers stable. Even after upstream releases their *.0 version after their own testing period, Gentoo has it's own testing period which can be for differing reasons depending upon bugfix or feature release and the maturity of ebuilds and downstream patches, which are all things which factor in to the estimated package stability. The total effect is that running a system with no keyword overrides is inappropriate for literally everyone.


You're forgetting one key element that Gentoo provides in the scenario which other distributions do not -- the ability for the user to decide what they want on their system.

Your theoritical approach is more attuned towards something like a binary distribution where the user is wholly dependent upon the distribution to decide what is stable and what isn't. Gentoo's model is to handle the workload they can, make the decision and present to the users saying, "We believe this is the most stable, best version to use right now, and we'll support it to the best of our ability, BUT you are also free to use whatever version you see fit to apply."

That is the awesome thing about Gentoo that I totally love, and has attracted me towards it as a distribution model since day one. The fact that I am not pigeon-holed into a fixed set of packages and versions decided by upstream, and deviance in any degree is frowned upon or technically can be somewhere between incompatible and impossible.

It's often said that Gentoo is all about choice -- and it's true. You can't factor that element out of the process of deciding what is the best set of software to run.

Anecdotally, again, there are people who hold up certain Linux distributions and say, "I only run $(distro) because it provides the most stable environment." My retort to that is, "We get a good Linux system administrator to run $(distro) and then maintain it and KEEP it stable." The great thing about Gentoo is it can shift the responsiblity of stability from the distribution to the user. It empowers them to make their own decisions and mold the setting to their specific needs, instead of forcing everyone to use the same set of software.
_________________
If it ain't broke, tweak it. dvds | blurays | blog | wiki
Back to top
View user's profile Send private message
Hupf
Tux's lil' helper
Tux's lil' helper


Joined: 11 Sep 2005
Posts: 112
Location: Germany

PostPosted: Fri Feb 19, 2010 6:00 pm    Post subject: Reply with quote

beandog wrote:
Gentoo's model is to handle the workload they can, make the decision and present to the users saying, "We believe this is the most stable, best version to use right now, and we'll support it to the best of our ability, BUT you are also free to use whatever version you see fit to apply."

That is the awesome thing about Gentoo that I totally love, and has attracted me towards it as a distribution model since day one. The fact that I am not pigeon-holed into a fixed set of packages and versions decided by upstream, and deviance in any degree is frowned upon or technically can be somewhere between incompatible and impossible. [...] The great thing about Gentoo is it can shift the responsiblity of stability from the distribution to the user. It empowers them to make their own decisions and mold the setting to their specific needs, instead of forcing everyone to use the same set of software.


Sometimes, this model can lead to problems with bug reporting to upstream. For example, they might not accept bugs for the gentoo "stable" version because they released their latest "stable" release a week ago which is much newer. Similarily, gentoo ~arch might correspond (in the same case) to some alpha release (as far as upstream is concerned) which won't be supported because of still being in heavy development.

I second the view of Ormaaj in that there is no way to see how stable the package is considered by upstream. This should be a good metric for most run-time bugs in the software itself, whereas many downstream bugs would rather result in build problems.
I'd suggest a tri-state model instead of the current stable/testing differentiation: {stable - tested upstream+downstream}, {testing - tested upstream only}, {unstable - not tested upstream}. Package masks should not be used for this, but rather only for explicit blacklisting as it is done today.

This model would make it easier to package maintainers to provide new versions to cautious users ([testing], relying on upstream) and allow users to easier select the level at which they want to test (individual packages' internal functions or just compatibility/configuration problems on a gentoo system). That way "bugfix" releases by upstream could get testet by a wide user base faster, since I assume many users are reluctant of ~arch because too many packages include fresh development releases with known bugs or missing features.

The main point however would be the clear definition of what [level of reliability] every state actually guarantees.


Last edited by Hupf on Fri Feb 19, 2010 6:32 pm; edited 1 time in total
Back to top
View user's profile Send private message
Ormaaj
Guru
Guru


Joined: 28 Jan 2008
Posts: 319

PostPosted: Fri Feb 19, 2010 6:13 pm    Post subject: Reply with quote

devilheart wrote:
Ormaaj wrote:
For example, I can tell just from looking at the version numbers that vanilla-sources-2.6.30.10 contains bugfix changes from 2.6.30.9, which is currently the newest Gentoo has marked as stable from the 2.6.30 series. The fact that 2.6.30.10 exists tells me that 2.6.30.9 contained bugs, and the changes made between these versions were likely to fix more issues than were introduced due to the lack of feature changes. This means the only reason someone would want 2.6.30.9 over 2.6.30.10 is if they care about Gentoo's redundant testing phase, and feel that the POTENTIAL downstream issues introduced from the version bump outweigh the CERTAIN bugs fixed in the upstream bump.
a new version of package A is released as stable by upstream and is added to portage in ~arch. a couple days later someone discoverse a bug which can break your system. this is not the behaviour of a stable package and gentoo arch system shields user from this situations (as long as they run a stable system). this is also why a package needs further testing by the distro
Your point regarding Gentoo's testing period in addition to a possible upstream testing period is of course important, but to varying degrees depending upon the needs of the user, which package it is, and the nature of the upstream changes. I addressed this:
Quote:
With all "arch", you get all upstream stable and a lower incidence of downstream bugs
(the entire reason for such testing)
Quote:
Following this model, the number of undiscovered security bugs and unfixed regressions in packages marked as stable by Gentoo should be approximately equal to those in "upstream stable" packages in ~arch except in cases where bugs are artifacts of the way Gentoo builds and installs software. So the overall effect of running "arch" doesn't translate to mean "stable" or "secure".

Quote:
Gentoo has it's own testing period which can be for differing reasons depending upon bugfix or feature release and the maturity of ebuilds and downstream patches, which are all things which factor in to the estimated package stability.


There is always as you said the possibility of an undetected catastrophic bug that Gentoo's testing period is intended to catch. This applies to all packages, so all packages are automatically put into the category of "unstable". Of the unstable packages, some are feature releases considered stable by upstream but not by Gentoo; some are considered unstable even by upstream and are marked as alpha or beta; and some are only to fix known bugs in packages previously considered stable by both upstream and downstream. The central problem is that Gentoo lumps all of these into a single category. This latter case proves that "gentoo stable" does not necessarily imply stability, and in fact WILL sometimes cause a decrease in stability except in the remote chance of an undetected catastrophic problem. That chance is not always equal, and prioritizing that chance over packages which are guaranteed to otherwise fix bugs and therefore increase stability is not always the right option. This means that it is up to users to manually keyword or mask every individual package from the extreme defaults, whether it is whitelist the unstable stuff from blacklisted defaults (user running stable) or blacklist the the unstable stuff from whitelisted defaults (user running unstable).

I'm not even proposing a definite solution here, just pointing out an issue which could potentially be handled better.

EDIT: Ack... lots of people posted at once while typing this... have to read them still! :P
Back to top
View user's profile Send private message
ccp
n00b
n00b


Joined: 14 Sep 2007
Posts: 62

PostPosted: Fri Feb 19, 2010 6:40 pm    Post subject: Reply with quote

So far I fail to understand your definition of "Gentoo software management issue". You seems to key on "arch" versus "~arch"; where "arch" mean stable and "~arch" mean unstable. I think you surely understand stability is relative thing. when I said this thing is stable it not necessary mean the same to you. In Gentoo the "arch" branch only mean it is more "stabl-er" then the "~arch" branch. And hence it explain why there only two branches. If we try to make it three state then it will be even more confusing.

When it come to bug reporting you need to understand it is not Gentoo developer's responsibility for software bug, that belong to original developer/project. Gentoo develop can only responsible to its usability in relative to the current portage content. So it is same reason the Gentoo developer can mistakenly mark a software in to "arch" branch and it does not mean that the "Gentoo software management" have issue.
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 10587
Location: Somewhere over Atlanta, Georgia

PostPosted: Fri Feb 19, 2010 6:41 pm    Post subject: Reply with quote

Ormaaj wrote:
...The central problem is that Gentoo lumps all of these into a single category. ...
I don't think that this is, in practice, true, at least most of the time. Over the last few years, Gentoo has moved more and more of its bleeding edge development into overlays. Each such overlay provides yet another binary toggle switch that a particular Gentoo user can decide to throw. I think this informally provides much of the additional control you're speaking of.

However, I think the formal mechanisms you're talking about are interesting. I'm afraid, though, that implementing them will founder on manpower issues. There have been, from time to time, discussions of splitting "stable" into more fine grained categories to make Gentoo, for instance, more palatable to the enterprise market. They've all (to my knowledge) ended with the conclusion that the manpower wasn't there.

- John
_________________
I can confirm that I have received between 0 and 499 National Security Letters.
Back to top
View user's profile Send private message
devilheart
l33t
l33t


Joined: 17 Mar 2005
Posts: 848
Location: Villach, Austria

PostPosted: Fri Feb 19, 2010 8:17 pm    Post subject: Reply with quote

Ormaaj wrote:
Your point regarding Gentoo's testing period in addition to a possible upstream testing period is of course important, but to varying degrees depending upon the needs of the user, which package it is, and the nature of the upstream changes.
the first need of a user is a stable machine, even if he/she does not perceive it as a priority. having bleeding edge software is pointless if it crashes a couple times each day

Quote:
Of the unstable packages, some are feature releases considered stable by upstream but not by Gentoo
what upstream considers stable is irrelevant, upstream does not answer to users if something go bad, gentoo does.
Quote:
The central problem is that Gentoo lumps all of these into a single category.
this is not really an issue because that kind of software is hard masked besides being keyworded introducing a third level in stability chain. the point is that if a user wants to use sw that has not been marked as stable by gentoo then he/she must know what he/she is doing and live with the consequences
Quote:
This latter case proves that "gentoo stable" does not necessarily imply stability
what gentoo stable implies is more stable than what upstream considers stable
Quote:
and prioritizing that chance over packages which are guaranteed to otherwise fix bugs and therefore increase stability is not always the right option
you cannot say that a packages is guaranteed to fix bugs without an extensive testing. regressions are always behind the corner

correct me if i am wrong, but are you saying that keeping a gentoo box 100% stable (no ~arch or unmasked packages) means generating a potentially unstable box because bug fixing packages are not marked stable soon enough?
Back to top
View user's profile Send private message
timeBandit
Bodhisattva
Bodhisattva


Joined: 31 Dec 2004
Posts: 2719
Location: here, there or in transit

PostPosted: Fri Feb 19, 2010 9:21 pm    Post subject: Reply with quote

Ormaaj wrote:
[P]rioritizing [older versions in Gentoo "stable"] over packages which are guaranteed to otherwise fix bugs and therefore increase stability is not always the right option.
There is a critical flaw in this reasoning: The deduction that bug-fix releases necessarily improve stability for all Gentoo users. Remember, "there is always one more bug." An upstream "repair" can easily break things in the Gentoo world because our users run combinations of software that upstream never tested.

Suppose upstream package X depends on three libraries A, B and C. Let's say upstream is diligent and tests their package on the current stable and current testing release of each library--eight combinations. All is well, their bug fixes all work, so they mark their latest version "stable" and release it.

Further suppose that when Gentoo picks it up, it enters our tree to live with two testing versions of package A (upstream testing and stable release), two stable versions of package B and one unstable (two prior plus current), and three stable and two unstable versions of package C--one of which is a new release that upstream for X hasn't even seen yet.

Now package X has to cope with thirty possible combinations (2x3x5) of the libraries it depends on, only eight of which were tested upstream. This is before we even factor in the different architectures Gentoo runs on, some of which upstream may have never touched. Next consider that most packages depend on a lot more than three other packages. Throw hardened systems into the mix and you double the combinations again. Finally, recall that at any given time the Gentoo community as a whole runs at least 2-3 different versions of GCC/glibc--maybe more--per architecture.

Now do you see why what you describe is--in a practical sense--impossible?

Quote:
This means that it is up to users to manually keyword or mask every individual package from the extreme defaults, whether it is whitelist the unstable stuff from blacklisted defaults (user running stable) or blacklist the the unstable stuff from whitelisted defaults (user running unstable).
Yes--by design. You pick which end of the spectrum you want to live on--current but not well-tested vs. well-tested but not too current--and use all the configuration options of Portage to manage the exceptions as required.

Most users are not affected by all bugs in all packages they use, because usage patterns vary and not everyone triggers the conditions required to manifest every bug. Thus your thesis that all users will necessarily benefit from all bug fixes is not valid. Extreme configurability empowers users to address the bugs/missing features that concern them most, while expressing a general preference for the rest.

As already mentioned, a massive infusion of manpower could make much of the impossible, possible. But this is tedious, grunt work and you won't find volunteers lined up around the virtual block to take on the job.
_________________
Plants are pithy, brooks tend to babble--I'm content to lie between them.
Super-short f.g.o checklist: Search first, strip comments, mark solved, help others.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum