Zum Hauptinhalt springen

Pre-Releases

Vorabversionen

Eine Vorabversion wird anders behandelt als eine fertige Version — diese Seite sagt genau wie, und wie Chronik.io einen Tag als Vorabversion erkennt, der keinen Haken dafür hat.

Sie sind standardmässig aus

Eine neue Regel kündigt keine Vorabversionen an. Schalte Vorabversionen einschließen ein, wenn du sie haben willst.

Der Grund für diese Voreinstellung: Eine Vorabversion richtet sich meist an einen kleineren Kreis als der Channel, in den eine Regel postet. Wer v2.0.0-rc1 schneidet, spricht mit den Leuten, die sie testen — nicht mit allen, die auf die nächste Version warten.

Was als Vorabversion zählt

Ein Release ist eine Vorabversion, wenn es auf GitHub als solche markiert ist. Chronik.io nimmt diese Antwort so, wie sie ist, egal wie die Version heisst: Den Haken setzt, wer das Release veröffentlicht, und ihn zu entfernen ist der Weg, auf dem aus einem Release Candidate das Release wird.

Ein Tag hat keinen solchen Haken, deshalb entscheidet sein Name. Ein Tag ist eine Vorabversion, wenn direkt auf seine Versionsnummer eine Markierung folgt:

  • 7.3.0-alpha, v2.0.0-beta.2, app-v1.2.0-rc.1
  • v7.1.0.beta1, v7.1.0.rc1
  • 2.0.0rc1, 2.0.0a1, 2.0.0b3, 2.0.0.dev1

Die Markierungen sind alpha, beta, rc, pre, prerelease, preview, dev, canary, nightly, snapshot, next, experimental und insiders, in beliebiger Gross- und Kleinschreibung. Die Versionsnummer braucht mindestens einen Punkt, damit eine Zahl in einem Paketnamen, etwa die 3 in [email protected], nicht dafür gehalten wird.

Jeder andere Tag zählt als fertige Version, auch v1.2.3-1, v5.0.0-lts und ein Tag ohne Versionsnummer. Das ist Absicht: Eine fertige Version, die versehentlich zurückgehalten wird, käme nie in deinem Channel an, und nichts würde dir sagen, dass sie fehlt. Eine Vorabversion, die versehentlich durchkommt, steht wenigstens dort, wo du sie siehst.

Wenn sie an sind, sagen sie es

Eine Ankündigung einer Vorabversion ist als solche gekennzeichnet. Das ist keine Geschmacksfrage: Eine Ankündigung, die wie eine fertige Version aussieht, ist die Art Nachricht, auf die jemand handelt — eine Abhängigkeit aktualisiert, einem Kunden Bescheid gibt — und es hinterher merkt.

Die Kennzeichnung steht in der Nachricht selbst und überlebt damit, dass sie weitergeleitet oder irgendwohin zitiert wird, wo die ursprüngliche Formatierung nicht mitkommt.

Welche GitHub-Events beteiligt sind

GitHub meldet ein Release über mehrere Events, und die überschneiden sich:

  • published — ein Release wurde sichtbar. Feuert für ein normales Release und für eine Vorabversion.
  • released — feuert nur, wenn ein Release veröffentlicht wird, das keine Vorabversion ist.
  • prereleased — feuert nur für eine Vorabversion.

Chronik.io hört auf published, das beide abdeckt, und liest die Vorabversions-Markierung aus dem Release selbst. Deshalb bleibt ein einmal angekündigtes Release einmal angekündigt: published und released treffen als zwei getrennte Events zum selben Release ein, und ein System, das auf beide reagiert, würde zweimal posten.

Aus einer Vorabversion ein Release machen

Wenn du v2.0.0-rc1 als Vorabversion veröffentlichst und später den Haken entfernst, schickt GitHub eine Änderung statt eines neuen Releases. Chronik.io aktualisiert die Nachricht, die bereits im Channel steht, statt eine zweite zu posten — die Kennzeichnung verschwindet aus dem vorhandenen Post.

Hatte deine Regel Vorabversionen ausgeschaltet, wurde beim ersten Mal nichts gepostet, und das Release wird ganz normal angekündigt, sobald es keine Vorabversion mehr ist.

Das Badge

Das Badge des öffentlichen Changelogs nennt eine Vorabversion nur dann, wenn das Changelog Vorabversionen zeigt — und färbt sie dann anders. Ein Badge, das einen Release Candidate in derselben Farbe zeigt wie eine fertige Version, wird als fertige Version gelesen.