Mark Struberg wrote:


You are right, but maybe we mix up two things:

a) In almost all other SCMs (except SVN) a tag is a 'reference' to a specific version. In SVN it's a copy (virtually a readonly branch) so you cannot have multiple tags on the same revision. -> the rettagging isn't valid because it's _not_ physically the same.

This is a philosophical question of source code identity. Is a copy of source code "the same" as the original? What about a symlink? SVN copies are "lightweight;" they're more like symlinks than true copies. Questions like these have no right answer IMO.

b) for SVN it's imho perfectly ok to delete a copy which is erronous, because you don't touch trunk here. So a RC which never got deployed to another area than staging may imho safely be deleted/rollbacked.

It's not "unsafe" to delete/recreate a tag, but it does violate the convention that tags are read-only copies. It's certainly not ideal.

Maybe a mixed scenario would work. Doing development, calling a X-RC-[1-n] if all is ok, do a X release:prepare release:stage, call a vote on that stage, if it passes do a release:perform. That should combine the best parts of both processes, wdyt?

We can't do it quite like that, because release:perform creates a new binary; we have to vote on the final binary. Typically Apache projects who use release:stage use it *instead* of release:perform.

(The way we use it, release:perform is run with a -Prc profile, so it basically is release:stage for all intents and purposes.)

But let's suppose we did what you said, except don't do the final release:perform, just release:prepare, then release:stage, vote, and then manually release the staged RC (perhaps using maven-stage-plugin).

Even then, the tag riddle is in release:prepare. release:prepare is the one that creates the tag, unfortunately. If you need to do multiple RCs, you have to run release:prepare multiple times, and that means deleting/recreating the tag every time like we do today.

If you think deleting/recreating the tag is totally fine, then this won't bother you; we'll just stick with the release process we have today.

But if it bothers you that our tags are mutable, then you'll yearn for some better solution; arguably, Maven is unwilling/unable to provide that solution right now.

-Dan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to