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 --- 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

