Hi,
I’d like to progress with this idea so let me summarize this thread’s discussion so far:
* +1 from Thomas, Guillaume, Caty and Marius
* No answer from Edy on whether he’s ok with the proposal or not. Edy? :)
* Denis seems negative about it but I agree with Thomas’s reply in that the points raised
by Denis do not concern this discussion. Denis commented about publishing and installing
Extensions, whereas this proposal was only about a location for storing some extensions.
Extensions can be developed anywhere and don’t have to go into this new proposed location.
Denis, could you please review this new proposal with this in mind?
* There were discussions about the name and devs express doubts about using
xwiki-contrib-sandbox.
I’d like to progress so here’s my second proposal. It differs from the first proposal on
the following points:
* All our code is contributed so I don’t think we need to emphasize this point and I don’t
think we need to have “contrib” in the name of the github repos. This will lead to shorter
names which is better.
* I propose to have 3 github org:
** xwiki-core (currently “xwiki” but we should probably rename it - Github will create
redirects and the only downside is that we need to check it out for making repo changes)
** xwiki-extensions (new). For maintained and good quality level extensions, following the
charter defined in the first proposal (we’ll tune it). Committers are added extension by
extension and will be voted on the devs list for now, by the xwiki core devs (we’ll tune
that later on)
** xwiki-incubator (currently “xwiki-contrib” but we should rename it). Extensions in
xwiki-extensions that are no longer working with the latest LTS and that nobody is fixing
will move back to xwiki-incubator too.
* I propose to change the goal of the
contrib.xwiki.org wiki and to expand its goal. Right
now it’s focused about the xwiki-contrib organization on GitHub. I propose to make it the
wiki that explains how to make contributions to the XWiki ecosystem in general. We would
move
http://dev.xwiki.org/xwiki/bin/view/Community/Contributing + add pages for explaining
how to contribute to xwiki-core, xwiki-extensions and xwiki-incubator.
* ATM we should continue to use the “org.xwiki.contrib" groupid for code in the
xwiki-incubator and xwiki-extensions organizations. Ideally we should use
org.xwiki.extension but it’s already used by the Extension module in xwiki-core. An option
would have been to use org.xwiki.core for the core but that would break too much code so
the only option is to keep having a special prefix for non-core code. Other ideas:
“org.xwiki.module”, “org.xwiki.ext”, “org.xwiki.external”, “org.xwiki.addon”. The simplest
is to keep “org.xwiki.contrib” I think, WDYT?
Once (and if) we agree on this, I’d like to quickly move some existing extensions from the
xwiki-core organization into xwiki-extensions, starting with the FAQ Application, in order
to start testing this new organization.
WDYT?
Thanks
-Vincent
On 3 Dec 2014 at 15:58:36, vincent(a)massol.net
(vincent@massol.net(mailto:vincent@massol.net)) wrote:
Hi committers (and devs in general),
I’m submitting to you this idea, to try to improve the xwiki open source project and to
give it a new dynamism. I believe the topics discussed below are made even more important
since we’re soon going to develop the notion of flavors in XWiki.
Note that this proposal obsoletes the
http://markmail.org/message/4hglttljiio5v2km
proposal (i.e. the move of some extensions in the xwiki github organization), which itself
was obsoleting
http://markmail.org/message/ppw2slpgqou2ihai
Issues to solve
===============
* The scope of the code maintained by the XWiki Dev Team (== the xwiki github
organization) is increasing but the team stays relatively small
* The more stuff we move into the repos of the xwiki github organization, the less easy
it is for non-“XWiki Dev Team” committers to participate and we want more contributions
Proposed solution
=================
Executive summary:
* Reduce the scope of all the code located in the xwiki github organization by only
keeping “core” modules
* A “core" module is defined by being a generic transversal module (i.e. that can be
used in lots of XWiki flavors, if not all). This is opposed to “vertical” modules which
are modules specific of a usage of XWiki.
** Examples of “core" modules: logging module, configuration module, distribution
wizard, statistics application, annotations, active installs, one base flavor (the “XWiki”
flavor), etc
** Example of “vertical” modules: meeting manager application, blog application, FAQ
application, flavors (except the base flavor), etc
Some consequences:
* We need a new location for several modules that would go out of the xwiki github
organization repos
* It would be good to separate sandbox extensions from 1st class extensions that are
maintained and developed following best practices. We need some way to maintain the
quality of important extensions
Detailed Implementation:
* The “xwiki” github organization’s description becomes “XWiki Core” (it’s too complex to
rename the org to “xwiki-core” IMO)
* “XWiki Dev Team” becomes the “XWiki Core Team” (and committers in there are called
“XWiki Core Committers”).
* “xwiki-contrib” is split into 2 github organizations (technically we rename it to
“xwiki-contrib-sandbox”):
** “xwiki-contrib-sandbox” (or “xwiki-incubator”), where newly proposed extensions or
abandoned extensions are located
** “xwiki-contrib-extensions”, where maintained extensions are located.
* These 2 organizations are commonly referred to as “XWiki Contrib"
* Same as now, anyone requesting a repo in xwiki-contrib-sandbox would be granted one and
he/she’d be given write access to all repos in the xwiki-contrib-sandbox organization.
* We define some rules for graduating from xwiki-contrib-sandbox to
xwiki-contrib-extensions. For example:
** The extension should have been in xwiki-contrib-sandbox at least 6 months (this gives
time to see if the extension is maintained during that time and will survive the test of
time - most extensions will die in the first months)
** The extension should have had more than 2 releases and be published on
extensions.xwiki.org(http://extensions.xwiki.org) with documentation
** The extension should work with the latest LTS version of XWiki + the latest stable
version of XWiki (right now that would be 5.4.5 + 6.3). Note that if the extension has to
use new API it’s ok that it doesn’t work on the latest LTS.
** Generally follow the practices defined at
http://dev.xwiki.org
* Each extension in xwiki-extensions has a leader/maintainer. He/she’s the one proposing
to move the extension from xwiki-sandbox to xwiki-extensions. He/she’s responsible for
ensuring that the extension gets regular releases and is maintained in general. He/she
defines initially the list of committers in his email proposal for moving the extension.
* We create a PMC (Project Management Committee) for XWiki Contrib, generally in charge
of both xwiki-contrib-sandbox and xwiki-contrib-extensions (voting new extensions in
xwiki-contrib-extensions, vote new PMC members, etc). To bootstrap it, I would send a mail
on devs@ asking who’s interested to be part of this committee. I expect some core
committers + some contrib committers to stand up.
* Contrib extensions keep using the org.xwiki.contrib package name and groupid as
currently defined at
http://contrib.xwiki.org
Note: The idea is that xwiki core is developed as a team maintaining all code in there,
xwiki contrib is developed extension by extension (each extension is an island). This
allows anyone to propose extensions in XWiki Contrib without the need for everyone to
support them.
WDYT?
Thanks
-Vincent