소프트웨어 관리의 세계에는 “의존성 지옥”이라 불리는 성가신 문제가 있다. 시스템 규모가 커질수록, 그리고 더 많은 패키지를 가져다 쓸수록 의존성 지옥에 빠지기 쉽다. 의존하는 모든 패키지의 새 버전을 배포하지 않고는 업그레이드 할 수 없게 되거나, 지나치게 나중 버전까지 호환될 거라 가정한 경우가 그렇다. 버전에 갇히거나 버전이 엉키는 것이다.
이 문제를 해결하여 쉽고 안전하게 프로젝트를 진행할 수 있도록 GitHub의 공동 설립자인 Tom Preston-Werner가 제안한 것이 Semantic Versioning이다.
Semantic Versioning은 버전 번호를 어떻게 정하고 올려야 하는지를 명시하는 규칙과 요구사항들이다. 이 글은 원문 중에서 몇 가지만 정리한 것이다. 원문을 꼭 읽어 보시기 바란다. 원문은 아래 링크에서 확인 가능하고, 한글 번역도 지원한다.
Semantic Versioning 2.0.0 원문 보기
1.0.0은 '.'을 기준으로 3 부분으로 나눌 수 있다.
major.minor.patch
주(主).부(部).수(修)
참고: 주.부.수 형식에 정식배포 전 버전이나 빌드 메타데이터를 위한 라벨을 덧붙이는 방법도 있다.
최초로 개발을 진행할 때는 0.y.z로 시작한다. 초기 개발을 위해 사용하는 0.y.z은 아무 때나 마음대로 바꿀 수 있다.
초기 개발 단계에 0.y.z 버전 관리는 어떻게 할까?
가장 간단한 방법은 최초 개발 배포를 0.1.0으로 하고, 이후 배포마다 부버전을 올리는 것이다.
그럼 언제 1.0.0이라고 할 수 있을까?
소프트웨어가 실 서비스에 쓰이기 시작했다면 이미 1.0.0이라고 여길 수 있다. 사용자들이 믿고 쓸 수 있는 안정한 API가 있다면 1.0.0일 것이다. 하위 버전 호환성에 대해 우려하기 시작했다면 이미 1.0.0일 수 있다.
수버전 바로 뒤에 붙임표(-)를 붙이고 마침표(.)로 구분된 식별자를 더해서 정식 배포를 앞둔 (pre-release) 버전을 표기할 수 있다.
우선순위는 버전의 순서를 정렬할 때 서로를 어떻게 비교할지를 나타낸다. 우선순위는 반드시 주, 부, 수 버전, 그리고 정식배포 전 버전의 식별자를 나누어 계산하도록 한다 (빌드 메타데이터는 우선순위에 영향을 주지 않는다).
우선순위는 주(major), 부(minor), 수(patch) 순서로 차례로 비교하면서, 차이가 나는 부분이 나타나면 결정된다.
예: 1.0.0 < 2.0.0 < 2.1.0 < 2.1.1
주, 부, 수 버전이 같을 경우, pre-release 버전이 표기된 경우의 우선순위가 더 낮다.
예: 1.0.0-alpha < 1.0.0
주, 부 및 패치 버전이 동일한 두 가지 pre-release 버전의 우선 순위는 다음과 같이 차이점이 발견될 때까지 점으로 구분된 각 식별자를 왼쪽에서 오른쪽으로 비교하여 결정해야 한다.
예: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0
Experience the Flixeon Free Movies APK interface, featuring a user-friendly Material Design. Enjoy seamless HD streaming of your preferred movies and TV shows wherever you are, all for free!
SportsFire APK is a live streaming application designed exclusively for broadcasting major global sporting events. The latest version of sportzfy Downlaod TV Apk can be obtained directly from our website.
One of the key aspects that make Geometry Dash online games so appealing is the sense of connectivity they provide.
This is a good question. It reflects thoughtful curiosity and encourages a deeper exploration of the subject. By asking this, you open the rickys casino door to meaningful dialogue and insightful answers, fostering a greater understanding of the topic.
The Python version installed by default on Raspberry Pi 4 is 3.9 , but the module you want to use only supports up to 3.8.
The Python version installed by default on Raspberry Pi 4 is 3.9 , but the module you want to use only supports up to 3.8.
The Python version installed by default on Raspberry Pi 4 is 3.9 , but the module you want to use only supports up to 3.8.
The Python version installed by default on Raspberry Pi 4 is 3.9 , but the module you want to use only supports up to 3.8.
The Python version installed by default on Raspberry Pi 4 is 3.9 fireboy and watergirl, but the module you want to use only supports up to 3.8.
The Python version installed by default on Raspberry Pi 4 is 3.9 , but the module you want to use only supports up to 3.8.
The Python version installed by default on Raspberry Pi 4 is 3.9 , but the module you want to use only supports up to 3.8.
The Python version installed by default on Raspberry Pi 4 is 3.9 , but the module you want to use only supports up to 3.8.
Ella was never much of a gambler, but when her friend suggested a new online slot game themed around a secret garden, she decided to give it a shot. The game, with its lush visuals and enchanting soundtrack, seemed like https://glorycasinos.biz/ a perfect way to unwind after a long week. Ella started with a modest bet, spinning the reels and enjoying the whimsical animations of flowers and mythical creatures. As she played, the game’s charm began to captivate her, transforming her initial skepticism into genuine enjoyment.
의존하는 모든 패키지의 새 버전을 배포하지 않고는 업그레이드 할 수 없게 되거나, Solar 지나치게 나중 버전까지 호환될 거라 가정한 경우가 그렇다. 버전에 갇히거나 버전이 엉키는 것이다.
이것은 환상적인 읽기였습니다! 귀하의 블로그 게시물은 유익할 뿐만 아니라 매우 잘 정리되어 있습니다. 특히 요점을 설명하기 위해 실제 사례를 제공하여 개념을 훨씬 더 이해하기 쉽고 기억에 남게 만드는 방식이 마음에 들었습니다. 더 많은 콘텐츠를 위해 확실히 돌아올게요 https://solarsmash2.com/
가끔 궁금했던건데 유익한 글 감사합니다.