You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Tibor Kiss <Ti...@indgroup.eu> on 2009/01/12 13:57:17 UTC
release plugin only works with snapshot projects.
Hi.
If I try to prepare a multi-project whose version is a non-snapshot version, it throws an exception:
"You don't have a SNAPSHOT project in the reactor projects list."
I don't understand why is a must to start releasing from a snapshot version?
Regards,
Tibor
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
RE: release plugin only works with snapshot projects.
Posted by Tibor Kiss <Ti...@indgroup.eu>.
Excellent!
Thank you!
________________________________________
Feladó: Stephen Connolly [stephen.alan.connolly@gmail.com]
Küldve: 2009. január 12. 17:40
Címzett: Maven Users List
Tárgy: Re: release plugin only works with snapshot projects.
You can always write your own release plugin... most of the primitives
needed are in a separate module and the maven-release-plugin is just a thin
wrapper on top.
-Stephen
2009/1/12 Tibor Kiss <Ti...@indgroup.eu>
> Thank You!
>
> I asked because I would like to match with our current development
> aproaches. Maybe it worst looking into detail, because here are working
> subcontractors and only module managers are deploying. The separation of
> workspace is realised by SVN authorization on different branches.
>
> Usually we are working in at least two branches. One of the branches plays
> the role of integration and user acceptance test branch (UAT) and at least
> one development branch (DEV_*) (the number of DEV_ branches depends on the
> number of parallel works). This is because the writing permission on UAT is
> given only to module managers! (The development teams usually are different
> subcontractors, so they are working on their own DEV_* or BUGFIX_*
> branches.)
>
> The ideea is that merging into UAT is performed only by module managers.
> But before the DEV team is passing the merging task to module manager, they
> synchronizes with the UAT content (merge from UAT to DEV_) to be in synchron
> state. In this way the DEV_ team has the same sources as on the stable UAT
> plus what they modified. After the development tests (on DEV_ branch)
> passes, everything goes to acceptance tests by merging into UAT and
> releasing it as a staging version. If any errors occurs on user acceptance
> test environment, they will be fixed on DEV_* branches then updated + merged
> to UAT. Every new release is getting a diferent version, so is no version
> overwriting in maven repository.
>
> In UAT environment instead of using 1.1.1-SNAPSHOT version we would use
> 1.1.1-01 (<major version>.<minor version>.<incremental version>-<qualifier>)
> becauses the policy is that on UAT servers is not allowed to install
> developer version. "01" means <qualifier> and always is changing with every
> deployment on UAT environment. At one point a version is passing user
> acceptance tests and that version goes to PRODUCTION. <minor version> we are
> incrementing when incompatible changes are introduced and <incremental
> version> is bound to a feature set.
>
> It seems that the source codes on UAT branch and the DEV_ branches must be
> versioned with SNAPSHOT and the release:prepare (and :perform) commands has
> to be used only on UAT branch by modul managers. Therefore form UAT branch
> is useless to deploy a snapshot. Usually it's enough to use release plugin
> to build releases.
>
> Another issue is that often we have different teams working with
> applications which are interdependent and goes to UAT tests together (not
> enough timeframe each individually be tested on uat env.). That means, they
> will have on their dependencyManagement some SNAPSHOT dependencies which
> needs to be resolved manually before releasing it. Until now I was thinking
> that version range dependencies without -SNAPSHOT would be enough for us,
> but won't be enough. I'm right?
> But what about a two parallel development branch who wouldn't want to see
> each other's on dependencies? They will use non overlapping version ranges
> or all their dependencies (also SNAPSHOT) will be fixed?
>
> Sorry for too much details. Right now I am facing these real condition
> issues which differs a little bit compared to open source aproach.
>
> Regards,
> Tibor
> ________________________________________
> Feladó: Stephen Connolly [stephen.alan.connolly@gmail.com]
> Küldve: 2009. január 12. 14:27
> Címzett: Maven Users List
> Tárgy: Re: release plugin only works with snapshot projects.
>
> Functions as designed.
>
> You should only ever do development work on a project that has a -SNAPSHOT
> version.
>
> The -SNAPSHOT version indicates that this is the version we are working
> towards...
>
> Maven does not allow re-deploying a non-SNAPSHOT version, so that if you
> are
> doing development with a pom that has version 4.5.1 and somebody
> accidentally runs
>
> mvn deploy
>
> Then the code base *at that specific point in time* is what will be
> deployed.
>
> When you then later try to deploy 4.5.1 for real, the redeployment will/may
> be silently quashed (depending on what repository manager and what version
> of the maven deploy plugin you are using) and you have an irreproducible
> build.
>
> So the short answer is: "Because you'll f*ck it up if you don't use a
> -SNAPSHOT version"
>
> -Stephen
>
> 2009/1/12 Tibor Kiss <Ti...@indgroup.eu>
>
> > Hi.
> >
> > If I try to prepare a multi-project whose version is a non-snapshot
> > version, it throws an exception:
> > "You don't have a SNAPSHOT project in the reactor projects list."
> >
> > I don't understand why is a must to start releasing from a snapshot
> > version?
> >
> > Regards,
> > Tibor
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: release plugin only works with snapshot projects.
Posted by Stephen Connolly <st...@gmail.com>.
You can always write your own release plugin... most of the primitives
needed are in a separate module and the maven-release-plugin is just a thin
wrapper on top.
-Stephen
2009/1/12 Tibor Kiss <Ti...@indgroup.eu>
> Thank You!
>
> I asked because I would like to match with our current development
> aproaches. Maybe it worst looking into detail, because here are working
> subcontractors and only module managers are deploying. The separation of
> workspace is realised by SVN authorization on different branches.
>
> Usually we are working in at least two branches. One of the branches plays
> the role of integration and user acceptance test branch (UAT) and at least
> one development branch (DEV_*) (the number of DEV_ branches depends on the
> number of parallel works). This is because the writing permission on UAT is
> given only to module managers! (The development teams usually are different
> subcontractors, so they are working on their own DEV_* or BUGFIX_*
> branches.)
>
> The ideea is that merging into UAT is performed only by module managers.
> But before the DEV team is passing the merging task to module manager, they
> synchronizes with the UAT content (merge from UAT to DEV_) to be in synchron
> state. In this way the DEV_ team has the same sources as on the stable UAT
> plus what they modified. After the development tests (on DEV_ branch)
> passes, everything goes to acceptance tests by merging into UAT and
> releasing it as a staging version. If any errors occurs on user acceptance
> test environment, they will be fixed on DEV_* branches then updated + merged
> to UAT. Every new release is getting a diferent version, so is no version
> overwriting in maven repository.
>
> In UAT environment instead of using 1.1.1-SNAPSHOT version we would use
> 1.1.1-01 (<major version>.<minor version>.<incremental version>-<qualifier>)
> becauses the policy is that on UAT servers is not allowed to install
> developer version. "01" means <qualifier> and always is changing with every
> deployment on UAT environment. At one point a version is passing user
> acceptance tests and that version goes to PRODUCTION. <minor version> we are
> incrementing when incompatible changes are introduced and <incremental
> version> is bound to a feature set.
>
> It seems that the source codes on UAT branch and the DEV_ branches must be
> versioned with SNAPSHOT and the release:prepare (and :perform) commands has
> to be used only on UAT branch by modul managers. Therefore form UAT branch
> is useless to deploy a snapshot. Usually it's enough to use release plugin
> to build releases.
>
> Another issue is that often we have different teams working with
> applications which are interdependent and goes to UAT tests together (not
> enough timeframe each individually be tested on uat env.). That means, they
> will have on their dependencyManagement some SNAPSHOT dependencies which
> needs to be resolved manually before releasing it. Until now I was thinking
> that version range dependencies without -SNAPSHOT would be enough for us,
> but won't be enough. I'm right?
> But what about a two parallel development branch who wouldn't want to see
> each other's on dependencies? They will use non overlapping version ranges
> or all their dependencies (also SNAPSHOT) will be fixed?
>
> Sorry for too much details. Right now I am facing these real condition
> issues which differs a little bit compared to open source aproach.
>
> Regards,
> Tibor
> ________________________________________
> Feladó: Stephen Connolly [stephen.alan.connolly@gmail.com]
> Küldve: 2009. január 12. 14:27
> Címzett: Maven Users List
> Tárgy: Re: release plugin only works with snapshot projects.
>
> Functions as designed.
>
> You should only ever do development work on a project that has a -SNAPSHOT
> version.
>
> The -SNAPSHOT version indicates that this is the version we are working
> towards...
>
> Maven does not allow re-deploying a non-SNAPSHOT version, so that if you
> are
> doing development with a pom that has version 4.5.1 and somebody
> accidentally runs
>
> mvn deploy
>
> Then the code base *at that specific point in time* is what will be
> deployed.
>
> When you then later try to deploy 4.5.1 for real, the redeployment will/may
> be silently quashed (depending on what repository manager and what version
> of the maven deploy plugin you are using) and you have an irreproducible
> build.
>
> So the short answer is: "Because you'll f*ck it up if you don't use a
> -SNAPSHOT version"
>
> -Stephen
>
> 2009/1/12 Tibor Kiss <Ti...@indgroup.eu>
>
> > Hi.
> >
> > If I try to prepare a multi-project whose version is a non-snapshot
> > version, it throws an exception:
> > "You don't have a SNAPSHOT project in the reactor projects list."
> >
> > I don't understand why is a must to start releasing from a snapshot
> > version?
> >
> > Regards,
> > Tibor
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
RE: release plugin only works with snapshot projects.
Posted by Tibor Kiss <Ti...@indgroup.eu>.
Thank You!
I asked because I would like to match with our current development aproaches. Maybe it worst looking into detail, because here are working subcontractors and only module managers are deploying. The separation of workspace is realised by SVN authorization on different branches.
Usually we are working in at least two branches. One of the branches plays the role of integration and user acceptance test branch (UAT) and at least one development branch (DEV_*) (the number of DEV_ branches depends on the number of parallel works). This is because the writing permission on UAT is given only to module managers! (The development teams usually are different subcontractors, so they are working on their own DEV_* or BUGFIX_* branches.)
The ideea is that merging into UAT is performed only by module managers. But before the DEV team is passing the merging task to module manager, they synchronizes with the UAT content (merge from UAT to DEV_) to be in synchron state. In this way the DEV_ team has the same sources as on the stable UAT plus what they modified. After the development tests (on DEV_ branch) passes, everything goes to acceptance tests by merging into UAT and releasing it as a staging version. If any errors occurs on user acceptance test environment, they will be fixed on DEV_* branches then updated + merged to UAT. Every new release is getting a diferent version, so is no version overwriting in maven repository.
In UAT environment instead of using 1.1.1-SNAPSHOT version we would use 1.1.1-01 (<major version>.<minor version>.<incremental version>-<qualifier>) becauses the policy is that on UAT servers is not allowed to install developer version. "01" means <qualifier> and always is changing with every deployment on UAT environment. At one point a version is passing user acceptance tests and that version goes to PRODUCTION. <minor version> we are incrementing when incompatible changes are introduced and <incremental version> is bound to a feature set.
It seems that the source codes on UAT branch and the DEV_ branches must be versioned with SNAPSHOT and the release:prepare (and :perform) commands has to be used only on UAT branch by modul managers. Therefore form UAT branch is useless to deploy a snapshot. Usually it's enough to use release plugin to build releases.
Another issue is that often we have different teams working with applications which are interdependent and goes to UAT tests together (not enough timeframe each individually be tested on uat env.). That means, they will have on their dependencyManagement some SNAPSHOT dependencies which needs to be resolved manually before releasing it. Until now I was thinking that version range dependencies without -SNAPSHOT would be enough for us, but won't be enough. I'm right?
But what about a two parallel development branch who wouldn't want to see each other's on dependencies? They will use non overlapping version ranges or all their dependencies (also SNAPSHOT) will be fixed?
Sorry for too much details. Right now I am facing these real condition issues which differs a little bit compared to open source aproach.
Regards,
Tibor
________________________________________
Feladó: Stephen Connolly [stephen.alan.connolly@gmail.com]
Küldve: 2009. január 12. 14:27
Címzett: Maven Users List
Tárgy: Re: release plugin only works with snapshot projects.
Functions as designed.
You should only ever do development work on a project that has a -SNAPSHOT
version.
The -SNAPSHOT version indicates that this is the version we are working
towards...
Maven does not allow re-deploying a non-SNAPSHOT version, so that if you are
doing development with a pom that has version 4.5.1 and somebody
accidentally runs
mvn deploy
Then the code base *at that specific point in time* is what will be
deployed.
When you then later try to deploy 4.5.1 for real, the redeployment will/may
be silently quashed (depending on what repository manager and what version
of the maven deploy plugin you are using) and you have an irreproducible
build.
So the short answer is: "Because you'll f*ck it up if you don't use a
-SNAPSHOT version"
-Stephen
2009/1/12 Tibor Kiss <Ti...@indgroup.eu>
> Hi.
>
> If I try to prepare a multi-project whose version is a non-snapshot
> version, it throws an exception:
> "You don't have a SNAPSHOT project in the reactor projects list."
>
> I don't understand why is a must to start releasing from a snapshot
> version?
>
> Regards,
> Tibor
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: release plugin only works with snapshot projects.
Posted by Stephen Connolly <st...@gmail.com>.
Functions as designed.
You should only ever do development work on a project that has a -SNAPSHOT
version.
The -SNAPSHOT version indicates that this is the version we are working
towards...
Maven does not allow re-deploying a non-SNAPSHOT version, so that if you are
doing development with a pom that has version 4.5.1 and somebody
accidentally runs
mvn deploy
Then the code base *at that specific point in time* is what will be
deployed.
When you then later try to deploy 4.5.1 for real, the redeployment will/may
be silently quashed (depending on what repository manager and what version
of the maven deploy plugin you are using) and you have an irreproducible
build.
So the short answer is: "Because you'll f*ck it up if you don't use a
-SNAPSHOT version"
-Stephen
2009/1/12 Tibor Kiss <Ti...@indgroup.eu>
> Hi.
>
> If I try to prepare a multi-project whose version is a non-snapshot
> version, it throws an exception:
> "You don't have a SNAPSHOT project in the reactor projects list."
>
> I don't understand why is a must to start releasing from a snapshot
> version?
>
> Regards,
> Tibor
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>