Gentoo Archives: gentoo-dev

From: Daniel Campbell <zlg@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [RFC] Problems and limitations of the current version dependency specs
Date: Wed, 02 Nov 2016 07:33:48
Message-Id: 209d4ad5-ab9a-353c-8b21-b4bedae5a937@gentoo.org
In Reply to: [gentoo-dev] [RFC] Problems and limitations of the current version dependency specs by "Michał Górny"
1 On 10/31/2016 05:31 PM, Michał Górny wrote:
2 > Hello, everyone.
3
4 Answering inline to help context.
5
6 >
7 > I would like to work on a major version depedencny specification
8 > improvements as part of the next EAPI. For this reason, I'd like to
9 > first gather some research on how developers are using the current
10 > system, what they find efficient and what they find cumbersome.
11 >
12 > Therefore, I would like to ask the following questions:
13 >
14 > 1. How often do you find '~' useful? Do you think there should be
15 > additional operators that ignore revision part?
16
17 I've never really used it. After reading the devmanual on it, it seems
18 like it's redundant compared to *.
19
20 >
21 > 2. How often do you find '=...*' wildcard syntax useful? To what
22 > purpose do you use it? Do you find its behavior confusing [1]?
23
24 It was confusing until I read your footnote. Obviously, I had to know it
25 back when I was applying, but it seems counter intuitive. Could we
26 instead make ~ take on the _pre _r behavior and let * be a more
27 intuitive option to match ranged deps without slotting?
28
29 >
30 > 3. Do you sometimes find yourself using '<'/'<=' specs that
31 > accidentally match _pre/_rc/... versions?
32
33 Nope.
34
35 >
36 > 4. What are the common tasks that you find unnecessarily complex /
37 > lengthy with the current version specifications?
38
39 Maybe I'm not writing enough ebuilds, but slot dependencies are a bit
40 complex for me. I have a hard time deciding whether to use := or :*, or
41 even if a slotted dependency is necessary. Every ebuild I end up having
42 peer-reviewed has a slot dep mistake that I end up fixing, and it's one
43 of the things that makes me ask for review before committing something.
44
45 >
46 > 5. Do you find any other parts of the current version dependency
47 > specifications confusing?
48 >
49 > Please just list the problems and your feeling about the current system
50 > now, not solutions. We will focus on the solutions in a next thread
51 > once we determine what the problems are.
52 >
53 > Thanks in advance for your input.
54 >
55 >
56 > [1]. Few less-known facts about =...*:
57 >
58 > a. it does NOT do string pattern matching but allows any version
59 > components following (i.e. 1.1* does not match 1.11),
60 >
61 > b. it matches any version components, including _pre/_p/_rc/...
62 > suffixes (i.e. 1.1* matches 1.1_rc1).
63 >
64
65 Maybe it could be covered in the devmanual (or elsewhere?) on
66 discovering "real" dependencies. Some projects just tell you what they
67 use without specifying version numbers or ranges. ldd may be useful
68 there, but that will only show you what it linked to when you built it.
69 If it's a "smart" build system it detects dependencies anyway. We don't
70 want that behavior, though.
71
72 I think, personally, if I knew more about nailing down dep versions and
73 handling slot dependencies, I'd feel a bit more confident writing new
74 ebuilds or taking on maintenance of others. Most of the syntax is
75 legible and understandable. Superficially, I understand slot
76 dependencies, but manipulating them in an older ebuild is different than
77 a fresh ebuild you're looking to bring to the main tree.
78
79 Thanks for bringing up the discussion.
80
81 --
82 Daniel Campbell - Gentoo Developer
83 OpenPGP Key: 0x1EA055D6 @ hkp://keys.gnupg.net
84 fpr: AE03 9064 AE00 053C 270C 1DE4 6F7A 9091 1EA0 55D6

Attachments

File name MIME type
signature.asc application/pgp-signature