Hi,

I'd like to propose a new subproject on JIRA, called XWiki Flavors.

What is a Flavor? A flavor is a custom XWiki-based site, with one specific goal in mind. The XPN team creates such flavors when working for client project. As it is said on http://jira.xwiki.org/jira/browse/XWIKI-356 , by default XWiki comes with a collection of pages, panels, classes, a pre-selected skin, etc, which gives it a "flavor". Right now, it looks like a nice site where you can put some pages (content), articles, documentation, etc. It is a weak flavor, since it's a mixture of different ingredients put all together.

An example of a "strong" flavor is a blog-wiki. When you install XWiki and choose the blog-flavor, you will get the full functionality of any blog app (for example blogger or wordpress) without having to customize anything, without having to import one or several xar-s, editing the main page or anything. Of course, after the user gets used to the blog (and XWiki) he can customize the skin (using a friendly skin browser and a skin wizard), the displayed panels (using the panel wizard), and many other things (actually anything a user can change in XWiki, which is everything).

Other strong flavors could be content management, OpenSource project website (about, developer guide, user guide, download, ...), or just the documentation for such a project (many projects use wikis now), Social Networking site (link and photo sharing, tagging, reviews), project management, and so many more.

Why are flavors necessary? Because XWiki is too powerful. Put it in the hands of some who-knows-what "haskel model checker" developer who only knows about axioms, theorems, proving, model checking and functional programming, and he will run away very fast to a simple wiki engine, or worse, a CMS. But hide all the power behind a simple interface, with only what he needs in order to publish some info about his project, and we have a happy XWiki user.

Why do we need a new subproject? Because:
- putting all the flavor-specific issues in the "Default database" component is not efficient
- neither is putting them in a new "Flavors" component
- we don't know how many flavors we will create, so making an XWiki component for each flavor will bloat the component list
- flavors don't follow the XWiki platform release plan; they get shipped when they are ready

What is the relation between flavors, default database, and xwiki-applications?
The default database should be almost empty. It should contain mainly the setup wizard, which can be used to install a flavor.
A flavor contains some applications bundled together. It is not enough to put only the individual applications in JIRA, because a flavor is more than that: a custom skin, configuration for the applications, rights setup, other documents outside of applications, java plugins, XWiki configuration, and even more.

What should the subproject contain? First, a "global" component, regarding flavor development, deployment, integration, installation. Then a component for each flavor we are currently supporting (or starting to work on).

WDYT?


Sergiu
--
http://purl.org/net/sergiu