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 |