From: Tom Wijsman <TomWij@gentoo.org>
To: pinkbyte@gentoo.org
Cc: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Dependencies default to accept any slot value acceptable (:*), can we default to :0 instead?
Date: Mon, 9 Dec 2013 11:55:27 +0100 [thread overview]
Message-ID: <20131209115527.4ef48b36@TOMWIJ-GENTOO> (raw)
In-Reply-To: <52A5689F.1040402@gentoo.org>
[-- Attachment #1: Type: text/plain, Size: 3306 bytes --]
On Mon, 09 Dec 2013 10:52:15 +0400
Sergey Popov <pinkbyte@gentoo.org> wrote:
> In short - please do NOT do this.
Why not? What about other solutions? What do you think?
There have come up several solutions, the one suggested in the first
mail is no longer of interest due to SLOT="0" no longer being special;
now ideas tend to focus towards disallowing slot-less dependencies, or
otherwise implement under the form of a repoman warning.
> More complicated answer - you break
> the whole idea of slots. When user types 'emerge cat/foo' it means
> now - "i want cat/foo, whatever versions it will be(depending on mask,
> keywords, etc, etc)". Your proposal changes this behaviour
> drastically, and reasons for such changes are not worth it.
A package ATOM used in another place warrants another discussion; when
an user types it, what does the user mean? We could opt to not change
the behavior for users if their usage is different.
Note that the syntax (and thus usage) is different by design:
$ emerge -1pv '|| ( sys-apps/openrc sys-apps/systemd )'
!!! '|| ( sys-apps/openrc sys-apps/systemd )' is not a valid
package atom.
!!! Please check ebuild(5) for full details.
The reasons for changing dependency syntax are worth it:
For the dependency syntax, having :* as a default breaks things or
causes a lot of work. If explicit slots (or :0) were the default, it
works and you spare out dealing with lots of reverse dependencies when
you introduce a new slot.
When you depend on libfoo; I think you mean to depend on the libfoo
that is currently in the Portage tree (eg. libfoo:0 or so), whereas
libfoo:* would break as soon as the libfoo maintainer starts a new slot.
With libfoo:*, this then results in the following procedure:
1. Add libfoo:2 to the Portage tree and package.mask.
2. Inform everyone to update the dependency accordingly, wait for it.
3. Unmask libfoo:2. (Somewhere in the future)
Whereas with an implicit or explicit libfoo:${SLOT}, this results in:
1. Add libfoo:2 to the Portage tree. (Right now, without mask)
2. Maintainers support libfoo:2 over time as they bump packages.
As the former is frustrating, it can have library maintainers create a
new package instead of a new SLOT or not add the new version at all;
whereas the latter would allow the library maintainer to just add it,
especially as it is the task of individual maintainers to test their
package against new libraries as they come along.
Thus, that's why I'd like to see slot-less dependencies go and make it
policy or at least a repoman QA warning that people specify them.
Specifying it without a slot is moving the work of dependency testing
on the library maintainer instead of the package maintainer, causing the
library maintainer to either test tons of packages or file tons of bug.
Why have the library maintainer do extra work when a package maintainer
can just test it instead during a version bump? (As required anyway)
What do you think? Why do you think we should still keep a default :*?
--
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 --]
next prev parent reply other threads:[~2013-12-09 10:57 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-08 16:54 [gentoo-dev] Dependencies default to accept any slot value acceptable (:*), can we default to :0 instead? 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 [this message]
2013-12-09 16:06 ` Rich Freeman
2013-12-09 16:19 ` Ulrich Mueller
2013-12-10 0:31 ` Tom Wijsman
2013-12-10 8:11 ` [gentoo-dev] " Martin Vaeth
2013-12-10 8:24 ` Ulrich Mueller
-- strict thread matches above, loose matches on Subject: below --
2013-12-08 16:56 [gentoo-dev] " 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131209115527.4ef48b36@TOMWIJ-GENTOO \
--to=tomwij@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
--cc=pinkbyte@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox