public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Dependencies default to accept any slot value acceptable (:*), can we default to :0 instead?
@ 2013-12-08 16:56 Tom Wijsman
  2013-12-08 17:16 ` Michał Górny
  2013-12-08 17:19 ` Andreas K. Huettel
  0 siblings, 2 replies; 35+ messages in thread
From: Tom Wijsman @ 2013-12-08 16:56 UTC (permalink / raw
  To: gentoo-dev

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

Hello fellow developers

== Situation ==

When specifying a dependency like cat/pkg it will default to cat/pkg:*
which is defined in `man 5 ebuild` as:

    * Indicates  that  any  slot value is acceptable. In addition,
      for runtime dependencies, indicates that the package will not
      break if the matched package is uninstalled and replaced by a
      different matching package in a different slot.

This default reflects different behavior than what we use slots for,
besides allowing side-by-side installations we rather use it to
specifically depend on a new major version. (eg. dev-libs/glib).

Let's say I want to a add a new major version of cat/pkg to the Portage
tree, introducing it in the same SLOT="0" isn't an option. This gives
us two options, one is SLOT="2", the other is to create cat/pkg2 or so.

Creating a new SLOT is the most sane thing going forward; but, as the
default (:*) depends on any SLOT, this needs a half thousand commits to
fix up reverse dependencies. Thus, instead a new package is made. [1]

When our defaults force us down such path, that can't be good and it
affects the quality of our Portage tree; so, this makes me wonder, can
we change the default from :* to :0? What do you think?

 [1] https://bugs.gentoo.org/show_bug.cgi?id=493652
     "media-libs/libsdl2: should be a SLOT=2 of media-libs/libsdl"

== Task ==

If we agree we do this; in order to change :* to :0, we need to change
the PMS to cover this change and implement it in the package managers.

Before we do that, we need to evaluate how practical this is to apply.
While we are trying to fix the default behavior, what would changing
the default from :* to :0 break?

One thing that directly comes to mind is that dependencies that have no
SLOT="0" ebuild present would need us to manually specify a specific
SLOT; given that this is a not so common situation, the amount of
commits needed here is low.

Another thing that comes to mind is that we need to check what to do
with packages were the highest available version does not belong to
SLOT="0"; technically, restricting these to SLOT="0" will not cause
breakage, it might however cause some blockers. We'll have to look
closer into how we can alleviate this result.

Is there anything else we need to take into account?

== Summary ==

Situation:

    Defaulting to :* on SLOT-less dependencies makes it hard to add a
    new SLOT to a package, using :0 instead would not make this a
    problem and not require to fix up all reverse dependencies.

Task:

    Check results, correct some exceptions, update PMS, implement it.

Thank you in advance for participating in this discussion.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread
* [gentoo-dev] Dependencies default to accept any slot value acceptable (:*), can we default to :0 instead?
@ 2013-12-08 16:54 Tom Wijsman
  2013-12-08 23:57 ` Patrick Lauer
  2013-12-09  6:52 ` Sergey Popov
  0 siblings, 2 replies; 35+ messages in thread
From: Tom Wijsman @ 2013-12-08 16:54 UTC (permalink / raw
  To: gentoo-dev

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

Hello fellow developers

== Situation ==

When specifying a dependency like cat/pkg it will default to cat/pkg:*
which is defined in `man 5 ebuild` as:

    * Indicates  that  any  slot value is acceptable. In addition,
      for runtime dependencies, indicates that the package will not
      break if the matched package is uninstalled and replaced by a
      different matching package in a different slot.

This default reflects different behavior than what we use slots for,
besides allowing side-by-side installations we rather use it to
specifically depend on a new major version. (eg. dev-libs/glib).

Let's say I want to a add a new major version of cat/pkg to the Portage
tree, introducing it in the same SLOT="0" isn't an option. This gives
us two options, one is SLOT="2", the other is to create cat/pkg2 or so.

Creating a new SLOT is the most sane thing going forward; but, as the
default (:*) depends on any SLOT, this needs a half thousand commits to
fix up reverse dependencies. Thus, instead a new package is made. [1]

When our defaults force us down such path, that can't be good and it
affects the quality of our Portage tree; so, this makes me wonder, can
we change the default from :* to :0? What do you think?

 [1] https://bugs.gentoo.org/show_bug.cgi?id=493652
     "media-libs/libsdl2: should be a SLOT=2 of media-libs/libsdl"

== Task ==

If we agree we do this; in order to change :* to :0, we need to change
the PMS to cover this change and implement it in the package managers.

Before we do that, we need to evaluate how practical this is to apply.
While we are trying to fix the default behavior, what would changing
the default from :* to :0 break?

One thing that directly comes to mind is that dependencies that have no
SLOT="0" ebuild present would need us to manually specify a specific
SLOT; given that this is a not so common situation, the amount of
commits needed here is low.

Another thing that comes to mind is that we need to check what to do
with packages were the highest available version does not belong to
SLOT="0"; technically, restricting these to SLOT="0" will not cause
breakage, it might however cause some blockers. We'll have to look
closer into how we can alleviate this result.

Is there anything else we need to take into account?

== Summary ==

Situation:

    Defaulting to :* on SLOT-less dependencies makes it hard to add a
    new SLOT to a package, using :0 instead would not make this a
    problem and not require to fix up all reverse dependencies.

Task:

    Check results, correct some exceptions, update PMS, implement it.

Thank you in advance for participating in this discussion.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

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

end of thread, other threads:[~2013-12-10 23:36 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-08 16:56 [gentoo-dev] Dependencies default to accept any slot value acceptable (:*), can we default to :0 instead? Tom Wijsman
2013-12-08 17:16 ` Michał Górny
2013-12-08 17:19 ` Andreas K. Huettel
2013-12-08 17:26   ` Pacho Ramos
2013-12-08 17:46     ` Tom Wijsman
2013-12-08 18:56       ` Rich Freeman
2013-12-08 19:14   ` Ulrich Mueller
2013-12-08 19:39     ` Rich Freeman
2013-12-08 19:48       ` Ciaran McCreesh
2013-12-08 20:01       ` Ulrich Mueller
2013-12-08 20:17         ` Rich Freeman
2013-12-09  2:37           ` heroxbd
2013-12-09  2:55             ` Rich Freeman
2013-12-09  3:19               ` heroxbd
2013-12-08 20:21         ` Tom Wijsman
2013-12-08 20:25           ` Ciaran McCreesh
2013-12-10 21:06           ` Ian Stakenvicius
2013-12-10 23:35             ` Tom Wijsman
2013-12-08 20:04     ` Tom Wijsman
2013-12-08 20:21       ` Ulrich Mueller
2013-12-08 20:26         ` Ciaran McCreesh
2013-12-08 20:31           ` Ulrich Mueller
2013-12-08 21:54           ` Michał Górny
2013-12-08 22:02             ` Ciaran McCreesh
2013-12-08 20:28         ` Tom Wijsman
2013-12-08 20:30         ` Tom Wijsman
  -- strict thread matches above, loose matches on Subject: below --
2013-12-08 16:54 Tom Wijsman
2013-12-08 23:57 ` Patrick Lauer
2013-12-09  0:12   ` Tom Wijsman
2013-12-09  0:21   ` Rich Freeman
2013-12-09  6:52 ` Sergey Popov
2013-12-09 10:55   ` Tom Wijsman
2013-12-09 16:06     ` Rich Freeman
2013-12-09 16:19       ` Ulrich Mueller
2013-12-10  0:31         ` Tom Wijsman

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