needmoreeasy EN 한국어
배우기

NME 판번호와 배포

판번호는 0.마이너.패치 입니다. 한 번에 한 칸만 움직이고, 무언가를 실제로 내보낼 때만 움직이며, 1에는 절대 닿지 않습니다.

세 가지 모두 scripts/check-version.py가 빌드마다 확인하고, 새 번호를 쓰는 것은 scripts/bump-version.py 하나뿐입니다.

세 자리의 뜻

  • 0 — 앞의 0이 가장 정직한 자리입니다. NME는 아직 설계 중이고, 오늘 쓴 프로그램이 내일 한 줄 고쳐야 할 수 있습니다. 1이라고 적으면 그 반대를 약속하는 것이 됩니다.
  • 마이너 는 전에 못 쓰던 것을 쓸 수 있게 됐을 때 올립니다. 새 문장, 컴파일러가 새로 받아들이는 표기, 새로 들어간 묶음 도구 같은 것입니다. 마이너가 오를 때 이미 쓴 것을 고쳐야 하는 일은 없습니다 — 있으면 배포 기록에 적습니다.
  • 패치 는 같은 프로그램이 더 잘 돌게 됐을 때 올립니다. 잘못 컴파일되던 것을 고쳤거나, 오류 문장이 알아듣기 쉬워졌거나, 빌드가 빨라졌을 때입니다.

전에 쓰던 0.0.1-beta.N은 beta.160까지 갔습니다. 그 세는 수는 없앴습니다. 하나씩만 오르는 수는 무엇이 바뀌었는지 아무것도 말해 주지 않았습니다.

판번호는 실제로 내보낼 때만 오릅니다

커밋은 배포가 아니고, 브랜치를 밀어 넣는 것도 배포가 아닙니다. 번호는 사이트가 고정해서 쓰게 될 그 커밋에서 오릅니다. 지금 컴파일러를 실제로 내보낸다는 것은, 사이트가 이 저장소의 한 커밋으로 nme-web을 빌드해서 브라우저용 WebAssembly를 needmoreeasy.com에 올린다는 뜻입니다. 그러니 그 커밋이 곧 그 판입니다. 번호를 쓰는 것은 bump-version.py 하나뿐이고, 손으로 고치는 곳은 없습니다.

그래서 개발 중인 커밋들은 준비 중인 판의 번호를 함께 쓰고, 배포와 배포 사이에는 변경 기록에 Unreleased 제목이 서 있습니다.

번호를 올릴 때 다음이 한꺼번에 바뀌며, 하나라도 어긋나면 check-version.py가 빌드를 세웁니다.

  • Cargo.toml의 작업공간 판번호와 Cargo.lock의 지역 패키지 판번호
  • CHANGELOG.md와 CHANGELOG.ko.md
  • 영어·한국어 문서 안의 모든 판번호
  • 자동으로 만들어지는 문법 목록과 AI 프롬프트 파일

1.0.0은 나오지 않습니다

「아직 아니다」가 아니라 저장소가 거절합니다. check-version.py는 첫 자리가 1 이상인 번호를 이유와 함께 되돌려 보냅니다.

1이라고 적힌 판은 오늘 쓴 프로그램이 계속 돌아간다는 약속입니다. 오너는 그 반대를 분명히 말했습니다 — 0.x인 동안에는 옛 코드와 호환되지 않아도 좋으니 컴파일러를 과감하게 바꾸라는 것입니다. 언어를 제대로 만드는 것이 첫 달에 쓰인 코드를 지키는 것보다 중요하기 때문입니다. 작은 단위의 호환성은 여전히 진지하게 봅니다. 표기가 바뀌었거나 만들어지는 파이썬이 바뀌었으면 배포 기록에 반드시 적습니다.

GitHub에서 이 문서 보기