Gentoo Archives: gentoo-dev

From: konsolebox <konsolebox@×××××.com>
To: "Michał Górny" <mgorny@g.o>
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] JFYIOR: A Simple Package Versioning Spec
Date: Sat, 19 Sep 2015 07:43:25
Message-Id: CAJnmqwaGn9s1YbJO11n9xb_YuWdrnB6NknV+Piah+=WFAK3TEg@mail.gmail.com
In Reply to: Re: [gentoo-dev] JFYIOR: A Simple Package Versioning Spec by "Michał Górny"
1 On Sat, Sep 19, 2015 at 5:05 AM, Michał Górny <mgorny@g.o> wrote:
2 > Dnia 2015-09-19, o godz. 03:50:52
3 > konsolebox <konsolebox@×××××.com> napisał(a):
4 >
5 >> On Sat, Sep 19, 2015 at 2:23 AM, Michał Górny <mgorny@g.o> wrote:
6 >> > And similarly to the current solution it's full of silly special cases and magical rules. If you really want something simple and clean, take a look at the scheme used by pkg-config and rpm.
7 >>
8 >> Silly because it uses a not-so-monolithic approach which is more
9 >> convenient to implement and actually works? What special cases or
10 >> magical rules where you could find it more complex than the current
11 >> spec?
12 >
13 > It's silly because it shifts the existing terrible structure a bit
14 > and doesn't really solve most of its issues
15
16 What issues? My spec was not meant to solve issues which can't be
17 solved by any universal algorithm. And it's not meant to add a
18 feature, but it can be used as a basis for one that would.
19
20 Perhaps provide your own spec on how you could solve those issues then
21 let's see if your point is correct.
22
23 > It's silly because you
24 > still have a fair number of limitations which make parsing harder
25 > rather than easier.
26
27 What limitations specifically? I'm not sure why you'd find it harder,
28 as compared to the current spec. And it's not even hard generally.
29
30 > It's silly because you still have to remember
31 > the relation between 'alpha', 'beta', 'rc' and 'pre'.
32
33 What kind of implementation would you have where you don't remember
34 those? Do you imply to completely avoid them? How would you get to
35 compare versions having alpha, beta, pre and rc then? Do you mean to
36 use another library to get each one's priority? Wouldn't that still
37 need to be specified in the spec?
38
39 > It's silly
40 > because those magical suffixes never match what upstreams use.
41 > And those are just a few sillinesses.
42
43 Yeah unfortunately there could be just unlimited number of possible
44 suffixes and unlimited ways on how they could be used so the best
45 thing you could do is provide what's commonly used and just let the
46 ebuild maintainer decide how he could work around with those suffixes
47 so he could present it well on the ebuild.
48
49 >> And about pkg-config and rpm: I haven't thoroughly examined them yet,
50 >> but you sure their implementation is applicable to Gentoo? It might
51 >> just turn simpler because it's more limited or strict. Gentoo allows
52 >> stages, patches and revisions and uses predefined prefixes. Mine
53 >> starts on a flexible approach where "version nodes" are allowed
54 >> everywhere.
55 >
56 > Then you should have. It is appreciated when people do some *research*
57 > before throwing out random ideas on areas they have almost no idea of.
58
59 It's not a random idea as it only intends to simplify the current
60 spec, not drastically change it. And it doesn't really matter for me
61 to thoroughly understand them if you only intend to completely change
62 Gentoo's packaging system to be like them. It's not my spec's concern
63 to change things that way.
64
65 > And to save you some time reading: the rpm implementation is simpler
66 > and more flexible. It's free of stupidities like hardcoded suffix
67 > lists or forced component ordering. Ordering (pre/post) is expressed
68 > explicitly, and in many more cases you can avoid writing something
69 > completely different than what upstream uses.
70
71 I'm not sure what you mean, but you sure that adding the ability to
72 expression pre/post ordering does not make the algorithm even more
73 complicated? Note that you have to consider how you'd be able to
74 compare versions against other versions.
75
76 That also sounds to me like you just have to add a _post stage with a
77 +1 value and it would be enough, rather than having a complete
78 overhaul.
79
80 You say that you can express ordering explicitly: I find that it's
81 just the same problem you encounter when deciding what value to give
82 on _pre when encountering word versions like trial, devel, testing,
83 etc.
84
85 I really think adding more commonly used suffixes should be enough.
86
87 Btw, can you give a link on how the pre/post ordering is expressed? I
88 can't find any RPM versioning spec that describes how it's done.
89
90 >> If perhaps you mean to completely overhaul Gentoo's way of
91 >> implementing package versions, I don't think that would work.
92 >
93 > And is your change going to work? Because if you understood how ebuilds
94 > work, you'd know you practically can't change versioning because you'd
95 > immediately break compatibility between 'old' and 'new' ebuilds.
96
97 Except that mine is unlikely to break compatibility with current
98 packages. You have issues against the very foundations of the current
99 implementation, but that's not really about my spec per se. You seem
100 to be barking at the wrong tree and I don't think that would help.
101
102 > This
103 > isn't something that was designed to support changes in version scheme,
104 > and changing that won't be anywhere close to easy. And if we ever agree
105 > on doing that, we should go for a complete and useful solution rather
106 > than some minor change with even smaller benefit.
107
108 Unfortunately doing an overhaul may never happen unless you create
109 Gentoo 2.0 where a mirror of every package would work on it. So
110 simplifying it first (and optionally enhancing without breaking) could
111 be a good choice whether an overhaul happens later or not.

Replies

Subject Author
Re: [gentoo-dev] JFYIOR: A Simple Package Versioning Spec "Michał Górny" <mgorny@g.o>
Re: [gentoo-dev] JFYIOR: A Simple Package Versioning Spec konsolebox <konsolebox@×××××.com>