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.conno...@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 <tibor.k...@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-unsubscr...@maven.apache.org > For additional commands, e-mail: users-h...@maven.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org