While we have several crosscutting concerns in mind in our development process (e.g., accessibility), the questions of sustainability is never mentioned explicitly.
This proposal does not aim at proposing concrete solutions, but to agree on the principle so that contributors can more easily take actions without having to argue on the basis.
Why
The internet currently produces approximately 3.7% of global carbon emissions, which are rising in line with our hunger to consume more data.
By making XWiki more sustainable, we have a chance to have a positive impact on all XWiki instances.
To be more concrete, the promises of sustainable development includes:
Reduced terminal obsolescence
Battery conservation
Reduced mobile data consumption
Protection of personal data
Faster loading times
Optimized referencing
Better accessibility
How
I propose to progress by studying the resources listed below (or any other resource), and to do individual proposal for each topic.
Note that in my opinion we are already good on several aspects (e.g., accessibility, minimizing css…) and for those we can consider that our current best practices are already enough, or we can improve them further.
Example of actions are:
introduce relevant metrics gathering to help decision
improve our best practices
propose/provide improvements to companies using XWiki in production (e.g., XWiki Standard does not rely heavily on images, but some instances can and could benefit from some tooling to make images smaller)
improve our design process to anticipate sustainability needs
What do you think of making sustainability a crosscutting concerns of our development process, and to aim at incrementally progress toward a more sustainable XWiki?
In my opinion most of the promises of sustainable development are beneficial for us as a project and we work towards them already. However it’s lacking some documentation, and I think adding a new item on the dev.xwiki.org home page would be a good start. I know that at least this’d be really useful for the accessibility part
As of now, except for a couple lines here and there, there’s nowhere to record our objectives and improvements related to accessibility without it feeling out of place or like a sidenote. I think having an “Accessibility” page that contains everything to know on the topic related to XWiki would be an improvement. As a crosscutting concern, it can be mentionned in a lot of pages, but having a hub to sum-up our intentions and efforts would be better.
As far as I understand optimized referencing is not something we are really aiming for, right?
I think that one of the first things we want to do is to settle on a formal definition of the “sustainable development” we’d like to reach. This choice in itself will rule out some topics, and if possible, I’d rely on a definition made by experts and/or a standard definition. If the definition you proposed is one of such, I’d like to know where it comes from so I can judge the bias on it and think about a potential oversight. It might be overkill, but this definition can become the fondation of an important facet in our development process moving forward, so I think it’s worth the time
+1 to incrementally progress towards a more sustainable XWiki
One important note: IMO we should not aim just for XWiki to be more sustainable at runtime (ie less resource hungry basically) but also during its development phase (for example, I believe that our CI is probably quite resource intensive and there might be ways to reduce that while keeping the same quality level to the XWiki product).
+1 for you (or anyone interested) to research more about the topic and propose some tangible actions.
For me the first step is to have it written somewhere so that we can’t ignore it.
Then, this could influence the decision process for future works. Some examples:
the default embedding of features relying on LLMs
the use of APIs only available on modern devices
Also, for now we tend to wish to use less resources, but we have no metrics to measure how we do in this regard which makes it difficult to effectively achieve that goal.
If we have the dedicated resource and some concrete actions to do, definitely.
OK, so you are focusing more on adding a criterion to judge the design of future features and improvements than improving existing stuff ?
My point was more related to improving existing stuff, and the fact that it takes time, and just stating that using less resources is a priority is pretty useless without time dedicated to it.
It could also be used as a criteria to decide what to improve first indeed.
Since we don’t have proper financing for this kind of things for now, I’m focusing on avoiding to make things worse when we introduce new things.
But I believe if will be easier to raise some money to work on sustainability if we already started to think and work on the topic beforehand.
We do dedicate some time to improving performances of existing features (and I believe that this indirectly improves co2).
Anything added is going to make things worse. At best you can limit the co2 cost of additional features by making them performant. I don’t really see how we can keep XWiki being competitive and not add new features (like AI features).
A mitigating factor is our extension-based approach where new features are added as extensions that are not installed by default (and thus not used by users who don’t need them).
Working on having an XS distribution as small as possible is probably a good direction (in addition to being as fast as possible).
I haven’t read any doc related to green IT yet but I’m curious to understand what are our levers in addition to perfs & size (since I don’t consider limiting feature a real option).
Thanks to the latest blog post by Adrian Roselli, I found out about the Web Sustainability Guidelines (WSG). This is still just a draft but it might be interesting to keep an eye on the initiative
This could become a good resource for formalizing and keeping track of some of the sustainability improvement we make.
The content of this blog post seems short-sighted to me. It may be true as of today but I don’t believe it’ll be the case in a couple of years from now (even a couple of months).
Very interesting. Also a lot of work to map each items to our practices. I’ve skimmed quickly and found that we had best practices/dev practices in place for all the items I’ve read. Now I’m sure we can do better on some and it’s likely that there are items that we don’t do properly yet.
I’d be interesting that we start a draft document on xwiki.org to map each item to our practices and define a rating of how well (or badly) we do on each, pointing to links where our practice is documented.
Some though from the “RWEB, RGESN, GR-491, SWG, … Navigating the maze of frameworks and still delivering ecodesigned digital services” presented at Green IO Paris.
We mentioned w3c but, as of now it seems like it is not the most complete standard, so we might want to discuss which standard we want to follow.
To close this discussion.
After checking the list of sustainable development best-practices references listed in the screenshot above.
I ignored the very generic references.
Most of the remaining ones are in French, reducing the choice to:
W3C Web Sustainability Guidelines (WSG)
The Green Software Pattern which is way less complete than WSG
I also wanted to open a discussion in a different thread on a Performance Manager role (and the Sustainability Manager role would be for topics not reated to performance).
Definitely, the sub-pages are currently mostly copy of the rules, and personal notes.
I plan to complete them fully before doing the corresponding proposal.
Good point, I’ll need to rework this to make it less “XWiki SAS” specific.
Yes, I was considering moving to a more structured approach with XClasses and Live Data macros. But it was too time-consuming for a fist minimal work on a Friday afternoon
Anyone is free to contribute, just please let me know beforehand, to make it easier to track our progress.