Hi,
The initial contribution is fast approaching so I think it is a good time to update Eclipse Che maven and git structure policy. Actually there are several options unless someone will propose more.
Maven structure:
Each Eclipse Che component (project) has its own POM file which inherits parent POM file. Parent POM file defines all high level configuration.
- We group modules by their nature:
Git Repository
↳
commons ← module grouping
↳
commons-env ← module
↳
src ← module sources
pom.xml ← module pom
commons-schedule ← module
...
pom.xml ← module grouping pom
plugin-java ← module grouping
↳
java-ant-tools ← module
java-builder-ant ← module
...
pom.xml ← module grouping pom
...
pom.xml ← parent pom
- We keep all modules in a root folder:
Git Repository
↳
commons-env ← module
↳
src ← module sources
pom.xml ← module pom
commons-schedule ← module
...
java-ant-tools ← module
java-builder-ant ← module
...
pom.xml ← parent pom
GitHub structure:
- Each Eclipse Che module has its own Git repository (as it is right now)
- All Eclipse Che modules restructured:
- All SDK assembly related components are stored in a single repository (SDK, all SDK plugins, etc.), the components themselves will be git repository submodules
- All custom assemblies are stored in a separate repositories (along with all needed components and plugins)
My thoughts:
I prefer 1st option for Maven structure and 2nd option for GitHub structure. I was guided by the following considerations:
- Though keeping all modules in one place seems to be more maven friendly way the other variant should provide less complexity during addition of a new submodules, simplifies the hierarchy understanding.
- Keeping all related components in a single repository will significantly ease tagging and release process in general.
Does anyone have anything to add or to comment?
With regards,
Dmitry