So this is indeed a difficult topic.
We won on the Bootstrap bet, but not so much on the LESS one.
I am not sure which variant would be harder:
A. support for SASS instead of LESS in order to use the Bootstrap 4 or
B. changing to Foundation or Semantic-UI instead of Bootstrap.
I would be -1 for B since as I said I think we 'won' the bet on Bootstrap.
Dumping Bootstrap in order to keep LESS would not be a smart option, but I
agree Semantic-UI comes with a multitude of JS components. I would like us
to be able to integrate somehow Semantic-UI with Boostrap (not sure about
the technical limitations) instead of replacing each other. Using a more
popular framework (like Bootstrap) as the 'core' framework is better in
terms of developer's familiarity and support. Actually we should be happy
that they create a new and improved version of Bootstrap (we were counting
on that). Too bad their backwards policy is not a strong one :) they just
dumped LESS.
Also lots of the extensions (especially some of the Recommended ones) are
using Bootstrap classes, so replacing it is not an option (because of the
volume of work needed).
Regarding A. and the SASS switch, from what I remember we picked LESS since
there was no conflict with the Velocity syntax. We need to reanalyze that.
What I can say is that I don't think we used LESS to much on the
recommended extensions. I know we provided LESS code for the Menu
Application, but besides that I don't know how many other contrib
applications used the feature (would be great if you could mention here if
you used it in your apps). But I have no way to determine if LESS was used
or not in external projects. So the majority of work would be needed on
Flamingo Skin and the Web module. There are similitudes between the
preprocessors so not sure how to evaluate the change's timeline, but it
would not be very complex. But it will take a while to replace the
preprocessors for skin and colorthemes. My guess is that LESS was mostly
used in the Flamingo Themes, in the advanced section, in order to change
the default colors.
Also, as Guillaume mentioned, we could support multiple preprocessors. This
will influence the loading performance for sure, needing to go first in
LESS files, than in SCSS files, etc. Also adding Semantic-UI on top of
Bootstrap will make the load heavier (even if we try to optimize it and
make it selective). But it would surely provide also benefits (new
framework, new components, etc.).
As Marius said there are many things we need to consider for the future.
The easier solution would be to not move Flamingo Skin to Bootstrap 4. Wait
for a new skin to make the change. Or support Bootstrap 3.3.7 for our
selves. Maybe others have the same problem and there will be a forking for
the LESS version. But the question still remains, for new applications and
code we write, how do we make sure what we write will not be deprecated? do
we still use Bootstrap 3 classes? should we still write in LESS or we now
recommend SASS? Or how do we find an easy way to update the code? Or we
just don't update, but change the skin and the version that supports a
certain framework.
Thanks,
Caty
On Mon, Oct 24, 2016 at 7:50 PM, Guillaume Delhumeau <
guillaume.delhumeau(a)xwiki.com> wrote:
Last month, one of the main contributors of Bootstrap
has announced that
the 3.x.x branch will no longer be developed [1].
It means that they are currently putting all their efforts to Bootstrap
4.x, and now they are releasing Alphas so the version 4.0 should be
available soon.
In Flamingo, we use Bootstrap 3.3.7. If we decide to upgrade to Bootstrap
4, we will have the following problems:
1. Bootstrap 4 is not retro-compatible with Bootstrap 3. There are new
components, and some have been removed. We know that some extensions are
using Bootstrap elements so there is a risk they're gonna be broken.
2. Bootstrap 4 no longer uses the LESS language. Instead, they use SASS [2]
(the SCSS variant). Which means we should integrate SASS in XWiki, as we
did for LESS. Some work could be re-used, but there are still work to do,
and it increases the number of CSS preprocessor to support. For the record,
the team has mentioned that Bootstrap might use PostCSS in the future!
I've already spoken about this problem in a previous thread last year [3],
but the problem will probably hits us in the following months. It may be a
strong topic for XWiki 9.x or 10.x.
Note: I haven't mentioned the Bootstrap alternative called "Foundation"
[4], since it would be a bigger breaking change :)
Thanks,
Guillaume
[1]
https://github.com/twbs/bootstrap/issues/20631#issuecomment-244844932
[2]
http://sass-lang.com/guide
[3]
http://markmail.org/message/7sbviier23wzfadf
[4]
http://foundation.zurb.com/
--
Guillaume Delhumeau (guillaume.delhumeau(a)xwiki.com)
Research & Development Engineer at XWiki SAS
Committer on the
XWiki.org project
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs