On 11/01/2010 12:50 PM, Gregory GUENEAU wrote:
Hi everyone,
I am +1 to make stabilization work, on a couple of releases
I am +1 to have soon a 3.0 release
And i am +1 on the content vincent propose
But my point of view is -1 stepping the release family number because the main purpose of
what is discussed here is stabilization, and not showing the path of 3.x family.
Therefore :
- do we consider a january 2011 release to be stable enough ?
- stabilization work wouldn'it be leading then to the last 2.x version instead of the
first 3.x family version ?
- is there behind it a consensus on what we will concentrate our effort in 3.x versions ?
I mean thematics we can talk about.
- therefore, are we in a situation where we can vote on the global thematics we will
develop in 3.x releases ?
- do we have a clear consensus short list of features that show the path of 3.x family ?
- in consequence of that, is the release content here send a clear message to uneducated
publics about what is in this future 3.x versions ?
- do educated people care this much about release number, that we absolutely have to
release a 3.0 with the content presented below ?
From the committers' point of view, it makes perfect sense for 3.0 to
be the culmination of the 2.x releases, but I'm not sure the users
understand this as well, so I'm extending the question to the users list.
Traditionally, proprietary software is developed behind the curtains,
and it's normal to have one big release every two years, with lots of
new features and some bugs which get fixed in subsequent bugfix
releases. Marketing comes mostly from the proprietary software world, so
from a marketing point of view, this is the "normal" way releases work.
In the open source world, since the development is done in the open, it
doesn't make sense to stash code away in a repository and only release
it once every two years. Still, most big projects use a release
versioning scheme similar to the proprietary products, but with a slight
difference which deeply changes the meaning. While proprietary products
use only a number (3, 8, 2010...), with eventual bugfixes versions (SP2,
5.5), open source usually has 3 numbers in its versions, with the
following meanings:
The first number changes rarely, and when it does, it signals a critical
change, like a complete rewrite of the codebase, a change of paradigm,
or major new features. The second number is the one that actually
identifies a release. The third number is the bugfix version. So, when
we say that PHP 5.3.2 was released, we actually say that version 3 of
PHP5, which is a different thing than PHP4, has been released again,
giving the second bugfix release. KDE 4.5.1 means version 5 of KDE4 saw
its first bugfix release.
Another tendency is for open source software to linger towards a major
release. For example, lots of software have a lot of releases before
1.0, going nearer and nearer: 0.6, 0.9, 0.9.9... And everybody knows
that 0.x comes before 1.0, and it's not just a bugfix version of an
imaginary 0.0 release.
A different topic is that of agile development, with very short releases
(2-3 weeks) for which traditional version number make no sense, since
such a product would reach version 42 in a couple of years. Either an
identifier, such as the SCM version number is used, or a continuous
counter (v1.42) is used. Since the software evolves in a fluid manner,
without a "breakthrough" version coming out of the regular releases, a
"major" version is released when the current features are stable and
they mix well together in a coherent product. Since releases come so
frequently, it's normal for users to be split into two categories: those
that follow the releases and know how the software is evolving, and
those that only monitor the major releases, and which see all the
continuous improvements at once.
While XWiki Enterprise is used in the enterprise environment, and it is
backed by commercial companies, it is a true open source project,
following an open source release model, so I don't think that a
proprietary product release scheme is suited.
Our development/release style is closer to the agile development
practice, albeit with mixed release types. In the future, once the core
is more stable than it is now, we'd like to move even closer to a full
agile release process, with 2-3 weeks between final releases. Thus, I
believe that the last release versioning strategy is the best for XWiki
Enterprise.
Note that we're already using this strategy in a more obvious way for
smaller modules (applications, skins, tools), where we do have 1.32 as a
stable version number.
Also note that although 1.9 was followed by 2.0, this was just a
coincidence, and not a natural version evolution, since we also felt
that the code was mature enough to receive a major number bump, but it
could just as well have been followed by a 1.10.
So, there are two different opinions here. One that 3.0 should present
the groundwork/roadmap for the following 3.x releases, and one that 3.0
should be the culmination of the work done so far on the 2.x releases.
The committers (with the exception of Ludovic) believe that the latter
is the better one, and it is in accordance with what we've been doing so
far. What do our users think?
As a final remark, the XWiki Open Source projects are governed by the
committers, so in the end the decision lies in the hands of the
developers, but we're always open to the larger community. If no
consensus is reached about when to release 3.0, we will continue
releasing 2.x versions.
What do XWiki users think? Is 3.0 as a culmination of the 2.x releases,
with no major new features besides what 2.5 already provides, something
the community expects?
I don't know if I must consider myself in Gregory's educated or
uneducated groups, but I really feel myself us included in Sergiu's
users category that try to follow software development. I've two main
reasons to do that:
1. I try to find solutions for I want to do with our team mates as far
as possible
2. I would eventually like to somehow contribute to XWiki development.
Being in that situation, it doesn't matter to me if what is coming next
is a 2.x release, or a 3.0 one. What I would like to have is a clear
idea about what must be able to get working in a given major release.
And, if it does not work, to understand why.
Let me put three examples:
1. PDF styling (recently fixed by Sergiu; I guess this relates with the
new rendering architecture)
2. Lucene indexing
3. Database List and Database Tree property types
All three features have been included time ago enough as considering
them stable. Am I wrong? I am still not able to know if I must be able
to get these three features working, let's say, in a XE 2.5
installation. Or what kind of software I must use, I mean, database and
application/servlet server I must use to guarantee "my" users that they
will be able to index their contents and use the very nice Lucene
features to find contents in attachments. Or search contents in document
title. Or whatever you know Lucene is able to do. Similar comments could
be done concerning points 1) and 3)
Thus, I guess this "stabilization work" you speak about must deal with
this issues. Mustn't it? We want "clean" code and a clear idea about
what we can do, and what we can't. If this work leads to a 2.x release,
or to a 3.0 is not an important decision from my point of view. But, I
must insist, I'm a contaminated user! I try to follow all discussions
and get an idea, as clear as my skills allow me, about how XWiki evolves.
If I think in my own experience using commercial or open source
software, as Ludovic said, I would never expect a x.0 release to be
particularly stable. I can see it as a final point for the evolution of
a x series, but something that has not been tested enough in field work
as to expect it will be bug free. In this sense, I think that it will be
clearer for me to get a 2.y Gold, GA, or RTM. with a far clear document
saying me what I could expect and in what conditions. I know releases
notes do that job. Well, something as Gold Release Notes will be welcome!
One final remark: more than understanding the general release schema,
what is really stopping some users to update more frequently is the
update process by itself. I'm not saying it is difficult in itself, but
is a bit dangerous. As Vincent recently propose in the devs list for the
release process, I do think that a similar work must be done with the
upgrade (and to add an entry here