Precedenza degli identificatori di prerelease
Confronta identificatori di prerelease già separati mettendo quelli numerici prima di quelli testuali.
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))- Progetto
- Verifica numeri a più cifre, prefissi comuni e tuple vuote di versioni stabili, rifiutando zeri iniziali e identificatori non validi.
- Controlla prima di applicare
- Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
- Modelli
- Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.
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))Rendi le decisioni di rilascio riconducibili al codice
La gestione delle versioni collega piccole funzioni di confronto a decisioni applicative importanti. Prevernal è un ambiente di programmazione con IA per Windows in cui discutere quel collegamento avendo a disposizione i file di progetto pertinenti. Parti dalla decisione che sembra errata, per esempio quale versione candidata viene selezionata, e chiedi al modello collegato di esaminare il percorso che la produce.
Una richiesta concreta potrebbe confrontare gli identificatori di prerelease usati dalla logica di aggiornamento. Fornisci etichette rappresentative e l'ordine richiesto dal progetto. Chiedi una proposta che distingua etichette non valide da versioni valide ma con priorità inferiore ed esamina come tale distinzione raggiunge il chiamante. Questo mantiene l'attività focalizzata sul comportamento dell'applicazione invece di trasformare la conversazione in una lezione generale sui confronti.
Esamina la modifica risultante con casi di prova di rilascio che esercitino diversi tipi di identificatori, prefissi uguali e una versione finale. Controlla se il chiamante si aspetta un risultato di confronto o un'eccezione, poi esegui i test pertinenti del progetto. Se la proposta cambia la sintassi accettata, trattala come una decisione di compatibilità invece che come un miglioramento incidentale.
Prevernal supporta collegamenti a endpoint compatibili con OpenAI o Anthropic. Dove offerto, puoi selezionare un modello di IA abliterato per questo lavoro di programmazione; restrizioni del fornitore, limiti di contesto e strumenti disponibili dipendono comunque dal servizio configurato. Il modello fornisce assistenza, mentre le regole di rilascio del progetto definiscono i criteri di accettazione.
Esaminare una modifica all'ordinamento delle versioni
- Cosa deve accompagnare una segnalazione sul candidato di aggiornamento sbagliato?
Fornisci le etichette dei candidati, quello atteso come vincitore e il codice che lo sceglie. Includi le regole di ordinamento del progetto. Queste prove aiutano a distinguere un difetto di confronto dalla logica di filtraggio o selezione altrove nel percorso di aggiornamento.
- Gli identificatori non validi dovrebbero essere ordinati sotto quelli validi?
Solo se lo prevede il contratto. Rifiuto e ordinamento sono decisioni distinte e classificare silenziosamente input non validi può nascondere errori a monte. Chiedi come il chiamante gestisce ciascun caso prima di accettare una modifica alla convalida.
- Come può una correzione della sintassi influire sugli utenti esistenti?
Un parser più rigoroso potrebbe rifiutare etichette che prima attraversavano l'applicazione. Identifica da dove provengono quelle etichette e includi valori rappresentativi memorizzati o in ingresso. Esamina la compatibilità separatamente dall'aspetto più pulito della nuova logica di confronto.
- Prevernal pubblica o installa versioni software?
Questa attività usa un ambiente di programmazione per esaminare la tua implementazione relativa ai rilasci. Pubblicazione e installazione appartengono ai processi del tuo progetto. Verifica il codice proposto con i tuoi controlli prima di usarlo per una decisione di rilascio.
Prevernal · Aggiornato 2026-10-25