Files
llm-wiki/raw/official-docs/calver-spec-calver-official.md

84 lines
7.7 KiB
Markdown

---
title: CalVer — Calendar Versioning Specification (calver.org)
source_type: official-doc
url: https://calver.org/
archive_url:
related_branches: [feature-build-release-supply-chain-contract]
related_projects: [ca-skeleton]
vendor: calver.org
tags: [official-doc, ca-skeleton, ci-cd, calver, semver, version-scheme, calendar-versioning]
created: 2026-06-15
---
# CalVer — Calendar Versioning Specification (calver.org)
> Layer: `raw/` — 외부 자료(공식 문서)의 원문 발췌·출처 기록.
> 검증된 요약은 `/ingest` 후 `wiki/concepts/`에 `source-summary-template` 형식으로 별도 작성. 원본은 raw에 영구 보관.
## Parent / 활용 branch
| Branch | 이 자료가 정당화하는 결정 |
|---|---|
| [[raw/branch-notes/feature-build-release-supply-chain-contract]] | Decision D9 — "CalVer forbidden"의 negative-evidence: CalVer when-to-use 기준(대규모/시간민감 scope)이 library/skeleton에는 해당하지 않음. |
## 출처 / Source
- 원본 URL: https://calver.org/
- 아카이브 URL: (미등록)
- 저자 / 조직: calver.org (Mahmoud Hashemi 외 기여자)
- 발행일: (연도 미표기, ongoing)
- 마지막 확인일: 2026-06-15
## 왜 저장했는지 / Why archived
`feature-build-release-supply-chain-contract` 브랜치의 D9 결정 — "artifact version = SemVer + git sha suffix, CalVer forbidden" — 의 negative-evidence 근거.
CalVer 공식 사이트가 명시하는 적합 조건(대규모/상시변동 scope, 시간민감 프로젝트)이 library skeleton에 해당하지 않음을 원문으로 뒷받침하며, library/API compatibility-contract 사용 사례에 대한 권고가 원문에 **아예 없음**을 기록한다.
## 핵심 인용 / Key quotes (verbatim, 3~5문장)
> [§Overview / Definition] "CalVer is a versioning convention based on your project's release calendar, instead of arbitrary numbers."
> [§Overview / When to use — Question 1] "Does your project feature a large or constantly-changing scope?"
> [§Overview / When to use — Question 2] "Is your project time-sensitive in any way? Do other external changes drive new project releases?"
> [§Overview / When to use — Conclusion] "If you answered yes to any of these questions, CalVer's semantics make it a strong choice for your project."
> [§Absence — explicit] calver.org 는 library 개발, API compatibility contract, skeleton project 용도에 대한 권고를 **전혀 포함하지 않는다**. "when NOT to use CalVer" 섹션도 존재하지 않는다. 위 두 질문에 "no"를 답하는 프로젝트(scope 고정, 시간민감 아님)에 대한 지침은 원문에 없다. (absence-of-guidance notation — verbatim 발췌 아님)
## Claims Extracted / 추출된 주장
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|---|---|---|---|---|---|
| CALVER-C1 | CalVer는 "임의 숫자" 대신 프로젝트의 릴리즈 캘린더를 기반으로 하는 버전 규약이다 | [§Definition] "CalVer is a versioning convention based on your project's release calendar, instead of arbitrary numbers." | `official-reference` | CalVer를 도입/비교하는 모든 프로젝트 | SemVer가 더 적합한 경우에 대한 직접적 언급 없음 |
| CALVER-C2 | CalVer의 첫 번째 적합 조건: 프로젝트가 대규모이거나 상시 변동하는 scope를 가지는가 | [§When to use] "Does your project feature a large or constantly-changing scope?" | `official-reference` | Ubuntu, Twisted, Boltons 같은 대형 시스템/유틸리티 모음 | 소규모·고정 scope를 가진 library/skeleton에 CalVer를 쓰지 말라는 명시적 금지 아님 — 질문에 "no"를 답하는 경우는 원문이 침묵 |
| CALVER-C3 | CalVer의 두 번째 적합 조건: 시간 민감하거나 외부 변화(보안 업데이트, 비즈니스 변경, timezone 변경 등)가 릴리즈를 구동하는가 | [§When to use] "Is your project time-sensitive in any way? Do other external changes drive new project releases?" | `official-reference` | certifi(인증서), pytz(timezone), security patch 중심 프로젝트 | compatibility contract가 주 설계 축인 library에는 이 조건이 미적용임을 명시하지 않음 |
| CALVER-C4 | 위 두 질문 중 하나라도 "yes"이면 CalVer가 강력한 선택이 된다 | [§When to use] "If you answered yes to any of these questions, CalVer's semantics make it a strong choice for your project." | `official-reference` | 적합 조건을 만족하는 프로젝트 | "no"인 경우 CalVer가 부적합하다는 명시적 진술 없음 — 부재(absence)를 negative-evidence로 사용해야 함 |
| CALVER-C5 | calver.org는 library 개발, API compatibility contract, skeleton project 에 대한 CalVer 사용 권고나 금지를 포함하지 않는다 | [§Absence] 원문 어디에도 "library", "API compatibility", "skeleton" 사용 사례에 대한 섹션이 없음 | `needs-confirmation` | D9 negative-evidence 논증(library skeleton에 CalVer가 금지되어야 하는 이유를 원문 부재로 뒷받침) | 이 부재만으로 CalVer가 library에 "잘못"이라는 것을 직접 증명하지 않음 — SemVer 공식 문서(semver.org) 보강 필요 |
## Usage Boundaries / 적용 경계
- 이 자료가 직접 증명하는 것:
- `CALVER-C1`: CalVer는 릴리즈 날짜를 버전에 인코딩하는 규약임
- `CALVER-C2` + `CALVER-C3`: CalVer의 공식 적합 기준은 "대규모/상시변동 scope" + "시간민감/외부구동 릴리즈"
- `CALVER-C4`: 두 조건 중 하나라도 맞으면 CalVer가 "강력한 선택"이라고 원문이 직접 말함
- `CALVER-C5`: library/API/skeleton 사용 사례에 대한 guidance가 **원문에 전혀 없음** (absence-of-guidance)
- 이 자료가 증명하지 않는 것:
- "CalVer는 library에 쓰면 안 된다"는 명시적 금지 — 이것은 `CALVER-C5`의 absence + SemVer 설계 철학을 결합한 추론임
- SemVer가 library에 더 적합하다는 주장 — 이는 semver.org 원문으로 별도 뒷받침 필요
- CalVer를 사용하는 library가 실패했다는 사례 증거
- 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
- D9의 완전한 정당화를 위해 semver.org의 "API compatibility" 철학 원문 등록 권고 (D9의 Decision Evidence Map은 현재 UNSUPPORTED_DECISION 상태)
- `CALVER-C5``needs-confirmation` — calver.org가 explicit exclusion list를 게시하지 않는 것이 "library에 부적합"의 충분 근거인지 별도 검토
## 메모 / Notes
- calver.org Notable Users: Ubuntu (`YY.0M`), NixOS (`YY.0M`), Twisted (`YY.MM.MICRO`), youtube-dl (`YYYY.0M.0D`), certifi (`YYYY.MM.DD`), pip (`YY.MINOR.MICRO`), Spring Cloud (`YYYY.MINOR.MICRO`), Home Assistant (`YYYY.MM.MICRO`) — 공통점: OS 배포판, 인증서, timezone, CLI 유틸리티, 대형 프레임워크. Library skeleton과는 scope·driver 모두 다름.
- D9 negative-evidence 논증 구조: (1) CalVer 적합 조건 = 대규모/상시변동 scope + 시간민감 (CALVER-C2, C3) → (2) ca-skeleton은 scope 고정·버전 호환성이 주 설계축 → (3) 조건 불일치 → (4) calver.org가 library/skeleton 사용 사례에 대한 guidance를 제공하지 않음 (CALVER-C5) → D9 결정 지지. 이 논증을 완결하려면 semver.org raw 추가 등록 권고.
- `CALVER-C4`의 논리적 역 ("no이면 부적합")은 원문이 명시하지 않음. 이를 D9 지지 논거로 쓸 때 추론임을 명시해야 함.
## Related / 관련
- 보강 권고 (아직 미등록): `[[raw/official-docs/semver-spec-semver-official]]` — SemVer 공식 사이트 (semver.org), D9의 positive-evidence ("SemVer + git sha = library API compatibility contract 표준")
- 이 자료를 인용한 wiki 요약: (생성 시 링크)