On 12 Nov 2018, at 14:36, Thomas Mortagne
<thomas.mortagne(a)xwiki.com> wrote:
On Sat, Nov 10, 2018 at 11:52 AM Vincent Massol <vincent(a)massol.net> wrote:
Hi devs,
I’d like to start/revisit a brainstorming on the idea of merging the 3 xwiki repos:
commons, rendering & platform.
Pros:
* Nicer to have XWiki Standard be contained in a single repo
* More logical since we release the 3 at the same time with the same versions
* Simpler to commit. Right now if you make changes that affect more than 1 repo we get
failures in the CI + we need several jira issues ideally + developers need to rebuild
locally the changes from the other repo or wait for the CI to finish building the changes
(takes long).
* Simpler for users to report issues. One jira project is simpler to know where to
report.
* Less CI jobs
* Simpler for running tools like jacoco, clover, etc since they can run in a singe maven
reactor.
* Simpler for releases (e.g. to find the list of committers for the RN, you need to run
the command only once instead of 3 times, etc)
* Simpler to understand the xwiki code base and for onboarding
Cons:
* We need to find a solution for Maven plugins that need to be build before they’re used
(XAR plugin, Package plugin, etc). One solution for those is to have them in a separate
repo and using the last released version for their XWiki dependencies. Unless it now works
with Maven to build plugins in the same reactor as where they’re used (need to try it).
It's not really related to plugins but to lifecycle handlers (xar,
webjar and xip artifact types right now). There is no problem with the
package plugin, it would not be located in platform if there was. Also
what you propose would not really work IMO: you introduce a new
extension when you need it but here you would have to introduce it and
wait for next release.
The way I see it working:
* Those plugins are not changed every day (that’s an important aspect since if they were
it would be a problem)
* When we need to make changes to them, we make the changes in their separate repos, and
release them (same as what we do for CKEditor now)
* Then in the XWiki repo, we update the version of the maven extension dependency (same as
what we do for CKEditor now)
I don’t understand what wouldn’t work with this process?
[snip]
Thanks
-Vincent