On Mon, Feb 26, 2018 at 1:57 PM, Ecaterina Moraru (Valica) <
valicac(a)gmail.com> wrote:
Hi devs,
I need your input on some questions:
1. (Important) Where to commit Color Themes?
2. Where do we move old / deprecated Color Themes?
3. What should a Flamingo Theme contain?
---
1. Where to commit Color Themes?
We have a running vote for a new default Color Theme. So where should this
theme be committed? When considering this question think about the default
theme, but also to the other Color Themes variations that won't be voted as
a default.
A. Platform (
https://github.com/xwiki/xwiki-platform/tree/master/
xwiki-platform-core/xwiki-platform-flamingo/xwiki-
platform-flamingo-themes/xwiki-platform-flamingo-theme-ui)
PRO: Being default makes sense to be committed in Platform and to not have
a dependency towards a Contrib extension.
CON: It will depends on an 10.x XWiki version. The themes could be used
for any XWiki > 6.2. Having them outside Platform would allow installation
also on older versions.
CON: Slow release process for outside contributions
CON: Grouped: in the current implementation they come as a package, you
cannot install an individual module in a separate Flavor.
B. Grouped on Contrib but as individual modules (example
https://github.com/xwiki-contrib/color-themes/tree/
master/color-theme-iceberg)
CON: Grouped versioning and release process. Each theme could have its own
component on JIRA.
PRO: Medium contributions: The Maven / JIRA / module setup is done only in
the beginning, but still there are technical knowledge to be known how to
contribute a theme.
PRO: XWiki version independent - can be installed on older instances
C. Individual on Contrib (example
https://github.com/xwiki-
contrib/color-theme-iceberg)
PRO/CON: Independent versioning and release process. Still we will be
spammed with JIRA projects for each theme.
CON: Slow contributions since you need to know how to create Maven
modules, provide JIRA components for each theme, release on Nexus, always
ask for a repo, etc.
D. Individual as XARs on e.x.o
PRO: Easy / rapid contributions: you just need to provide a XAR
PRO: Platform version independent
CON: Cannot be referenced as a dependency from a .pom
CON: No blaming or versioning of sources
CON: We don't see the active install of individual themes
---
IMO the default theme should be committed in Platform (A), but all the
other proposals should be in Contrib either grouped (B) or individual (C).
I prefer version B (grouped on Contrib) since the themes are very similar
in concept and for me it doesn't justify all the independent projects on
JIRA, etc. It would be similar to what I did for Icon Themes, see
https://github.com/xwiki-contrib/icon-themes
Other notes:
1.1 The themes from Platform that were not default, should be made as
extensions. This is the case for Garder, Kitty, Marina.
1.2 xwiki-platform-flamingo-theme-bootswatch
https://github.com/xwiki/
xwiki-platform/tree/master/xwiki-platform-core/xwiki-
platform-flamingo/xwiki-platform-flamingo-themes/
xwiki-platform-flamingo-theme-bootswatch should be put in Contrib, as
extensions, since they don't relate to XWiki.
1.3 Keeping just the default in Platform is also good for Flavors. Not all
themes work for all Flavors. Each Flavor would add the dependency they
want. Still this means more work in selecting these themes.
---
2. Where do we move old / deprecated Color Themes?
This question applies for old Color Themes. For example when we retired
Colibri, we moved all the themes in the Attic
https://github.com/xwiki-
attic/skin-colibri/tree/master/xwiki-platform-colorthemes/xwiki-platform-
colorthemes-ui/src/main/resources/ColorThemes even though those themes
still worked (since we made them backwards compatible).
Also the majority of themes on e.x.o are as XARs. How will we deprecate
those?
Also how do we mark themes that are not good looking anymore? Also this
point is very subjective.
I guess the answer to this question depends on what were we vote to commit
the Color Themes.
---
3. What should a Flamingo Theme contain? (difference between Skin and CT)
The Colibri Color Themes contained just colors. Now with the Flamingo
Themes's Advanced section you could easily remove the need to have a Skin
and add there also CSS rules, etc.
The Bootswatch (xwiki-platform-flamingo-theme-bootswatch) themes are a
very bad example, since they change quite a lot of styling and not just
variables.
I just want to enforce that default themes and especially themes that are
provided by XWiki Development Theme should contain only variables. If there
are things we need to override we should fix them first in the Skin, not
just abuse the "Advanced" section capabilities and power.
This is important since the changes done in the Skin apply for all the
Themes. You don't need to duplicate the "hack" for all the themes.
---
Let me know what you think.
Thanks,
Caty