On Thu, Oct 1, 2015 at 3:08 PM, Ian Stakenvicius <a...@gentoo.org> wrote:
>
>>
>> RDEPEND changes in eclasses Proposal 3: Anytime an RDEPEND in an
>> eclass is changed, the eclass must be revisioned. Proposal 4:
>> Anytime an RDEPEND in an eclass is changed, all ebuilds that
>> inherit the eclass in the gentoo repository must be revisioned.
>
> This one is trickier to deal with.  For starters, after thread
> between yourself and mgorny and I, I think we figured out that there
> wouldn't be an end-user breakage from people that have emerged a
> package eclass-rdepend'ing on one depset, when that depset is
> changed; it just ends up with everyone after the time of the change
> needing the new depset.
>
> There are specific cases where the revbump to rdeps will be
> necessary (and the eclass itself too, *if* keeping the old eclass
> around or differentiating which eclass version is inherited actually
> matters):
>
> - - slotmove operations on a dep in *DEPEND
> - - the addition of blocker atoms due to the introduction of
> conflicting packages
> - - the addition of atoms to address implicit dependencies that were
> missed before (and weren't in the ebuilds)
> - - adjustments to atoms based on changes made to the dependent
> package, with the changes now necessary to prevent breakage.  (IE:
> useflags changed in-place on a dep and the packages inheriting the
> eclass now need to ensure that the new useflag is set)
>
> ...there are likely other cases but I can't think of any right now.
>
> At any rate, the point here being that a simple minimum-version-bump
> in an eclass RDEPEND does indicate a divergence will occur between
> end-user VDB and the repo, but that doesn't necessarily mean it's
> something we need to avoid, or rather, we don't necessarily -need-
> to enforce convergence between the repo and end-user VDB.
>
>
> Once we get a bit more hashing out of the above I can try writing up
> the complicated proposal(5?,6?) wording...

Agreed.  Thanks for bringing this up again.  If you're adding an RDEP
to an eclass in anticipation of it being necessary for new ebuilds but
all the ebuilds in the tree still work with the old RDEP, then the
bumping can be selective.

Rather than trying to identify specific cases, why not identify the
intent, and then we can build out the individual cases on the
devmanual, and revise it over time as necessary.

Proposal 3a might be: Anytime an RDEPEND in an eclass is changed, the
eclass must be revisioned unless all ebuilds in the gentoo repository
will continue to work correctly with the old RDEPEND.
Proposal 4a might be: Anytime an RDEPEND in an eclass is changed, all
ebuilds that inherit the eclass in the gentoo repository must be
revisioned if they will not continue to work correctly with the old
RDEPEND.

There is no need to have the council approve revisions to the
devmanual every time somebody points out a new case where this
happens.  The goal here is to just let everybody air their opinions,
and set a general direction so that those implementing it don't get
caught in the crossfire.

It sounds like pkgmove should be added to all the proposals as an exception.

-- 
Rich

Reply via email to