public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev]  repoman: check for deprecated eclasses
@ 2006-09-01 11:56 Stefan Schweizer
  2006-09-01 15:05 ` Alec Warner
  2006-09-01 15:39 ` Carsten Lohrke
  0 siblings, 2 replies; 11+ messages in thread
From: Stefan Schweizer @ 2006-09-01 11:56 UTC (permalink / raw
  To: gentoo-dev

Hi,

Repoman needs to check for deprecated eclasses, see
http://bugs.gentoo.org/141677

As a result of the discussion in the bug, we would like to add
$PORTDIR/qa-data/eclass.deprecated
to allow to deprecate eclasses properly and make repoman fail.

This will allow us to avoid problems with new ebuilds for deprecated
eclasses which result in bugs like
Bug 141629 dev-util/systemtap-20060325.ebuild uses deprecated
kernel-mod.eclass
I believe the developer has not known anything about that kernel-mod is
deprecated when making that ebuild. Now he ignores the bug and we have that
old eclass used again :(

Best regards,
- Stefan

-- 
gentoo-dev@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-dev]  repoman: check for deprecated eclasses
  2006-09-01 11:56 [gentoo-dev] repoman: check for deprecated eclasses Stefan Schweizer
@ 2006-09-01 15:05 ` Alec Warner
  2006-09-01 16:57   ` Danny van Dyk
  2006-09-01 15:39 ` Carsten Lohrke
  1 sibling, 1 reply; 11+ messages in thread
From: Alec Warner @ 2006-09-01 15:05 UTC (permalink / raw
  To: gentoo-dev

Stefan Schweizer wrote:
> Hi,
> 
> Repoman needs to check for deprecated eclasses, see
> http://bugs.gentoo.org/141677
> 
> As a result of the discussion in the bug, we would like to add
> $PORTDIR/qa-data/eclass.deprecated
> to allow to deprecate eclasses properly and make repoman fail.
> 
> This will allow us to avoid problems with new ebuilds for deprecated
> eclasses which result in bugs like
> Bug 141629 dev-util/systemtap-20060325.ebuild uses deprecated
> kernel-mod.eclass
> I believe the developer has not known anything about that kernel-mod is
> deprecated when making that ebuild. Now he ignores the bug and we have that
> old eclass used again :(
> 
> Best regards,
> - Stefan
> 
I would prefer to see a patch for this first, and then modify gentoo-x86
second; but I agree in principle.  What of the conversation about 2
files, one for "this eclass is currently being deprecated" -> repoman
warning; and "this eclass is no longer usable" -> repoman failure.

Also the deprecated -> new-eclass mapping.  Afaik that didn't go so well
for me; but I still like it ;)

old			new
-----			------
foo.eclass		new-foo.eclass
-- 
gentoo-dev@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-dev]  repoman: check for deprecated eclasses
  2006-09-01 11:56 [gentoo-dev] repoman: check for deprecated eclasses Stefan Schweizer
  2006-09-01 15:05 ` Alec Warner
@ 2006-09-01 15:39 ` Carsten Lohrke
  2006-09-01 16:47   ` [gentoo-dev] " Stefan Schweizer
  2006-09-01 16:47   ` [gentoo-dev] " Alec Warner
  1 sibling, 2 replies; 11+ messages in thread
From: Carsten Lohrke @ 2006-09-01 15:39 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 142 bytes --]

The file listing the derecated overlays is fine. What about revdep-rebuild and 
emerge regarding installed stuff and overlays?


Carsten

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [gentoo-dev]  Re: repoman: check for deprecated eclasses
  2006-09-01 15:39 ` Carsten Lohrke
@ 2006-09-01 16:47   ` Stefan Schweizer
  2006-09-01 16:47   ` [gentoo-dev] " Alec Warner
  1 sibling, 0 replies; 11+ messages in thread
From: Stefan Schweizer @ 2006-09-01 16:47 UTC (permalink / raw
  To: gentoo-dev

Carsten Lohrke wrote:
> What about revdep-rebuild and
> emerge regarding installed stuff and overlays?

what do you mean? Please elaborate

I have only repoman in mind for now.

- Stefan

-- 
gentoo-dev@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-dev]  repoman: check for deprecated eclasses
  2006-09-01 15:39 ` Carsten Lohrke
  2006-09-01 16:47   ` [gentoo-dev] " Stefan Schweizer
@ 2006-09-01 16:47   ` Alec Warner
  1 sibling, 0 replies; 11+ messages in thread
From: Alec Warner @ 2006-09-01 16:47 UTC (permalink / raw
  To: gentoo-dev

Carsten Lohrke wrote:
> The file listing the derecated overlays is fine. What about revdep-rebuild and 
> emerge regarding installed stuff and overlays?
> 
> 
> Carsten

We are talking eclasses...not overlays...
-- 
gentoo-dev@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-dev]  repoman: check for deprecated eclasses
  2006-09-01 15:05 ` Alec Warner
@ 2006-09-01 16:57   ` Danny van Dyk
  2006-09-01 17:37     ` Brian Harring
  0 siblings, 1 reply; 11+ messages in thread
From: Danny van Dyk @ 2006-09-01 16:57 UTC (permalink / raw
  To: gentoo-dev

Am Freitag, 1. September 2006 17:05 schrieb Alec Warner:
> Stefan Schweizer wrote:
> > Hi,
> >
> > Repoman needs to check for deprecated eclasses, see
> > http://bugs.gentoo.org/141677
> >
> > As a result of the discussion in the bug, we would like to add
> > $PORTDIR/qa-data/eclass.deprecated
> > to allow to deprecate eclasses properly and make repoman fail.
> >
> > This will allow us to avoid problems with new ebuilds for
> > deprecated eclasses which result in bugs like
> > Bug 141629 dev-util/systemtap-20060325.ebuild uses deprecated
> > kernel-mod.eclass
> > I believe the developer has not known anything about that
> > kernel-mod is deprecated when making that ebuild. Now he ignores
> > the bug and we have that old eclass used again :(
> >
> > Best regards,
> > - Stefan
>
> I would prefer to see a patch for this first, and then modify
> gentoo-x86 second; but I agree in principle.  What of the
> conversation about 2 files, one for "this eclass is currently being
> deprecated" -> repoman warning; and "this eclass is no longer usable"
> -> repoman failure.
>
> Also the deprecated -> new-eclass mapping.  Afaik that didn't go so
> well for me; but I still like it ;)
>
> old			new
> -----			------
> foo.eclass		new-foo.eclass

We don't need a new file for that IMHO. I'd propose to add something
like

ECLASS_DEPRECATED="${ECLASS_DEPRECATED} foo"
ECLASS_REPLACEMENTS="${ECLASS_REPLACEMENT} new-foo"

to foo.eclass. In my eyes this is much less work as repoman merely has
to check for 2 envvars.

Danny
-- 
Danny van Dyk <kugelfang@gentoo.org>
Gentoo/AMD64 Project, Gentoo Scientific Project
-- 
gentoo-dev@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-dev]  repoman: check for deprecated eclasses
  2006-09-01 16:57   ` Danny van Dyk
@ 2006-09-01 17:37     ` Brian Harring
  2006-09-01 23:37       ` Danny van Dyk
  0 siblings, 1 reply; 11+ messages in thread
From: Brian Harring @ 2006-09-01 17:37 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2871 bytes --]

On Fri, Sep 01, 2006 at 06:57:22PM +0200, Danny van Dyk wrote:
> Am Freitag, 1. September 2006 17:05 schrieb Alec Warner:
> > Stefan Schweizer wrote:
> > > Hi,
> > >
> > > Repoman needs to check for deprecated eclasses, see
> > > http://bugs.gentoo.org/141677
> > >
> > > As a result of the discussion in the bug, we would like to add
> > > $PORTDIR/qa-data/eclass.deprecated
> > > to allow to deprecate eclasses properly and make repoman fail.
> > >
> > > This will allow us to avoid problems with new ebuilds for
> > > deprecated eclasses which result in bugs like
> > > Bug 141629 dev-util/systemtap-20060325.ebuild uses deprecated
> > > kernel-mod.eclass
> > > I believe the developer has not known anything about that
> > > kernel-mod is deprecated when making that ebuild. Now he ignores
> > > the bug and we have that old eclass used again :(
> > >
> > > Best regards,
> > > - Stefan
> >
> > I would prefer to see a patch for this first, and then modify
> > gentoo-x86 second; but I agree in principle.  What of the
> > conversation about 2 files, one for "this eclass is currently being
> > deprecated" -> repoman warning; and "this eclass is no longer usable"
> > -> repoman failure.
> >
> > Also the deprecated -> new-eclass mapping.  Afaik that didn't go so
> > well for me; but I still like it ;)
> >
> > old			new
> > -----			------
> > foo.eclass		new-foo.eclass
> 
> We don't need a new file for that IMHO. I'd propose to add something
> like
> 
> ECLASS_DEPRECATED="${ECLASS_DEPRECATED} foo"
> ECLASS_REPLACEMENTS="${ECLASS_REPLACEMENT} new-foo"
> 
> to foo.eclass. In my eyes this is much less work as repoman merely has
> to check for 2 envvars.

As much as I'm a fan of embedding the metadata into the object itself, 
this sucks; reliant on either

1) grepping it out of the file (which means there is the potential for 
rare false positives to occur).

2) bastardizing inherit to grab it, thus forcing a sourcing for every 
single ebuild regardless of staleness

Your example above seems to indicate preferring #2, which folks will 
probably tell you to get stuffed on, forcing a regen of the packages 
they're examining they won't like (will slow repoman down even 
further).

Also, the new-foo renaming can't be reversed cleanly; consider if the 
old class was kernel-mod, new class is kernels, how do you know where 
to split old/new?  You can search ECLASS_DEPRECATED, but potential for 
collision there makes it a crappy option, in the previous example 
consider if kernel-mode and kernel were two deprecated eclasses, it 
would falsely label the new class as mod-kernels.

Meanwhile; I'd just stick a file up somewhere on gentoo.org, and 
mangle repoman to pull down a copy every N days as needed and have it 
use that; code can be reused from metadata.dtd usage.

~harring

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-dev]  repoman: check for deprecated eclasses
  2006-09-01 17:37     ` Brian Harring
@ 2006-09-01 23:37       ` Danny van Dyk
  2006-09-02  3:51         ` Brian Harring
  0 siblings, 1 reply; 11+ messages in thread
From: Danny van Dyk @ 2006-09-01 23:37 UTC (permalink / raw
  To: gentoo-dev

Am Freitag, 1. September 2006 19:37 schrieb Brian Harring:
> > >
> > > old			new
> > > -----			------
> > > foo.eclass		new-foo.eclass
> >
> > We don't need a new file for that IMHO. I'd propose to add
> > something like
> >
> > ECLASS_DEPRECATED="${ECLASS_DEPRECATED} foo"
> > ECLASS_REPLACEMENTS="${ECLASS_REPLACEMENT} new-foo"
> >
> > to foo.eclass. In my eyes this is much less work as repoman merely
> > has to check for 2 envvars.
>
> As much as I'm a fan of embedding the metadata into the object
> itself, this sucks; reliant on either
>
> 1) grepping it out of the file (which means there is the potential
> for rare false positives to occur).
Correct, i don't like to grep for it.
>
> 2) bastardizing inherit to grab it, thus forcing a sourcing for every
> single ebuild regardless of staleness
Exactly.

> Your example above seems to indicate preferring #2, which folks will
> probably tell you to get stuffed on, forcing a regen of the packages
> they're examining they won't like (will slow repoman down even
> further).
Well, one has to decide between functionality and speed at times. I 
think it's better to have the ebuild sourced on every run instead of 
sourcing it only when it cache is stale.

> Also, the new-foo renaming can't be reversed cleanly; consider if the
> old class was kernel-mod, new class is kernels, how do you know where
> to split old/new?  You can search ECLASS_DEPRECATED, but potential
> for collision there makes it a crappy option, in the previous example
> consider if kernel-mode and kernel were two deprecated eclasses, it
> would falsely label the new class as mod-kernels.
ECLASS_DEPRECATED="${ECLASS_DEPRECATED} foo:new-foo,new-foo-modules"

> Meanwhile; I'd just stick a file up somewhere on gentoo.org, and
> mangle repoman to pull down a copy every N days as needed and have it
> use that; code can be reused from metadata.dtd usage.
I like this option better than sticking another file into the public 
tree that no user will ever need.

Danny
-- 
Danny van Dyk <kugelfang@gentoo.org>
Gentoo/AMD64 Project, Gentoo Scientific Project
-- 
gentoo-dev@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-dev]  repoman: check for deprecated eclasses
  2006-09-01 23:37       ` Danny van Dyk
@ 2006-09-02  3:51         ` Brian Harring
  2006-09-02  4:54           ` Daniel Ostrow
  0 siblings, 1 reply; 11+ messages in thread
From: Brian Harring @ 2006-09-02  3:51 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 3646 bytes --]

On Sat, Sep 02, 2006 at 01:37:26AM +0200, Danny van Dyk wrote:
> Am Freitag, 1. September 2006 19:37 schrieb Brian Harring:
> > > >
> > > > old			new
> > > > -----			------
> > > > foo.eclass		new-foo.eclass
> > >
> > > We don't need a new file for that IMHO. I'd propose to add
> > > something like
> > >
> > > ECLASS_DEPRECATED="${ECLASS_DEPRECATED} foo"
> > > ECLASS_REPLACEMENTS="${ECLASS_REPLACEMENT} new-foo"
> > >
> > > to foo.eclass. In my eyes this is much less work as repoman merely
> > > has to check for 2 envvars.
> >
> > As much as I'm a fan of embedding the metadata into the object
> > itself, this sucks; reliant on either
> >
> > 1) grepping it out of the file (which means there is the potential
> > for rare false positives to occur).
> Correct, i don't like to grep for it.
> >
> > 2) bastardizing inherit to grab it, thus forcing a sourcing for every
> > single ebuild regardless of staleness
> Exactly.
> 
> > Your example above seems to indicate preferring #2, which folks will
> > probably tell you to get stuffed on, forcing a regen of the packages
> > they're examining they won't like (will slow repoman down even
> > further).
> Well, one has to decide between functionality and speed at times. I 
> think it's better to have the ebuild sourced on every run instead of 
> sourcing it only when it cache is stale.

Reasoning?  Forcing repoman to be slower sounds pretty damn dumb to me 
without a damn good reason to go with it (this doesn't qualify imo).

Additionally, for all implementations that will attempt to support 
this, it'll require bastardizing the cache regeneration to also pull 
out these two vars in select instances; adds some special casing into 
a codepath that must never screw up (thus should be kept as simple as 
possible).

Really doesn't strike me as a good idea, especially in light of the 
lifetime of these vars (see below).


> > Also, the new-foo renaming can't be reversed cleanly; consider if the
> > old class was kernel-mod, new class is kernels, how do you know where
> > to split old/new?  You can search ECLASS_DEPRECATED, but potential
> > for collision there makes it a crappy option, in the previous example
> > consider if kernel-mode and kernel were two deprecated eclasses, it
> > would falsely label the new class as mod-kernels.
> ECLASS_DEPRECATED="${ECLASS_DEPRECATED} foo:new-foo,new-foo-modules"
> 
> > Meanwhile; I'd just stick a file up somewhere on gentoo.org, and
> > mangle repoman to pull down a copy every N days as needed and have it
> > use that; code can be reused from metadata.dtd usage.
>
> I like this option better than sticking another file into the public 
> tree that no user will ever need.

Instead, modifying the eclass metadata and adding two new keys, that 
users will never need is fine? :)

This isn't really user data, tiz developer data; thus the user bit 
doesn't matter.  Sarcasm aside, what *does* matter as that the 
purpose of this is a temporary hack to cover portages ass.

Have to mark eclasses as deprecated because eclasses cannot be 
removed; lose that restriction, no longer need to deprecate the 
eclass, just punt the sucker.

As such, plan for doing it right, thus the repoman addition should be 
easy reversible.  Mangling the entire cache generation codepath with a 
nasty hack that doesn't have a good reason to be forced that way, that 
further is _temporary_ doesn't strike me as wise.

Really, stick a list up somewhere easily accessible, write a check to 
scan for those eclasses.  Dirt simple, no reason to make this complex.
~harring

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-dev]  repoman: check for deprecated eclasses
  2006-09-02  3:51         ` Brian Harring
@ 2006-09-02  4:54           ` Daniel Ostrow
  2006-09-02  5:57             ` Brian Harring
  0 siblings, 1 reply; 11+ messages in thread
From: Daniel Ostrow @ 2006-09-02  4:54 UTC (permalink / raw
  To: gentoo-dev

<snip>

> > I like this option better than sticking another file into the public 
> > tree that no user will ever need.
> 
> Instead, modifying the eclass metadata and adding two new keys, that 
> users will never need is fine? :)
> 
> This isn't really user data, tiz developer data; thus the user bit 
> doesn't matter.  Sarcasm aside, what *does* matter as that the 
> purpose of this is a temporary hack to cover portages ass.
</snip>

In light of it being useless data for users is there any reason not to
add the files to CVS and then pull them out before the tree is synced
with the master mirror as part of that script?

--Dan

-- 
gentoo-dev@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-dev]  repoman: check for deprecated eclasses
  2006-09-02  4:54           ` Daniel Ostrow
@ 2006-09-02  5:57             ` Brian Harring
  0 siblings, 0 replies; 11+ messages in thread
From: Brian Harring @ 2006-09-02  5:57 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1101 bytes --]

On Fri, Sep 01, 2006 at 09:54:09PM -0700, Daniel Ostrow wrote:
> <snip>
> 
> > > I like this option better than sticking another file into the public 
> > > tree that no user will ever need.
> > 
> > Instead, modifying the eclass metadata and adding two new keys, that 
> > users will never need is fine? :)
> > 
> > This isn't really user data, tiz developer data; thus the user bit 
> > doesn't matter.  Sarcasm aside, what *does* matter as that the 
> > purpose of this is a temporary hack to cover portages ass.
> </snip>
> 
> In light of it being useless data for users is there any reason not to
> add the files to CVS and then pull them out before the tree is synced
> with the master mirror as part of that script?

Devs are lazy and don't always do a full cvs up, same reason the 
repoman metadata.xml check relies on pulling metadata.dtd down, 
instead of having a copy pushed into the cvs repository.

Re: yoinking the file from the cvs->rsync transfer, frankly who cares.  
It's one file out of 124 _thousand_ files; <400 bytes.  Really ain't 
worth it.

~brian

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2006-09-02  6:00 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-01 11:56 [gentoo-dev] repoman: check for deprecated eclasses Stefan Schweizer
2006-09-01 15:05 ` Alec Warner
2006-09-01 16:57   ` Danny van Dyk
2006-09-01 17:37     ` Brian Harring
2006-09-01 23:37       ` Danny van Dyk
2006-09-02  3:51         ` Brian Harring
2006-09-02  4:54           ` Daniel Ostrow
2006-09-02  5:57             ` Brian Harring
2006-09-01 15:39 ` Carsten Lohrke
2006-09-01 16:47   ` [gentoo-dev] " Stefan Schweizer
2006-09-01 16:47   ` [gentoo-dev] " Alec Warner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox