You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Stefano Lenzi (JIRA)" <ji...@apache.org> on 2008/03/13 00:52:46 UTC

[jira] Commented: (FELIX-155) A better bundle/artifact version numbering scheme

    [ https://issues.apache.org/jira/browse/FELIX-155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12578084#action_12578084 ] 

Stefano Lenzi commented on FELIX-155:
-------------------------------------

AFAIK all the module in Felix are free to depend on any released or snapshot version of other module and each module now have to specify its own dependencies. If I'm correct we can close this issue. What do you think?

> A better bundle/artifact version numbering scheme
> -------------------------------------------------
>
>                 Key: FELIX-155
>                 URL: https://issues.apache.org/jira/browse/FELIX-155
>             Project: Felix
>          Issue Type: Improvement
>            Reporter: Stephane Frenot
>            Priority: Trivial
>
> There is an issue with version management.
> For the moment many bundles are versionned on the same scheme as
> felix framework. ie : 0.8.0-SNAPSHOT
> This is because most of them do not declare a version number in their pom.xml.
> But if you declare a specific version number in you pom.xml there is
> an issue, because you cannot use anymore the default $pom.version in your
> dependencies. So you need to explicitely declare 0.8.0-SNAPSHOT in all
> your depencies, that will lead to a management problem later.
> This is what happens with an example.
> 1) The classical files
> <project>
>   <parent>...felix...</parent>
>     ...
>     <version>0.8.0-SNAPSHOT</version>
>   </parent>
>   ...
>   <dependencies>
>     <dependency>
>       <groupId>...</groupId>
>       <version>${pom.version}</version>  --> This defaults to the
>                                                                                current pom.xml version
>                                                                                if specified, and to the
>                                                                                parent version number if
>                                                                                not.
> 2) The classical solution I found in some bundles
> <project>
>   <parent>...felix...</parent>
>     ...
>     <version>0.8.0-SNAPSHOT</version>
>   </parent>
>   <version>0.1.0-SNAPSHOT</version>  --> Declare a specific bundle
>                                                                               version
>   ...
>   <dependencies>
>     <dependency>
>       <groupId>...</groupId>
>       <version>0.8.0-SNAPSHOT</version>  --> You cannot use  anymore
>                                                                                    ${pom.version} (because
>                                                                                     it is now 0.1.0-SNAPSHOT)
>                                                                                    So you need to specify
>                                                                                    for all your dependencies
>                                                                                    the felix/framework 
>                                                                                   version numbers.
> ******************
> In order to avoid this problem, version dependencies can be declared
> in a DependenciesManagement tag in the main pom.xml. This tags
> declares general version number dependencies. And declares the default
> version number to be used for child artifacts.
> <DependenciesManagement>
>   <dependency>
>     <groupId>${pom.groupId}</groupId>
>     <artifactId>org.osgi.core</artifactId>
>     <version>0.8.0-SNAPSHOT</version>
>     <scope>provided</scope>
>   </dependency>
>   <dependency>
>     <groupId>${pom.groupId}</groupId>
>     <artifactId>org.osgi.compendium</artifactId>
>     <version>0.8.0-SNAPSHOT</version>
>     <scope>provided</scope>
>   </dependency>
> <DependenciesManagement>
> Now your pom.xml can avoid specifying a version number for it's dependencies.
> <project>
>   <parent>...felix...</parent>
>     ...
>     <version>0.8.0-SNAPSHOT</version>
>   </parent>
>   <version>0.1.0-SNAPSHOT</version>  --> Declare a specific bundle
>                                          version
>   ...
>   <dependencies>
>     <dependency>
>       <groupId>...</groupId>
>       <artifactId>org.osgi.core</artifactId>
>       <scope>provided</scope>
>     </dependency>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.