Skip to main content

Snyk CLI: Einführung von Semantic Versioning und Release-Kanälen

Artikel von
feature datacenters black

30. April 2024

0 Min. Lesezeit

Wir freuen uns, ab v.1.1291.0 Semantic Versioning und Release-Kanäle für Snyk CLI einzuführen. In diesem Blogbeitrag erfahren Sie, warum wir diese Änderungen vornehmen, welche Probleme sie für unsere Kunden lösen und wie Sie je nach Bedarf teilnehmen können.

Welches Problem lösen wir und warum?

Snyk CLI wurde am 2. Oktober 2015 als Release v0.0.0-pre-alpha im World Wide Web und bei Security-Enthusiasten vorgestellt. In den vergangenen acht Jahren haben wir Snyk CLI fast zweitausendmal veröffentlicht – mehr als elfhundert dieser Releases erfolgten allein in den letzten drei Jahren. Das entspricht einem Release alle 32 Stunden und zeigt sowohl den wachsenden Bedarf unserer Kunden als auch das Tempo, mit dem wir diesen Bedarf im Enterprise-Maßstab erfüllen. Mit der steigenden Nachfrage nahmen auch die Komplexität, Reichweite und Auswirkung unserer schnell aufeinanderfolgenden Codeänderungen zu.

Einerseits sorgt die schnelle Bereitstellung von Fehlerbehebungen und Änderungen dafür, dass alle Snyk-Nutzer Zugriff auf unsere neuesten Funktionen haben. Andererseits hat unsere Nutzerforschung mit Enterprise-Kunden gezeigt, dass häufige Snyk-CLI-Releases zusätzlichen Governance- und Compliance-Aufwand verursachen. Als sich diese wiederkehrenden Rückmeldungen abzeichneten, erkannten wir, dass eine Änderung nötig war, um die Snyk-CLI-Erfahrung für unsere Kunden und Endnutzer – von Entwicklern bis hin zu DevSecOps-Teams – zu verbessern.

Als Security-Gate ist Snyk CLI ein zentrales Element unseres Entwicklungsökosystems und des Ökosystems unserer Kunden. Eine Unterbrechung bei Snyk CLI beeinträchtigt unmittelbar die Build-Pipelines unserer Kunden und wirkt sich damit auch auf deren Geschäftsverpflichtungen und die Erfahrung ihrer Nutzer aus. Snyk ist sich des Vertrauens bewusst, das unsere Kunden uns entgegenbringen, und nimmt es sehr ernst. Wir sehen einen bislang ungedeckten Bedarf an der Flexibilität, ein nachhaltiges Tempo selbst zu wählen.

Deshalb führen wir ab v.1291.0 die folgenden Änderungen für Snyk CLI ein:

  • Semantic Versioning für Snyk-CLI-Releases

  • Verschiedene Kanäle, über die unsere Kunden je nach ihren Präferenzen und Bedürfnissen wählen können

Was bedeuten diese Änderungen für unsere Kunden?

Releases

Snyk CLI verwendet die branchenübliche dreiteilige Semantic-Versioning-Notation, wie unten dargestellt.

Bei einer Versionsnummer im Format MAJOR.MINOR.PATCH wird Folgendes erhöht:

  1. MAJOR bei Änderungen, die [nicht abwärtskompatibel sind]

  2. MINOR, wenn Funktionen abwärtskompatibel hinzugefügt werden

  3. PATCH bei abwärtskompatiblen Fehlerbehebungen

Zusätzliche Labels werden den CLI-Releases bei Bedarf gemäß dem Standard hinzugefügt.

Im Kontext von Snyk CLI definieren wir eine nicht abwärtskompatible Änderung als eine Änderung, die automatisierte Workflows beeinträchtigen und zu Fehlern in Ihrer bestehenden Arbeitsumgebung führen kann, etwa bei CI/CD-Integrationen. Nicht abwärtskompatible Änderungen werden durch eine Erhöhung der MAJOR-Version kenntlich gemacht und in den Release Notes erwähnt.

Beispiele für nicht abwärtskompatible Änderungen:

  • Veraltete oder geänderte Ausgabefelder, Feldnamen oder Umgebungsvariablen

  • Einführung verpflichtender Konfigurationsänderungen

  • Änderungen an Fehler- oder Exit-Codes

Je nach Art und Auswirkung des jeweiligen Problems veröffentlichen wir gelegentlich auch Hotfixes, wodurch sich die PATCH-Version erhöht.

Kanäle

Wir führen verschiedene Kanäle ein, damit unsere Kunden den Kanal auswählen können, der ihren Bedürfnissen und Präferenzen entspricht.

Mit der Auswahl eines Kanals legen Kunden fest, welches Stabilitätsniveau und Tempo der Codeänderungen sie nutzen möchten:

Snyk empfiehlt aus folgenden Gründen, den stable-Kanal zu wählen:

  • Ein Stable-Build wird über einen Zeitraum von 8 Wochen umfassend getestet. In dieser Zeit setzen die Snyk-Entwicklungsteams die CLI im SDLC-Prozess ein.

  • Die zugehörigen Release Notes helfen Ihnen dabei, die für Ihre Anforderungen passende Version auszuwählen.

Kunden, die Codeänderungen direkt nach dem Zusammenführen erhalten möchten, können jedoch den Preview-Kanal wählen. Bitte beachten Sie, dass Snyk keinen Support für den Preview-Kanal anbietet und dort bekannte Probleme auftreten können.

Tipp: Bestehende Kunden, die den bisher als „latest“ bezeichneten Kanal gewählt haben, werden automatisch dem Stable-Kanal zugeordnet. Im Hintergrund spiegeln wir die neueste Stable-Version, um Unterbrechungen für unsere bestehenden Nutzer zu vermeiden. Wie im nächsten Abschnitt erläutert, empfehlen wir Ihnen jedoch, zu den neuen Release-Kanälen zu wechseln.

Kanal in der IDE auswählen

Wählen Sie über das im Screenshot unten gezeigte Dropdown-Menü einen CLI-Release-Kanal aus. Sie können zwischen den Release-Kanälen wechseln, beispielsweise zum Release Candidate (rc), um einen Hotfix zu erhalten. Diese Funktion ist in IntelliJ IDE verfügbar. Wir werden sie in Kürze auch auf weitere unterstützte IDEs ausweiten. In allen IDEs ist standardmäßig der Stable-Kanal ausgewählt.

Snyk-Plugin-Einstellungen in einer IDE mit CLI-Pfad, automatischer Binärdateiverwaltung und dem auf „rc“ eingestellten CLI-Release-Kanal.

Fazit

Auch nach fast zweitausend Releases ist es für das Snyk-Team weiterhin eine bereichernde Aufgabe, unsere Kunden und Entwickler dabei zu unterstützen, sicheren Code bereitzustellen. Wir arbeiten kontinuierlich daran, Snyk CLI weiterzuentwickeln und ein herausragendes Developer Experience zu ermöglichen, damit Entwickler ihre Arbeit gut und in einem nachhaltigen Tempo erledigen können.

Wenn Sie Feedback geben oder an unserer Nutzerforschung teilnehmen möchten, wenden Sie sich bitte an unser Support-Team, Ihren Account Manager oder den Produktmanager von Snyk CLI. Wir freuen uns darauf, gemeinsam mit Ihnen die Zukunft von Snyk CLI zu gestalten.