Rangfolge von Vorabversionskennungen
Vergleichen Sie bereits getrennte Vorabversionskennungen mit Zahlen vor Textkennungen.
import re
IDENT = re.compile(r"[0-9A-Za-z-]+")
def prerelease_cmp(left, right):
for item in (*left, *right):
if not isinstance(item, str) or not IDENT.fullmatch(item):
raise ValueError("identifier")
if item.isascii() and item.isdigit() and len(item) > 1 and item[0] == "0":
raise ValueError("leading zero")
if not left or not right:
return (not left) - (not right)
for a, b in zip(left, right):
if a == b: continue
an, bn = a.isdigit(), b.isdigit()
if an != bn: return -1 if an else 1
if an and len(a) != len(b): return (len(a) > len(b)) - (len(a) < len(b))
return (a > b) - (a < b)
return (len(left) > len(right)) - (len(left) < len(right))- Projekt
- Prüfen Sie mehrstellige Zahlen, gemeinsame Präfixe und leere Tupel für stabile Versionen und lehnen Sie führende Nullen sowie ungültige Kennungen ab.
- Vor dem Anwenden prüfen
- Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
- Modelle
- Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.
import re
IDENT = re.compile(r"[0-9A-Za-z-]+")
def prerelease_cmp(left, right):
for item in (*left, *right):
if not isinstance(item, str) or not IDENT.fullmatch(item):
raise ValueError("identifier")
if item.isascii() and item.isdigit() and len(item) > 1 and item[0] == "0":
raise ValueError("leading zero")
if not left or not right:
return (not left) - (not right)
for a, b in zip(left, right):
if a == b: continue
an, bn = a.isdigit(), b.isdigit()
if an != bn: return -1 if an else 1
if an and len(a) != len(b): return (len(a) > len(b)) - (len(a) < len(b))
return (a > b) - (a < b)
return (len(left) > len(right)) - (len(left) < len(right))Release-Entscheidungen auf den Code zurückführen können
Versionsverarbeitung verbindet kleine Vergleichsfunktionen mit folgenreichen Anwendungsentscheidungen. Prevernal ist eine KI-Programmierumgebung für Windows, in der Sie diesen Zusammenhang mit den relevanten Projektdateien in Reichweite besprechen können. Beginnen Sie mit der falsch erscheinenden Entscheidung, etwa dem ausgewählten Release-Kandidaten, und lassen Sie das verbundene Modell den erzeugenden Pfad untersuchen.
Eine konkrete Anfrage könnte Vorabversionsbezeichner Ihrer Aktualisierungslogik vergleichen. Geben Sie repräsentative Bezeichnungen und die benötigte Reihenfolge an. Fordern Sie einen Vorschlag, der ungültige Bezeichnungen von gültigen, aber niedriger priorisierten Versionen trennt, und prüfen Sie, wie diese Unterscheidung zum Aufrufer gelangt. So bleibt die Aufgabe auf das Anwendungsverhalten ausgerichtet, statt zu einer allgemeinen Vergleichslektion zu werden.
Prüfen Sie den Patch mit Release-Testfällen für unterschiedliche Bezeichnertypen, gleiche Präfixe und eine endgültige Version. Prüfen Sie, ob der Aufrufer ein Vergleichsergebnis oder eine Ausnahme erwartet, und führen Sie relevante Projekttests aus. Ändert der Vorschlag die akzeptierte Syntax, behandeln Sie dies als Kompatibilitätsentscheidung statt als beiläufige Verbesserung.
Prevernal unterstützt Verbindungen zu OpenAI-kompatiblen oder Anthropic-Endpunkten. Sofern angeboten, kann ein abliteriertes KI-Modell für diese Programmierarbeit gewählt werden; Anbietereinschränkungen, Kontextgrenzen und verfügbare Werkzeuge hängen weiterhin vom konfigurierten Dienst ab. Das Modell unterstützt, während die Release-Regeln des Projekts die Abnahmekriterien liefern.
Eine Änderung der Release-Reihenfolge prüfen
- Was gehört zu einem Bericht über den falschen Update-Kandidaten?
Geben Sie Kandidatenbezeichnungen, erwarteten Gewinner und Auswahlcode sowie die Reihenfolgeregeln des Projekts an. Damit lässt sich ein Vergleichsfehler von Filter- oder Auswahllogik an anderer Stelle des Update-Pfads unterscheiden.
- Sollten ungültige Bezeichner unter gültigen einsortiert werden?
Nur wenn Ihre Vereinbarung dies vorsieht. Ablehnung und Reihenfolge sind getrennte Entscheidungen; ungültige Eingaben stillschweigend einzusortieren kann vorgelagerte Fehler verbergen. Fragen Sie vor Änderungen an der Validierung, wie der Aufrufer jeden Fall behandelt.
- Wie kann eine Syntaxkorrektur bestehende Nutzer betreffen?
Ein strengerer Parser kann Bezeichnungen ablehnen, die zuvor die Anwendung passierten. Ermitteln Sie deren Herkunft und berücksichtigen Sie repräsentative gespeicherte oder eingehende Werte. Prüfen Sie Kompatibilität getrennt davon, ob die neue Vergleichslogik übersichtlicher wirkt.
- Veröffentlicht oder installiert Prevernal Software-Releases?
Diese Aufgabe nutzt eine Programmierumgebung, um Ihre Release-bezogene Implementierung zu untersuchen. Veröffentlichung und Installation gehören zu Ihren Projektprozessen. Verifizieren Sie den vorgeschlagenen Code mit Ihren Prüfungen, bevor Sie ihn für eine Release-Entscheidung nutzen.
Prevernal · Aktualisiert 2026-10-25