"Suite" vs "branch" (Re: [SUMMARY] About terminology [...])
Thanks Christian for bringing this discussion to d-project.
There's already some interesting discussion that happened about the
topic, but I am not very satisfied with "suite", and would rather see
the discussion go on. I discussed the issues I see with "suite" with
Christian on #debian-l10n-fr, and he agreed that those were worth being
mentioned. As I said in the French thread, I believe the reason I didn't
immediately raised the discussion about the English terminology is that
English is not my native language neither, so I'm not really comfortable
discussing English terminology. But since the discussion was short, I'm
adding my concerns. If you are a native English speaker, aren't already
bored by a terminology discussion, and are ready for a rather long mail,
please participate (even just to give your opinion, that would be
useful). I'm sorry for not participating to the thread before you posted
your summary, I didn't notice it quick enough.
Christian initially proposed "branch", which is so far my favorite term.
He then changed to "suite" after the short discussion. I asked him on
IRC why he changed, and said it was both the fact that aj gave a
suitable definition for "suite", and the arguments of Frans. First, I'll
elaborate a bit on what analogy we can have between the usual "SCM
branches" and distro branches:
On the SCM side, for example talking about a typical upstream software
package, the smallest change that can happen to the repository is the
addition, update or removal of one file.
On the distro side, for example talking about Debian, the smallest
change that can happen to the repository is the addition, update or
removal of one package.
So, as I see it, the analogy between "SCM branches" and distro branches
implies an analogy between files and packages.
Now, I'll go through the arguments of Frans:
* branches need a trunk/root.
When comparing with "SCM branches", we need an equivalent for HEAD.
I believe this is unstable. I expect Frans to have an answer, since
unstable as HEAD is rather obvious, but I don't see the problem for now.
* stable is not a branch.
Pierre Habouzit answered to this, and I agree with him. However, he
raised at the same time new concerns about considering testing and
unstable branches, and said that referring to experimental as a branch
was in his opinion completely absurd. I agree that experimental is
hardly a Debian branch. I think experimental's role is a...
repository?(no idea which term goes here) to replace several unrelated
"experimental" Debian branches, so it can't be called a branch. I admit
that I don't know how it should be called. But, it's a minor problem for
me if there's no term that includes experimental. When you ask someone
which Debian "version" they use, you expect to get stable, testing, or
perhaps oldstable or unstable. Not experimental.
My comment on the definition that aj gave:
So why do I still discuss "branch" if "suite" works? In French, "suite"
means about the same as English "suite". As far as Christian and I know,
though, there is no French equivalent to the meaning used for Debian.
This is not really a problem for the English side of the question, but
it means I'm not the best to talk about this term. Still, the definition
given by aj is not great IMO. The goal of this discussion is to find a
term which is more general than version, encompassing testing,
unreleased, and even unstable, which is not even a version being
prepared. This term should keep the meaning of version but lose the
restrictions. The problem with aj's definition for "suite" is that it
has no obvious relation with "version". For example, I expect that if
asked "Which Debian suite do you use?", someone not aware of Debian's
usage of "suite" could answer "GNOME"/"KDE" or more likely "huh?" rather
More issues with "branch"
One big problem with "branch" is that it's inspired from "SCM branches",
which are only known by some developers. Currently, we're lucky enough
to have a pretty technical audience, so we can expect a good share of it
to know about "SCM branches". But for the part of our audience that
doesn't, using "branch" isn't much better than inventing a new term.
Also, the analogy with "SCM branches" isn't trivial. Even if there were
no good explanations of why "branch" wouldn't apply to stable or
testing/unstable, the fact that both Frans and Pierre Habouzit, who
shouldn't be too clueless about SCM-s :-P , had doubts about "branch"
for stable or testing/unstable means that the analogy is far-stretched.
Analogy with SCM-s and "suites"
I said that the distro-SCM-s analogy for "branch" was far-stretched, but
that on the other hand using aj's definition for "suite" to substitute
to "version" didn't have a clear meaning. Based on the "SCM branches"
analogy, we can try the opposite analogy with "suite". Would the
distributor of "upstream" software refer to their branches as "suites
[of files]", if they wanted to avoid referring to them as branches? This
is an open question I mention to help think about the issue. Note that
in practice, upstream-s usually don't need to use either "branches" or
"suites", because they can reasonably use the term "versions". Supposing
an upstream has 3 branches, stable (for example, 1.8), frozen, and HEAD,
then they can consider frozen to be 1.9 "CVS", and HEAD to be 1.10
"CVS". The problem with Debian is that even if we can consider testing
as stable+1, unstable isn't testing+1.
Example: Does "Which GCC suite do you use?" clearly mean "If you use a
stable GCC version, which one is it, and if you don't, which development
branch do you use?"
Native English speakers, what do you think about this? Is either "suite"
or "branch" an appropriate term? Which one is better? Is there another
term that would be better? Is it worth it to create a new one?
The natural answer would come from other distros, but these perhaps
don't need such a term as much as Debian does. AFAIK, most distros don't
have sophisticated package pools like we do, and simply have stable and
(testing/unstable). I guess that at release time their development
branch becomes stable, like happens with testing for Debian. Other
distros probably see a lot less interest in discussing "branches", since
they don't have something as much stable as testing is, and their stable
version is usually more current. It could still help if somebody had
information about how other distros do. Wikipedia's Gentoo article
refers to "branch" a few times.