On Tue, Mar 10, 2015 at 12:34 AM, Kasun Indrasiri <ka...@wso2.com> wrote:

> How about depending only on released components for a given product
> milestone? Because a given milestone is a stable pack that depends on the
> stables upstream components.
>

If I reiterate the problem, ATM  carbon-governance/carbon-registry are
stable in terms of set of completed features but not yet production ready
as whole hence IMHO we should avoid proper release numbers (e.g
carbon-registry-4.3.2
) for something not yet production ready, we should use either post-fix
like SNAPSHOT or M2, M3 etc.

If we just use proper release numbers for milestone versions it will make
disaster for end users (both internal and external) because they can't
simply find which version is production ready and which one is not yet
ready, usually users tend to use latest available version but with this
approach there is a high chance that latest one is not production ready.
BTW some of the popular project like Spring[1] use set of post-fix so that
end users can easily distinguish GA, Alpha, Beta, M-X versions.

[1] - http://repo1.maven.org/maven2/org/springframework/spring-core/

Thanks !

>
> On Mon, Mar 9, 2015 at 2:06 PM, Sagara Gunathunga <sag...@wso2.com> wrote:
>
>>
>> We are about to release G-Reg 5.0.0 M3 pack but found an issue when
>> releasing a milestone version.  Let me take G-Reg as an example, G-Reg
>> 5.0.0-M3 version is depends on carbon-governance SNAPSHOT version  and that
>> is a legitimate use as well ( As G-Reg 5.0.0-M3 version, we actually
>> release some of the completed features of carbon-governance/carbon-registry
>> repos.)  but Maven release plug-in does not support to release any project
>> with SNAPSHOT dependencies [1] [4], so we have 2 options to solve this
>> issue.
>>
>>
>>
>> *1. ) Modify Maven release plug-in to allow  SNAPSHOT dependencies.*
>>
>> Pros
>> ---------
>> - Fix is relatively straightforward, we just have to remove validation in
>> code and allow  SNAPSHOT dependencies.
>>
>> - No change to release process.
>>
>>
>> Cons
>> ---------
>> - We have to fork and maintain Maven release plug-in locally and will
>> lose new changes from Apache.
>>
>> - If we consider G-Reg-5.0.0-M3 pack, technically it's a milestone
>> version not a snapshot version so as a principle 'creation process of the
>> pack' should be repeatable but if we allow SNAPSHOT dependencies inside
>> product packs 'creation process of the pack' is not repeatable.  This is
>> not something standard, if we decided to go with this approach at least we
>> should not call them as milestone packs instead SNAPSHOT packs (like
>> nightly builds)  e.g -   G-Reg-5.0.0-SNAPSHOT-08-03-15 pack etc.
>>
>>
>>
>>
>>
>>
>> *2.) Instead of SNAPSHOT dependencies, first release own dependencies
>> with M-'X'   (e.g  - carbon-governance-4.4.0-M1 ) and then use these
>> released versions within the milestone product pack. *
>>
>> Example - G-Reg 5.0.0-M3 pack can have carbon-governance-4.4.0-M2 and
>> carbon-registry-4.3.2-M5  but NOT carbon-identity-4.3.1-M2
>>
>> Pros
>> ---------
>> - Again relatively straightforward, we don't need to fork and maintain
>> Maven release plug-in.
>>
>> - AFAIK adding post-fix to distinguish Milestone, Alpha, Beta versions is
>> a standard practise [2] , [3] hence end users already aware not to use
>> milestone versions in production.
>>
>>
>> Cons
>> ---------
>> - There is a chance that other teams can use M-X packs in there milestone
>> releases,  we need a proper governance and disciplines not to do that (e.g
>> - carbon-governance-4.4.0-M1 should be only  use by G-Reg team within WSO2
>> other than special permissions)
>>
>>
>> WDYT ?
>>
>>
>>
>>
>> [1] -
>> http://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html
>>
>> [2] - Spring releases  -
>> http://repo1.maven.org/maven2/org/springframework/spring-core/
>>
>> [3] - Hibernate releases -
>> http://repo1.maven.org/maven2/org/hibernate/hibernate-search/
>>
>> [4] - When I tied for above, build was stopped with following error.
>>
>> [INFO]
>> ------------------------------------------------------------------------
>>
>> [ERROR] Failed to execute goal
>> org.apache.maven.plugins:maven-release-plugin:2.5.1:prepare (default-cli)
>> on project carbon-governance: Can't release project due to non released
>> dependencies :
>>
>> [ERROR]
>> org.wso2.carbon.registry:org.wso2.carbon.registry.admin.api:jar:4.3.1-SNAPSHOT:compile
>>
>> [ERROR]
>> org.wso2.carbon.registry:org.wso2.carbon.registry.common:jar:4.3.1-SNAPSHOT:compile
>>
>> [ERROR]
>> org.wso2.carbon.registry:org.wso2.carbon.registry.extensions:jar:4.3.1-SNAPSHOT:compile
>>
>> [ERROR]
>> org.wso2.carbon.registry:org.wso2.carbon.registry.indexing:jar:4.3.1-SNAPSHOT:compile
>>
>> [ERROR] in project 'WSO2 Carbon - Governance'
>> (org.wso2.carbon.governance:org.wso2.carbon.governance.api:bundle:4.3.1-SNAPSHOT)
>>
>>
>>
>> Thanks !
>> --
>> Sagara Gunathunga
>>
>> Senior Technical Lead; WSO2, Inc.;  http://wso2.com
>> V.P Apache Web Services;    http://ws.apache.org/
>> Linkedin; http://www.linkedin.com/in/ssagara
>> Blog ;  http://ssagara.blogspot.com
>>
>>
>
>
> --
> Kasun Indrasiri
> Software Architect
> WSO2, Inc.; http://wso2.com
> lean.enterprise.middleware
>
> cell: +94 77 556 5206
> Blog : http://kasunpanorama.blogspot.com/
>



-- 
Sagara Gunathunga

Senior Technical Lead; WSO2, Inc.;  http://wso2.com
V.P Apache Web Services;    http://ws.apache.org/
Linkedin; http://www.linkedin.com/in/ssagara
Blog ;  http://ssagara.blogspot.com
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to