[ 
https://issues.apache.org/jira/browse/JCLOUDS-104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13723974#comment-13723974
 ] 

Andrew Phillips edited comment on JCLOUDS-104 at 7/30/13 3:46 PM:
------------------------------------------------------------------

> However I am still a bit unclear on removing (or not) the version from the 
> child projects.

[~zack-s]: Just to take a step back and explain my understanding of the 
fundamental requirements for the project setup:

* during development, the dependent project (labs/cli/karaf) will have a 
snapshot version and will inherit from *the same* snapshot version of 
jclouds-project
* it is not necessary for the snapshot version of the dependent project to be 
different
* it must be possible to release the dependent project so that it inherits from 
a release version of jclouds-project
* the release version of the dependent project can be the same as, but may also 
need to be different from, the release version of jclouds-project (e.g. a fix 
release for the dependent project)
* for a release of the dependent project, the versions of "core" dependencies 
must match the version of jclouds-project
* all the modules of the dependent project will have the same release version. 
It is not necessary for individual module versions to differ

https://github.com/jclouds/jclouds-cli/pull/14 is based on these assumptions:

* during development, the dependent project inherits the snapshot version of 
jclouds-project
* during release, the Maven release plugin prompts for the version of 
jclouds-project *independently of* the release version for the dependent 
project. This allows the dependent project to have a different release version.
* during release, the Maven release plugin also prompts for the versions of 
"core" dependencies. This allows the core dependency versions to match the 
jclouds-project version

This works for CLI. For other projects, OSGi exports could still present a 
problem, since they need to import the correct version of the "core" 
dependencies, which can differ from the version of the dependent project. So 
${project.parent.version} will not work, as that points to the version of the 
*dependent* project.

Hope this helps!
                
      was (Author: andrewp):
    > However I am still a bit unclear on removing (or not) the version from 
the child projects.

[~zack-s]: Just to take a step back and explain my understanding of the 
fundamental requirements for the project setup:

* during development, the dependent project (labs/cli/karaf) will have a 
snapshot version and will inherit from *the same* snapshot version of 
jclouds-project
* it is not necessary for the snapshot version of the dependent project to be 
different
* it must be possible to release the dependent project so that it inherits from 
a release version of jclouds-project
* the release version of the dependent project can be the same as, but may also 
need to be different from, the release version of jclouds-project (e.g. a fix 
release for the dependent project)
* for a release of the dependent project, the versions of "core" dependencies 
must match the version of jclouds-project
* all the modules of the dependent project will have the same release version. 
It is not necessary for individual module versions to differ

https://github.com/jclouds/jclouds-cli/pull/14 is based on these assumptions:

* during development, the dependent project inherits the snapshot version of 
jclouds-project
* during release, the Maven release plugin prompts for the version of 
jclouds-project *independently of* the release version for the dependent 
project. This allows the dependent project to have a different release version.
* during release, the Maven release plugin also prompts for the versions of 
"core" dependencies. This allows the core dependency versions to match the 
jclouds-project version

This works for CLI. For other projects, OSGi exports could still present a 
problem, since they need to import the correct version of the "core" 
dependencies, which can differ from the version of the dependent project. So 
{{${project.parent.version}}) will not work, as that points to the version of 
the *dependent* project.

Hope this helps!
                  
> Change labs/cli/karaf to have their own parent POMs separate from the 
> top-level POM
> -----------------------------------------------------------------------------------
>
>                 Key: JCLOUDS-104
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-104
>             Project: jclouds
>          Issue Type: Bug
>          Components: jclouds-cli, jclouds-karaf, jclouds-labs, 
> jclouds-labs-aws, jclouds-labs-google, jclouds-labs-openstack
>            Reporter: Andrew Bayer
>            Assignee: Zack Shoylev
>             Fix For: 1.7.0, 1.5.11, 1.6.2
>
>
> Currently, jclouds and jclouds-chef each have a parent POM, 
> (repo)/project/pom.xml, which all the other POMs, including the top-level 
> POM, in the project inherit from. jclouds-labs*, jclouds-cli and 
> jclouds-karaf all just have the top-level POM, and everything else inherits 
> from that top-level POM. That makes some processes (like aggregate javadoc 
> and assemblies) done in the top-level POM a bit problematic for the first 
> build of a new version (i.e., in releases). It'd be nice if these projects 
> separated out the parent and top-level POM functionality as well.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to