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: recommended ⊂ standard ⊂ strict. 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:
- Klicken Sie auf CI-Snippet kopieren auf der Profilkarte. Das kopierte Snippet enthält bereits den Slug und die neueste Version des Profils.
- Fügen Sie das Snippet in Ihre
.codecharter/config.ymlein:
# .codecharter/config.yml
version: 1
profiles: ["codecharter/[email protected]"]
- Führen Sie lokal
codecharter updateaus, um das Lockfile zu aktualisieren. Der Befehl benötigt die Portal-URL und einen API-Key mit dem Scoperead:rules(anlegbar auf der Seite API-Keys im Portal):
codecharter update --portal-url https://<dein-portal> --api-key <dein-api-key>
- Committen Sie
.codecharter/config.ymlund.codecharter/codecharter.lock.jsonzusammen 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:
- Ändern Sie die Version in
.codecharter/config.ymlauf die gewünschte neue Version. - Führen Sie
codecharter updatelokal aus. - 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.