[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

"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 than "3.1".

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.

Reply to: