Maven ReleaseCandidate / beta tags fuer ein release

B

bygones

Gast
HI,

wie wird das eigentlich "normalerweise" geregelt:

Man hat in der Firma einen Codefreeze für ein anstehendes Release. D.h. man will den bestehenden Code branchen und nach einer weiteren Testphase dann releasen.

Das Szenario was ich mir vorstelle wäre:

Ich mach ein Release vom aktuellen Trunk, dieser soll aber wie ein SNAPSHOT behandelt werden, da in der Testphase die Systeme ja immer die neuere bzw gepatchte Version bekommen sollen. Wenn die Phase dann vorbei ist wird der RC zu einer vollen Version released.

Ist das in Maven möglich ?

Sagen wir, wir haben im trunk 2.0-SNAPSHOT. Ich branche/release nun 2.0-RC (oder 2.0-beta). Im trunk wird an 2.1-SNAPSHOT gearbeitet.
Nun wird in der codefreeze phase noch einiges an 2.0-RC ausgebügelt. Am ende soll nun 2.0 released werden.

Geht das - meine Befürchtung ist, dass 2.0-RC ebenso als volle Version gehandelt wird und eine neue Version davon nicht runtergeladen wird....

Danke
 
M

maki

Gast
2.0-RC ist ein Release, kein Snapshot, genauso verhält es sich mit 2.0-beta.
Wird auch von anderen Projekten die Maven nutzen so gehandhabt, sogar von wlechen die kein Maven nutzen ;)

Ich mach ein Release vom aktuellen Trunk, dieser soll aber wie ein SNAPSHOT behandelt werden, da in der Testphase die Systeme ja immer die neuere bzw gepatchte Version bekommen sollen. Wenn die Phase dann vorbei ist wird der RC zu einer vollen Version released.
Wenn du einen Release machst, ist das kein Snapshot ;)

Sagen wir, wir haben im trunk 2.0-SNAPSHOT. Ich branche/release nun 2.0-RC (oder 2.0-beta). Im trunk wird an 2.1-SNAPSHOT gearbeitet.
Nun wird in der codefreeze phase noch einiges an 2.0-RC ausgebügelt. Am ende soll nun 2.0 released werden.
Klar geht das, beachte nur die Namenskonvention für Snapshots und Releases.

Wie du ja weist, werden Snapshot depdencies anders aufgelöst, d.h. es wird immer nach Updates gesucht, mit Snapshot dependencies kann man auch kein Release machen (mangelnde Wiederholbarkeit).

Geht das - meine Befürchtung ist, dass 2.0-RC ebenso als volle Version gehandelt wird und eine neue Version davon nicht runtergeladen wird....
Snapshots haben in Maven bestimmten Konventionen zu folgen, d.h. entweder sie haben ein "-SNAPSHOT" an der Version dran, oder ein Datum (irgendwo gibt es die genaue definition wie Maven einen SNAPSHOT erkennt).
 
B

bygones

Gast
und wie macht man das dann in der codefreeze phase ?

brancht man nur weg und noch nix... setzt den trunk auf die neue Version um, den branch aber nicht ?

Ich such einfach eine allgemeingültige, sinnige Lösung zwischen internen codefreeze und release....
 
B

bygones

Gast
bzw wenn man dann während der codefreeze phase sachen erkennt und die wieder einbauen will - darum gehts mir... beim codefreeze eine version zu haben die sich eben noch ändern kann.

oder geht man dann ala 2.0-beta1 / 2.0-beta2 fuer jedes interne neue release vor ? also immer ein neuer release schritt ?!
 
M

maki

Gast
brancht man nur weg und noch nix... setzt den trunk auf die neue Version um, den branch aber nicht ?
Reicht doch auch, oder fehlt etwas?

Ein Branch pro Release ist imho nicht ungewöhnlich, ein echter "Code Freeze" ist es ja keiner, wird ja noch daran gearbeitet wie du sagst, musst halt nur noch kontrollieren/klarstellen, wer was an diesem Branch machen darf.
 
B

bygones

Gast
Reicht doch auch, oder fehlt etwas?

Ein Branch pro Release ist imho nicht ungewöhnlich, ein echter "Code Freeze" ist es ja keiner, wird ja noch daran gearbeitet wie du sagst, musst halt nur noch kontrollieren/klarstellen, wer was an diesem Branch machen darf.
reicht volkommen aus... wollte nur nachfragen obs da eine andere lösung gibt ;-)
 

kama

Top Contributor
Hallo,

Snapshots haben in Maven bestimmten Konventionen zu folgen, d.h. entweder sie haben ein "-SNAPSHOT" an der Version dran, oder ein Datum (irgendwo gibt es die genaue definition wie Maven einen SNAPSHOT erkennt).

Zum einen die Definition wie Versionen genau aussehen müssen:

Versions Maven Plugin - Version number rules

und für die Timestamp Geschichte:
Versions Maven Plugin - Locking snapshot dependencies

Ein Snapshot wird an "-SNAPSHOT" erkannt....im Repository ist dann in den maven-metadata aufgeführt welcher Uhrzeit der SNAPSHOT entspricht.

Gruß
Karl Heinz Marbaise
 

Neue Themen


Oben