At this point I've made a couple suggestions, and developers have voiced either support or objections, and raised some good arguments either way. I'm hoping this email will summarize the three suggested approaches, their pros and cons, and we can eventually converge on a single solution. Proposed solutions: I. "stable" keyword ------------------- pros - not tied to architecture keywords - not dependent on order of keywords - clearly nominates an ebuild as stable per the package maintainer without ambiguity - it's easy to tell which packages are following this standard and which ones are not cons - requires developer behavior change (marking ebuilds with "stable" keyword) - requires changes throughout the tree - uses another keyword - no indication of maintainer's arch (might be considered good or bad) - *requires* changes to portage on *user* systems to ignore/handle the "stable" keyword, otherwise portage spits out this error: IOError: Profile dir does not exist: /usr/local/home/agriffis/portage/profiles/default-stable-1.4 II. "marked keyword" indicates maintainer's arch ------------------------------------------------ pros - not dependent on order of keywords - clearly nominates an ebuild as stable per the package maintainer without ambiguity - easy to tell which packages are following this standard and which are not - doesn't use a new keyword - calls out maintainer's arch(es) - does not require developer behavior change, because it can be handled automatically by ekeyword and repoman cons - requires changes throughout the tree - depends on architecture keywords - *requires* changes to portage on *user* systems to ignore/handle the new marking, otherwise portage spits out this error: IOError: Profile dir does not exist: /usr/local/home/agriffis/portage/profiles/default-+x86-1.4 III. first keyword marks maintainer's arch ------------------------------------------ pros - takes advantage of existing order already present in *some* ebuilds - doesn't require changes throughout the tree, only in packages that aren't already following this standard - doesn't require any changes to portage on *user* systems, only developer systems (repoman and ekeyword changes) - does not require developer behavior change, because it can be handled automatically by ekeyword and repoman cons - dependent on order of keywords - not as unambiguous as the other two approaches - not easy to tell which packages are following this standard and which are not - doesn't use a new keyword - calls out only one of the maintainer's arch(es), so it might be misleading - keywords jump around in the list IV. <maintainernotes> in metadata.xml ------------------------------------- This was suggested by Ciaran, and I'm including it for completeness, though I can't say I completely understand it. Ciaran's reasons were "much cleaner, provides much more information, doesn't imply meaning in an existing field which does not currently provide any information". Ciaran, do you feel like following up with a better explanation for how this would work? Instinctively I'm against it because it requires more work on the part of the package maintainer, and I'm trying to avoid the extra work all around. I *think* that suggestions I and II above both avoid the implication of meaning by making it explicit. Regarding providing "much more information", I'm concerned that could result in duplication of information between the bugs database and metadata.xml, a duplication that the package maintainer has to keep updated. All my objections stated :-) I would still like to hear about it if you think this is the better way to do things. It's possible that I'm missing a key point. Common attributes: - None of the proposed solutions attempts to enforce behavior. - Each provides a lightweight method of communication from the package maintainers to the arch maintainers. - Each can be recognized and maintained with ekeyword/repoman with very little developer behavior change. Personal leaning: I like solution II, "marked keyword", best because it clearly calls out the maintainer's tested arch(es). That seems like valuable information to me. Additionally it doesn't require developer behavior change, since ekeyword could determine automatically (1) you're the package maintainer, (2) you're marking a package stable, (3) what arch you're currently running. (Of course ekeyword would also support explicitly marking instead of automatic.) Not requiring developer behavior change these days is a lot easier than requiring it. We have a lot of developers, and they don't change behavior quickly or easily. The only thing I really dislike about the "marked keyword" approach is that it requires changes in the *user's* portage to handle the marking. But only solutions III and IV avoid that so far. I would like to hear feedback so that we can make a choice, do the necessary steps for implementation, and bring about a positive QA change in the portage tree. Hopefully along with an improvement in the package/arch-maintainer relationship :-) Regards, Aron -- Aron Griffis Gentoo Linux Developer