The current trunk version has 4 skin directories:
- 'default' is the skin used until this autumn, the classic XWiki skin,
which can still be seen on
old.xwiki.org
- 'new' is (AFAIK) a failed experiment for implementing a new skin, mostly
empty, unused
- 'xwiki10' is the skin developed this summer/autumn by Marta, with the main
goal of improving usability. It was deployed on the intranet, and was used
as the starting point for a few sites. Also it is the starting point for the
beta1 skin (if you take away the images and colors). Thus, we call it the
XWiki10 alpha skin
- 'xwiki10b1' is the current skin, deployed in the beta1.
Problem: we're now working on the beta2. Should we make a new directory,
xwiki10b2? This is bad practice. We will also have 1.0rc1 and 1.0 final, and
then 1.1 and 2.0 (with beta-s and rc-s) and who knows what next. We'll soon
have a dozed directories if we keep it like that.
This is why we must decide on one skin naming convention which should work
for an unlimited timespan.
Options:
1. We continue in the same way as it is now, making lots of skin directories
2. Each major version will have it's own skin directory. Thus, we will have
'xwiki09', 'xwiki10', 'xwiki11', 'xwiki20', etc.
2a. 'default' points to the 0.9 version
2b. 'default' points to the latest stable skin
3. As 2, but each release duplicates the skin, like a svn tag, creating
xwiki10b1, xwiki10b2, xwiki10rc1, etc.
4. We only have two skin directories, 'default' and 'wip' (work in
progress). Once we release a new version, we copy the wip skin as the new
default.
Pros and cons, as I see them:
1+ We don't have to change anything, we continue as it is now
1+ Users kep the old skin intact, nothing gets broken for them
1- Anytime we make a new release, those willing to use the new skin have to
change their settings to reference the new skin
1- We make tons of directories, thus ignoring one of the benefits of version
control.
1- We increase the size of XWiki a lot (the current skin has more than
1Mbyte)
2+ We let users choose their favorite skin-flavor and stick with it
2+ We offer a few different skins to choose from
2a+ we keep a piece of backwards compatibility, meaning that sites based on
the default skin will not be broken with each new release
2b+ we offer the best of XWiki with each new release. Sites using the
default skin unmodified will instantly have a fresh new look, and those that
want to keep the old one just have to change one option.
2b+ default means default, so it should always be the skin used by default
2- We have to override the current directories. xwiki10 (the alpha skin)
will be replaced with the real 1.0 skin, and any site using the alpha will
have to be fixed. This problem only occurs this time, since xwiki10 was used
prematurely, and only in a few sites
3+ If a user prefers the beta2 skin over the final skin, he has a choice,
without asking him to never update that directory or manually copy it into a
'mycustomskin' directory
3- In theory, the skin will be almost the same between the beta1 and final
version, with only minor fixes and improvements. So, anyone wanting to stick
to a temporary version must be crazy :) . Of course, this does not apply to
the 1.0alpha skin.
3- Again, we discard versioning
3- Again, we make too many unnecessary directories which can be retrieved
from the various branches/tags
4+ We make full use of version control, and we keep the xwiki package size
to a minimum. Users always have the latest version of the skin, and we don't
have to maintain too many skin directories up to date with important
features/fixes.
4- We have to change too many existing directories
4- It is hard to fix bugs in existing skins, so we provide poor support for
those who chose to use an older skin.
A big + for keeping the number of directories to a minimum and overriding
existing directories: XWiki users can always copy their skin to a new
directory and use it as it is, ignoring 'default' or 'xwiki10', which are
subject to change.
Another big + for keeping the number of directories to a minimum: new
features/fixes/improvements are usually implemented in only one skin, so at
least you don't have to feel bad knowing that you probably should make the
change in all the other skin directories
A big + for keeping a skin directory for each major release: some
features/fixes/improvements must be implemented in all skin versions, for
the clients using an older version of the skin
Implied changes:
1: None
2a: we copy 'default' into 'xwiki09' and rename 'xwiki10b1' into
'xwiki10',
overriding the alpha skin
2b: 2a + we copy the new skin in the 'default' directory
3 'xwiki10' becomes 'xwiki10a', 'xwiki10b1' becomes
'xwiki10', 'xwiki10b1'
is copied from the beta1 branch
4 'default' remains the same until 1.0 rc1, 'xwiki10b1' becomes
'wip', and
all the other directories are removed. After rc1, we replace 'default' with
the new skin
I vote for 2b.