Skip to content

Release cycle de DE

GitHub Action edited this page Jan 12, 2021 · 32 revisions

Veröffentlichungszyklus

ASF verwendet die gängige C# Versionierung mit 4 Zahlen, geschrieben als A.B.C.D. Given version is always frozen, pointing to a fixed source code it was built from (bundled together with the release). We do not intend to remove any previously-published version, as long as our hosting provider (GitHub) remains fine with preserving them for indefinite future, therefore you can safely rollback to any of them without a need of making self-copies.

In general in terms of ASF versioning, we're doing our best to follow semver versioning of MAJOR.MINOR.PATCH on the 3 least significant numbers - B.C.D. Those three numbers are directly related to ASF's code. The most significant A number indicates changes with a scope that goes beyond ASF codebase itself, usually directly affecting the foundation of the program.

ASF as a project is aiming to have more or less one feature release per month, indicated by a bump of C number. In order to make such release possible, we have smaller pre-releases dedicated to advanced users, which serve as smaller milestones of changes that are released on as-needed basis when there will be enough of changes since the last pre-release to focus on. Eventually, when a final pre-release will be determined to be stable and mature enough with no known critical regressions that should be corrected compared to previous stable release, it'll be marked as the new stable release, at the same time opening a new monthly cycle for the next one.

While we're doing our best to ensure that even our pre-releases are relatively stable, it should be noted that pre-releases aren't supposed to be used in any production environment. Pre-releases might have critical bugs and otherwise broken functionality, which is exactly why we're releasing them to begin with - so we can avoid all of that mess in our stable builds and offer reliable software. If you're unwilling to accept higher risk that comes from using potentially unstable software, please avoid using our pre-release builds and stick with our latest stable build instead, which is more appropriate for majority of users.

Depending on amount of changes in the cycle, usually there will be a single C version bump (from previous stable), and D bumps for every pre-release. However, when introducing changes with far bigger scope, especially breaking changes, the cycle might start from (or switch in the middle) to B or even A bump - such switch indicates that current release cycle has a potential to be more unstable than usual, and should be tested carefully. Keep in mind that semver changes we're making relate only to previously released stable version, we do not track versioning across pre-releases in a cycle themselves, which means that version 1.0.1.2 might have a new feature that 1.0.1.1 didn't have, as long as the previously marked stable release is from 1.0.0 family. Likewise, there could be major breaking changes even across two pre-releases from the same cycle, which is especially true when we're still deciding about the final shape of newly-introduced functionality or similar.

Version bump Semver Example of changes
A Major .NET runtime changes, foundation changes, breaking changes that are beyond ASF's codebase
B Major Minor .NET runtime changes, breaking changes in ASF codebase, major code edits that go beyond minor classification
C Minor New monthly cycles, usually introducing new functionalities, commands, configuration properties or other changes that do not break the existing setups
D Patch New pre-releases that are part of existing cycle (indicated by more significant number), critical bugfixes that introduce no code changes beyond necessary

Bitte bedenke, dass neu eingeführte Features und Änderungen bis zu einem späteren Zeitpunkt undokumentiert sein können (z.B. im Wiki), da die Dokumentation in der Regel geschrieben wird, sobald der endgültige Quellcode des jeweiligen Features fertig ist (um uns Zeit zu sparen und die Dokumentation nicht jedes Mal neu zu schreiben, wenn wir uns dazu entscheiden die Funktion an der wir gerade arbeiten zu ändern). Due to the fact that pre-release may contain work-in-progress code that doesn't have a final form yet, documentation may arrive at later stage of the development. Dasselbe gilt für das allgemeine Änderungsprotokoll, das für eine bestimmte Vorabveröffentlichung erst einige Zeit später verfügbar sein könnte. Wenn du dich also entscheidest, eine Vorabveröffentlichung zu verwenden, dann sei darauf vorbereitet von Zeit zu Zeit einen Blick in die ASF Commits zu werfen. Of course, lack of documentation applies only to pre-releases - each stable version must always have a complete changelog and documentation on the wiki the moment it's being released.

Das genaue Änderungsprotokoll, welches eine Version mit einer anderen vergleicht, ist auf GitHub immer verfügbar - durch Commits und Programmänderungen. Im Veröffentlichungsprozess neigen wir dazu, nur Änderungen zu dokumentieren, die wir für wichtig halten, zwischen der letzten stabilen und aktuellen Version. Solch ein kurzes Änderungsprotokoll ist nie vollständig, also wenn du jede Änderung sehen möchtest, die zwischen einer Version und einer anderen passiert ist - benutze bitte GitHub dafür.

ASF project is powered by our continuous integration process. Every build is supposed to be reproducible, therefore it should not be a problem to grab source (included in the release) of given version and compile yourself receiving the same result as the one available through our precompiled binaries. We typically avoid compiling releases ourselves, the released binaries come directly from our CI process.

Clone this wiki locally