2017-03-11 11 views
1

나는 나의 프로젝트에 어느 정도 원래의 버전 번호 체계에 온 한 1. .에 비해이 심각한 파괴의 변화를 의미하는 2 세대 (의 제 4 빌드 의미.Net 라이브러리에서 사용자 정의 버전 관리 체계를 사용하여 일반적인 NuGet 저장소에 게시 할 수 있습니까?</p> <pre><code>Major.Year.Month.Build </code></pre> <p>예 :

2.2017.3.4 

는. * 분기, 내가 실제로 같은 작업에 대한 완전히 다른 응용 될 수있다

월 번호도 포함하고 싶지만 5 부분으로 된 버전 번호는 Visual Studio/.NET Framework에서 지원되지 않는 것 같습니다. (예 : MyApp2) 또는 Win32 버전 데이터 자원 형식.

고전적인 버전과 날짜 기반 버전 (YEAR-RELEASE는 다소 유사하지만 많지는 않음)의이 장황한 하이브리드와 같은 것을 본 적이 없으며 너무 불편하고 반 직관적이며 정돈되지 않은 버전이기 때문에, 많은 사람들에게 그와 비슷한 것으로 보이거나 그와 비슷한 것이 있는지 여부는 이것이 사실인지 여부와 문제가 충분히 심각하여 버전 관리의 방식을 실제로는 일종의 규칙이나 비공식적 인 컨벤션으로 강하게 실망한 경우입니다.

게시 할 계획 인 라이브러리에서이 버전 관리 방법을 사용할 수 있습니까, 아니면 준수해야하는 규정이 있습니까?

+0

@ Ivan,이 호에 대한 모든 업데이트는 무엇입니까? 대답에서 유용한 정보를 얻을 수 있습니까? 그렇지 않은 경우이 문제에 대한 추가 정보를 알려주십시오. –

답변

2

http://semver.org/은 NuGet 패키지의 버전을 지정하는 것이 좋습니다.

그것은 당신이 언급 한 것과 비슷한 개념을 가지고 있습니다. 첫 번째 숫자는 주요 변경 사항입니다. 릴리스 레이블 또는 메타 데이터에 날짜와 같은 추가 정보를 추가 할 수 있습니다.

+0

나는 앞서 언급 한 semver + date의 하이브리드가 내 마음에 들어 오기 전에 이것을 고려 해왔다. 나는 (나 자신의 개인적인 취향을 홀로 주어서, 내가 옳다는 것을 의미하지는 않는다.) 훨씬 더 직관적이고, 이런 식으로, 실용적으로 사용하기 쉽다. (나의 버전 형식) 숫자 및 소비자가 버전 번호를 통해 한 번에 앱의 구형 성/관련성에 대한 기본적인 단서를 갖고 있음). 그러나 나는 아직도 나의 버전이 이상하게 보이는 길을 느낀다. 그래서 나는 컨벤션 (semver)을 어쨌든 지키고 싶어한다고 느낀다. – Ivan

+0

사실 당신의 대답을 사실대로 받아 들일 것이지만 지식의 완전성을 위해서 NuGet 공동체에서의 경험을 토대로 논리적으로 공식적인 대답이있는 단락이 포함되어 있다면 당신은 여전히 ​​감사 할 것입니다. 내 질문 : 비 전통적인 (특히 semver가 아닌) 버전 관리 체계 사용이 허용되는지 여부. 나는 그 때 당신의 대답을 승인 할 것이다 (나는 그렇지 않으면 그렇게 할 수없는 것처럼 느낀다) – Ivan

0

.Net 라이브러리의 사용자 지정 버전 체계를 사용하여 일반적인 NuGet 리포지토리에 게시 할 수 있습니까?

대답은 예이지만 추천하지 않습니다. NuGet 갤러리는 모든 패키지 작성자와 소비자가 사용하는 중앙 패키지 저장소에 대한 오픈 소스 웹 사이트입니다. 맞춤형 패키지를 일반적인 NuGet 저장소에 게시 할 수 있습니다. 보다 편리하고 효과적인 관리 패키지 업데이트를 위해서 우리는 시맨틱 버전 관리 (Semantic Versioning) 사용을 시작하기 위해해야 ​​할 일은 그렇게하고 있음을 선언 한 다음 규칙을 따르는 것입니다. Semantic Versioning에서 그냥 저스틴 Emgarten`s 제안으로 ,이 시스템이 작동하려면

먼저 공개 API를 선언해야합니다. 이것은 문서로 구성되거나 코드 자체에 의해 시행 될 수 있습니다. 그럼에도 불구하고이 API가 명확하고 정확해야합니다. 공개 API를 식별하면 버전 번호의 특정 증가분을 사용하여 변경 사항을 알립니다. X.Y.Z (Major.Minor.Patch)의 버전 형식을 고려하십시오. API에 영향을주지 않는 버그 수정은 패치 버전을 증가시키고, 하위 호환 API 추가/변경은 부 버전을 증가시키고, 호환되지 않는 API 변경은 주요 버전을 증가시킵니다.

이러한 규칙을 사용하면 패키지 업데이트 사용자에게 의도를 쉽게 알릴 수 있습니다. 사용자 정의 버전 "Major.Year.Month.Build"을 사용하면 다른 고객은 패키지 업데이트의 의도를 잃게됩니다. 그래서 대답은 '예'지만 추천하지 않습니다.