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))- 프로젝트
- 여러 자리 수, 공통 접두사, 정식 버전의 빈 튜플을 시험하고 선행 0과 잘못된 식별자를 거부하세요.
- 적용하기 전에 검토하세요
- 실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
- 모델
- 기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
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))릴리스 결정을 코드까지 추적할 수 있게 하세요
버전 처리는 작은 비교 함수를 중요한 애플리케이션 결정과 연결합니다. Prevernal은 관련 프로젝트 파일을 곁에 두고 그 연결을 논의할 수 있는 Windows AI 코딩 작업 공간입니다. 어떤 후보 릴리스가 선택되는지와 같이 잘못된 것으로 보이는 결정에서 시작해 연결된 모델에 그 결정을 만드는 경로를 살펴보도록 요청하세요.
구체적으로 업데이트 로직이 사용하는 프리릴리스 식별자를 비교해 달라고 요청할 수 있습니다. 대표 레이블과 프로젝트가 요구하는 순서를 제공하세요. 유효하지 않은 레이블과 유효하지만 우선순위가 낮은 버전을 구분하는 제안을 요청하고 그 구분이 호출부에 어떻게 전달되는지 살펴보세요. 그러면 대화를 일반적인 비교 강의로 만들지 않고 애플리케이션 동작에 집중할 수 있습니다.
서로 다른 식별자 유형, 동일한 접두 부분, 정식 릴리스를 다루는 릴리스 테스트 데이터로 결과 패치를 검토하세요. 호출부가 비교 결과와 예외 중 무엇을 기대하는지 확인한 뒤 관련 프로젝트 테스트를 실행하세요. 제안이 허용 구문을 바꾼다면 부수적인 개선이 아니라 호환성 결정으로 취급하세요.
Prevernal은 OpenAI 호환 또는 Anthropic 엔드포인트 연결을 지원합니다. 제공되는 경우 이 코딩 작업에 거부 성향을 제거한 AI 모델을 선택할 수 있습니다. 제공업체 제한, 컨텍스트 한도, 사용 가능한 도구는 여전히 설정한 서비스에 따라 달라집니다. 모델은 도움을 제공하며 수용 기준은 프로젝트의 릴리스 정책이 제공합니다.
릴리스 순서 변경 검토하기
- 잘못된 업데이트 후보에 대한 보고서에는 무엇을 함께 제공해야 하나요?
후보 레이블, 예상 선택 결과, 선택 코드를 제공하세요. 프로젝트의 순서 정책도 포함하세요. 그 증거는 비교 결함과 업데이트 경로의 다른 곳에 있는 필터링 또는 선택 로직 문제를 구분하는 데 도움이 됩니다.
- 유효하지 않은 식별자는 유효한 식별자보다 낮게 정렬해야 하나요?
규약이 그렇게 정한 경우에만 그렇습니다. 거부와 순서는 별개의 결정이며 잘못된 입력에 조용히 순위를 매기면 상위 단계의 오류가 숨겨질 수 있습니다. 검증 변경을 수용하기 전에 호출부가 각 사례를 어떻게 처리하는지 물어보세요.
- 구문 수정이 기존 사용자에게 어떤 영향을 주나요?
더 엄격한 파서는 이전에 통과하던 레이블을 거부할 수 있습니다. 해당 레이블의 출처를 파악하고 저장되거나 입력되는 대표 값을 포함하세요. 새 비교 로직이 더 깔끔해 보이는지와 별개로 호환성을 검토하세요.
- Prevernal이 소프트웨어 릴리스를 게시하거나 설치하나요?
이 작업은 코딩 작업 공간에서 릴리스 관련 구현을 살펴보는 것입니다. 게시와 설치는 프로젝트 자체의 절차에 속합니다. 릴리스 결정에 사용하기 전에 자체 검사로 제안 코드를 검증하세요.
Prevernal · 업데이트 2026-10-25