Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [che-dev] Bug 460944 - Dependency convergence



On Wed, Mar 4, 2015 at 9:22 AM, Florent Benoit <fbenoit@xxxxxxxxxxx> wrote:
Hi Sergii,

Why not apply the standard maven dependencyManagement elements of pom.xml so that all subprojects inheriting from maven codenvy parent pom will have nothing to do, the dependency version being automatically set ? (so no need to run any profile, it's done automatically)
 
In theory you are right. In practice I have some doubts because if the do that we will have tremendously huge maven-depmgt-pom which will be probably hard to maintain. 
Any way I'm open to discuss that and if we will have quorum of experts who vote +1 for this. Then I will agree with that.
 
And also provide a bom (bill of materials) file for projects that don't want to inherit from a codenvy maven file but still want to get the correct versions.

These two options are two maven standards.
 
Not sure bom is related to this topic. Can you elaborate more on this topic. What we need to do and why, how it can be integrated with our development cycle? 


Regards,

Florent

On Wed, Mar 4, 2015 at 7:50 AM, Sergii Kabashniuk <skabashnyuk@xxxxxxxxxxx> wrote:
This time I want to discuss with you one of the requirements of enterprise and good sense is dependency convergence. In simple words: all dependencies and transitive dependencies should have same predictable version.

You can read more here 

To achive this goal I've added a maven  profile  dependency-convergence so you can test that you project is satisfy to this requirement.

Example:
 mvn clean install -Pdependency-convergence


Also we want to introduce a couple of requiroment for all subprojects related to codenvy and che.
1. All dependencies in subproject have to be declared from version taken from 
2. You should not declare dependencies version in subproject parent pom.
3. All subprojects should pass tests with  dependency-convergence maven profile
4. All plugin should not have version in subprojects and should take it from https://github.com/codenvy/maven-parent-pom
5. Subprojects should try to avoid usage of apache commons and use guava instead.
6.  After project  successfuly pass dependency-convergence maven profile it have to be enabled on jenkins.

A list of project that already pass  dependency-convergence maven profile you can find here https://bugs.eclipse.org/bugs/show_bug.cgi?id=460944.

Plz consider to fix 1-6 requirements as soon as you can.

Sergii Kabashniuk




Back to the top