kodi addon pakage version 패키지 버전 관리
본문
kodi addon pakage version 패키지 버전 관리
https://docs.microsoft.com/en-us/nuget/concepts/package-versioning
특정 패키지는 항상 패키지 식별자와 정확한 버전 번호를 사용하여 참조됩니다. 예를 들어 nuget.org의 Entity Framework 에는 버전 4.1.10311 에서 버전 6.1.3 (최신 안정 릴리스) 및 6.2.0-beta1 과 같은 다양한 시험판 버전에 이르는 수십 개의 특정 패키지가 있습니다 .
패키지를 만들 때 선택적 시험판 텍스트 접미사를 사용하여 특정 버전 번호를 할당합니다. 반면에 패키지를 사용할 때는 정확한 버전 번호 또는 허용 가능한 버전 범위를 지정할 수 있습니다.
이 주제에서 :
- 시험판 접미사를 포함한 버전 기본 사항 .
- 버전 범위
- 정규화 된 버전 번호
버전 기본
특정 버전 번호는 Major.Minor.Patch [-Suffix] 형식 이며, 여기서 구성 요소는 다음과 같은 의미를 갖습니다.
- Major : 속보
- 경미 : 새로운 기능이지만 이전 버전과 호환됩니다.
- 패치 : 이전 버전과 호환되는 버그 수정 만
- -접미사 (선택 사항) : 하이픈 뒤에 출시 전 버전을 나타내는 문자열 이옵니다 ( 시맨틱 버전 관리 또는 SemVer 1.0 규칙에 따름 ).
예 :
1.0.1
6.11.1231
4.3.1-rc
2.2.44-beta1
중대한
nuget.org는 정확한 버전 번호가없는 패키지 업로드를 거부합니다. 버전은 .nuspec
패키지를 만드는 데 사용되는 또는 프로젝트 파일에 지정되어야합니다 .
시험판 버전
기술적으로 말하자면 패키지 작성자는 모든 문자열을 접미사로 사용하여 시험판 버전을 표시 할 수 있습니다. NuGet은 이러한 버전을 시험판으로 취급하고 다른 해석을하지 않기 때문입니다. 즉, NuGet은 관련된 모든 UI에 전체 버전 문자열을 표시하여 접미사의 의미에 대한 해석은 소비자에게 남겨 둡니다.
즉, 패키지 개발자는 일반적으로 알려진 명명 규칙을 따릅니다.
-alpha
: 일반적으로 진행중인 작업 및 실험에 사용되는 알파 릴리스입니다.-beta
: 베타 릴리스, 일반적으로 계획된 다음 릴리스의 기능이 완료되었지만 알려진 버그가 포함될 수 있습니다.-rc
: 릴리스 후보, 일반적으로 중요한 버그가 나타나지 않는 한 잠재적으로 최종 (안정적) 릴리스입니다.
노트
NuGet 4.3.0+는 1.0.1-build.23 에서와 같이 점 표기법이있는 시험판 번호를 지원 하는 SemVer 2.0.0 을 지원합니다 . 4.3.0 이전의 NuGet 버전에서는 점 표기법이 지원되지 않습니다. 1.0.1-build23 과 같은 양식을 사용할 수 있습니다 .
패키지 참조를 확인하고 여러 패키지 버전이 접미사에 의해서만 다른 경우 NuGet은 먼저 접미사가없는 버전을 선택한 다음 사전 출시 버전에 알파벳 역순으로 우선 순위를 적용합니다. 예를 들어 다음 버전은 표시된 순서대로 선택됩니다.
1.0.1
1.0.1-zzz
1.0.1-rc
1.0.1-open
1.0.1-beta
1.0.1-alpha2
1.0.1-alpha
1.0.1-aaa
시맨틱 버전 2.0.0
NuGet 4.3.0 이상 및 Visual Studio 2017 버전 15.3 이상에서 NuGet은 Semantic Versioning 2.0.0을 지원합니다 .
SemVer v2.0.0의 특정 의미는 이전 클라이언트에서 지원되지 않습니다. NuGet은 다음 문 중 하나에 해당하는 경우 패키지 버전을 SemVer v2.0.0 특정 버전으로 간주합니다.
- 출시 전 라벨은 점으로 구분됩니다 (예 : 1.0.0-alpha.1).
- 버전에 빌드 메타 데이터가 있습니다 (예 : 1.0.0 + githash).
nuget.org의 경우 다음 문 중 하나에 해당하면 패키지가 SemVer v2.0.0 패키지로 정의됩니다.
- 패키지의 자체 버전은 위에 정의 된대로 SemVer v2.0.0과 호환되지만 SemVer v1.0.0과는 호환되지 않습니다.
- 패키지의 종속성 버전 범위에는 위에서 정의한 SemVer v2.0.0은 준수하지만 SemVer v1.0.0은 준수하지 않는 최소 또는 최대 버전이 있습니다. 예 : [1.0.0-alpha.1,) .
SemVer v2.0.0 관련 패키지를 nuget.org에 업로드하는 경우 패키지는 이전 클라이언트에 표시되지 않으며 다음 NuGet 클라이언트에서만 사용할 수 있습니다.
- NuGet 4.3.0 이상
- Visual Studio 2017 버전 15.3 이상
- NuGet VSIX v3.6.0이 포함 된 Visual Studio 2015
- dotnet
- dotnetcore.exe (.NET SDK 2.0.0 이상)
타사 클라이언트 :
- JetBrains 라이더
- Paket 버전 5.0 이상
버전 범위
패키지 종속성을 참조 할 때 NuGet은 다음과 같이 요약 된 버전 범위 지정을위한 간격 표기법 사용을 지원합니다.
표기법 | 적용된 규칙 | 기술 |
---|---|---|
1.0 | x ≥ 1.0 | 최소 버전 (포함) |
(1.0,) | x> 1.0 | 최소 버전, 독점 |
[1.0] | x == 1.0 | 정확한 버전 일치 |
(, 1.0] | x ≤ 1.0 | 최대 버전 (포함) |
(, 1.0) | x <1.0 | 최대 버전, 독점 |
[1.0,2.0] | 1.0 ≤ x ≤ 2.0 | 정확한 범위 (포함) |
(1.0,2.0) | 1.0 <x <2.0 | 정확한 범위, 배타적 |
[1.0,2.0) | 1.0 ≤ x <2.0 | 포함 된 최소 및 독점 최대 버전 혼합 |
(1.0) | 유효하지 않음 | 유효하지 않음 |
PackageReference 형식을 사용하는 경우 NuGet은 숫자의 Major, Minor, Patch 및 시험판 접미사 부분에 대해 부동 표기법 * 사용을 지원합니다. 플로팅 버전은 packages.config
형식에서 지원되지 않습니다 .
노트
PackageReference의 버전 범위에는 시험판 버전이 포함됩니다. 의도적으로 플로팅 버전은 선택하지 않는 한 시험판 버전을 확인하지 않습니다. 관련 기능 요청의 상태는 문제 6434를 참조하십시오 .
예
항상 프로젝트 파일, packages.config
파일 및 .nuspec
파일의 패키지 종속성에 대한 버전 또는 버전 범위를 지정
관련자료
-
링크