Skip to content

Plattform-Rules nutzen

Plattform-Profile durchsuchen, eine Version pinnen, Updates einspielen und Plattform-Refs in eigenen Profilen verwenden.

Plattform-Rules sind vom CodeCharter-Team kuratierte Regelprofile. Sie bieten versionierte, einsatzbereite Regelsets, die Sie direkt in Ihrer CI-Pipeline referenzieren können, ohne einzelne Regeln selbst pflegen zu müssen.

Was Plattform-Rules sind und wer sie pflegt

Plattform-Profile werden zentral vom CodeCharter-Team veröffentlicht und gewartet. Sie können sie nicht bearbeiten, aber Sie können jede veröffentlichte Version pinnen und in Ihrer .codecharter/config.yml referenzieren. Jedes Profil hat einen unveränderlichen Slug im Namensraum codecharter/, zum Beispiel codecharter/csharp-all, das Dachprofil mit dem vollständigen C#-Regelset.

Profile: Adoptionsstufen und Add-ons

Der Plattform-Regelsatz ist als drei ineinander verschachtelte Adoptionsstufen plus einige fokussierte Add-on-Profile organisiert, sodass Sie klein anfangen und schrittweise hochziehen können:

Slug Anzeigename Abdeckung
codecharter/recommended Recommended Einstieg: ein kleiner, signalstarker Satz aus echten Korrektheitsrisiken sowie den Namens- und Kapselungsregeln, denen praktisch jedes C#-Team ohnehin folgt
codecharter/standard Standard Recommended plus die gängigen Regeln zu Naming, Async, Komplexität und API-Design
codecharter/strict Strict Standard plus die anspruchsvolleren Metrik-, Design- und Stilregeln
codecharter/aspnetcore ASP.NET Core Add-on: ASP.NET-Core-Controller, Actions und Routing-Konventionen
codecharter/documentation Documentation Add-on: Abdeckung mit XML-Dokumentationskommentaren
codecharter/conventions Method & Role Conventions Opt-in: rollen- und verbbasierte Namens- und Methodenform-Konventionen (ein bewusster Hausstil)
codecharter/csharp-all C# All Rules Dachprofil: alle eingebauten Regeln

Die Stufen verschachteln sich: recommendedstandardstrict. Die Add-ons kombinieren Sie mit jeder Stufe — wählen Sie eine Stufe und ergänzen Sie codecharter/aspnetcore für Web-Projekte oder codecharter/documentation für Bibliotheken. codecharter/conventions ist ein meinungsstarker Hausstil und nicht Teil der Stufen; aktivieren Sie es nur, wenn Sie diese Konventionen wünschen. codecharter/csharp-all bleibt das Dachprofil mit allen Regeln.

Die genaue Regelliste jedes Profils sehen Sie auf seiner Detailseite unter Plattform-Regeln im Portal. Jedes Profil referenzieren Sie in Ihrer .codecharter/config.yml auf dieselbe Weise:

# .codecharter/config.yml
version: 1
profiles: ["codecharter/[email protected]"]

Profile durchsuchen

Öffnen Sie Plattform-Regeln in der Seitenleiste (/platform-rules), um alle verfügbaren Plattform-Profile zu sehen. Jede Karte zeigt den Profil-Slug, den Anzeigenamen, die zuletzt veröffentlichte Version und die Anzahl der enthaltenen Regeln. Der Button Details öffnet die Profilseite mit zwei Tabs: Aktuelle Version listet die Regeln der neuesten Version, Versionsverlauf zeigt alle Versionen mit Veröffentlichungsdatum, Regelanzahl und Status.

Eine Plattform-Profil-Version pinnen

Um ein Plattform-Profil in Ihrer CI zu verwenden, kopieren Sie das fertige CI-Snippet und tragen Sie es in Ihre .codecharter/config.yml ein:

  1. Klicken Sie auf CI-Snippet kopieren auf der Profilkarte. Das kopierte Snippet enthält bereits den Slug und die neueste Version des Profils.
  2. Fügen Sie das Snippet in Ihre .codecharter/config.yml ein:
# .codecharter/config.yml
version: 1
profiles: ["codecharter/[email protected]"]
  1. Führen Sie lokal codecharter update aus, um das Lockfile zu aktualisieren. Der Befehl benötigt die Portal-URL und einen API-Key mit dem Scope read:rules (anlegbar auf der Seite API-Keys im Portal):
codecharter update --portal-url https://<dein-portal> --api-key <dein-api-key>
  1. Committen Sie .codecharter/config.yml und .codecharter/codecharter.lock.json zusammen in einem PR.

Legen Sie die .codecharter/config.yml in Ihr Repository, damit codecharter analyze sie findet. In der CI lädt codecharter restore das Profil dann anhand des Lockfiles herunter, ohne das Portal für eine Versionsauflösung abzufragen. restore braucht keinen API-Key, es authentifiziert sich mit Ihrer installierten Lizenz. Fehlt der Cache, führt codecharter analyze automatisch ein implizites Restore aus.

Updates: wann und wie Sie aktualisieren

Plattform-Profile folgen semantischer Versionierung. Wenn der Kurator eine neue Version veröffentlicht, passiert in Ihrer CI nichts automatisch: Ihr Lockfile ist eingefroren. Um auf eine neue Version zu wechseln:

  1. Ändern Sie die Version in .codecharter/config.yml auf die gewünschte neue Version.
  2. Führen Sie codecharter update lokal aus.
  3. Prüfen Sie den Diff der neuen Regeln und mergen Sie den PR.

Patch-Releases (x.y.Z) sind nicht brechend. Minor-Releases (x.Y.0) können neue Regeln enthalten, die vorher nicht geprüft wurden. Major-Releases (X.0.0) können brechende Änderungen umfassen, zum Beispiel entfernte oder umbenannte Regeln.

Yank: was passiert, wenn eine Version zurückgezogen wird

Wenn das CodeCharter-Team eine Version als fehlerhaft zurückzieht (Yank), zeigt die CLI beim nächsten codecharter update eine Warnung:

warning: Profile <slug>@<version> was yanked. Reason: <reason>. Consider running `codecharter update` to move to the next version.

Die Warnung blockiert den Befehl nicht und Ihr Build bleibt funktionsfähig. Wir empfehlen dennoch, zeitnah auf eine nicht-yanked Version zu wechseln.

Plattform-Refs in eigenen Profilen einbinden

Sie können ein Plattform-Profil als Basis für Ihr eigenes Profil verwenden. Öffnen Sie Ihr Profil im Editor und gehen Sie zum Bereich Plattform-Profilabhängigkeiten. Über Plattform-Profil hinzufügen… öffnet sich eine Auswahl, in der Sie ein Plattform-Profil mit einer exakten Version referenzieren. Die Abhängigkeit erscheint danach als Zeile mit Slug und gepinnter Version.

Einzelne Regeln eines Plattform-Profils passen Sie über Ihre .codecharter/config.yml an: Der Abschnitt overrides ändert die Severity einer Regel, der Abschnitt ignore schaltet sie vollständig ab. Regeln werden über ihren Slug adressiert, der über alle Profile hinweg eindeutig ist:

# .codecharter/config.yml
version: 1
overrides:
  <rule-slug>:
    severity: warning
ignore:
  - rule: <other-rule-slug>

So können Sie Plattform-Standards als Grundlage nehmen und projektspezifische Regeln ergänzend hinzufügen. Den vollständigen Satz an Abschnitten finden Sie unter Konfigurationsdatei.