프로젝트를 포크했는데 버전 번호는 어디에서 시작합니까?


12

나는 프로젝트를 포크하고 많은 것을 변경했다. 이 포크는 여기에 작은 기능 변경이 아니라 거기에 묻힌 버그 수정입니다. 대부분의 핵심 코드 만 공유됩니다.

v2.5.0에서이 프로젝트를 분기했습니다. 잠시 동안 v3.0에서 포크 버전을 시작했습니다. 그러나 이것이 올바른 방법인지 확실하지 않습니다. 주로 해당 프로젝트가 v3.0에 도달하면 상황이 혼동되기 때문입니다. 그러나 v1.0 또는 v0.1에서 다시 시작하고 싶지 않습니다. 프로젝트의 초기, 불안정성 및 비 정확성을 의미하기 때문입니다. 대부분의 핵심 코드가 매우 정교하고 안정적이기 때문에 사실이 아닙니다.

나는 무엇을해야할지 잃어 버렸습니다. 그래서 여기에 묻습니다. 이런 상황을 처리하는 표준 방법은 무엇입니까? 대부분의 포크를 다시 시작하거나 버전 번호를 높이거나 알지 못하는 다른 작업을 수행하십시오.


5
1.0이 유아기 또는 불안정성을 의미하는 것을 보지 못했습니다. 1.0보다 낮지 만 1.0은 '유아기'기간이 지났으며 흔들릴 준비가되었음을 나타냅니다. 그것이 더 편안하다면 1.1 (10 % 추가 성숙도)로
가십시오

1
호기심으로 포크는 무엇입니까?
compman

답변:


13

내가 본 대부분의 포크는 버전 1.0부터 다시 시작합니다. 그러나 포크 이름도 변경했다고 가정하므로 v3.0부터 시작한 경우 왜 혼란이 있는지 잘 모르겠습니다.

내가 할 일은 프로젝트 이름을 변경하고, 버전 1.0을 릴리스하고 프로젝트가 다른 프로젝트의 포크임을 분명히하는 것입니다. 나는 그 접근법과 혼동이 없을 것이라고 생각합니다.

"1.0"레이블이 정말로 걱정된다면 1.0 직후에 2.0 버전을 출시하십시오 ...


... 또는 v1.0을 완전히 건너 뛰고 v1.0을 완전히 건너 뜁니다. 이것이 처음이지는 않을 것입니다.
Konamiman

우리 회사에서는 하나의 프로젝트가 v2.4에서 시작되었습니다.
user253751 2018 년

6

오리지널 버전 번호부터 시작하여 고유 한 로드맵을 유지하고 현재 버전의 오리지널 제품과 경쟁하지 마십시오.


1
어떤 식 으로든 원본 프로젝트를 병렬화하지 않으려는 경우 버전 번호간에 의미있는 상관 관계가 없습니다. 즉, 3.0에서 시작하여 이러한 상관 관계를 설정하려고 시도 할 필요가 없습니다. 실현할 수없는 기대 만 설정하기 때문입니다.
Tom Anderson

나는 정정되었다. 차별화하는 데 도움이되는 고유 한 v1.0을 시작해야합니다. 버전은 일부 마케팅 스턴트가 아니라 무언가를 의미해야합니다 (v.gr. "v5.4"는 새 것처럼 보이지 않음).
dukeofgaming

1
@TomAnderson : 예를 들어, 버전 2.5에서 포크하고 그의 포크의 첫 번째 버전을 2.6 또는 3.0으로 만들면 다른 앱 을 프로젝트의 전체 히스토리로 가리킬 수 있습니다 . 어느 정도 의미있는 상관 관계입니다.
DougM

3

프로젝트가 원래 프로젝트와 관련이 있는지 (그리고 얼마나 많은지) 고려할 수 있습니다. 원본 프로젝트에서 새 기능을 자신의 프로젝트로 이식하려는 경우 버전 번호를 원본 버전과 일치시키는 것이 좋습니다.

예를 들어 MySQL의 포크 인 MariaDB를 확인하십시오. 예를 들어 MariaDB 5.2는 MySQL의 '드롭 인 (drop-in)'대체품을 유지하기를 원하므로 MariaDB 5.2는 MySQL 5.2의 모든 기능을 갖추고 있습니다.

참조 : http://kb.askmonty.org/v/mariadb-versus-mysql

참고 : 이 답변이 게시 된 이후로 MariaDB는 MySQL과 크게 달라졌으며 이제 자체 버전 관리 체계를 따르고 있습니다.


1

0.1은 유아기를 나타낼 수 있지만 1.0+ 이상은 안정적입니다. 주요 버전 번호 (예 : 2.0, 3.0)가 증가하면 일반적으로 기능이 크게 변경되었습니다.

예 :

  • 내 응용 프로그램의 버전 1.0은 설정으로 테스트 스크립트를 실행하는 도구였습니다.
  • 버전 2.0은 테스트 스크립트와 환경 설정 스크립트의 차이점을 제거했습니다.
  • 버전 3.0은 스크립트를 플로우 차트로 작성하기위한 GUI를 추가했습니다. 그것들은 눈에 띄게 다른 제품이지만, 버전 1조차도 작동하는 제품, 완전히 안정적입니다. 버전 2와 3은 큰 변화가 좋을 것이라고 결정했기 때문에 생겨났습니다. 만약 우리가 이러한 큰 변화를 원치 않고 버그 수정 등을 계속했다면, 마이너 버전 번호는 1.10,1.20 등으로 증가했을 것입니다.

내가 말하는 것은 주요 버전 번호는 성숙도를 나타내지 않으며 주요 기능 세트를 나타냅니다. 이제는 제품의 버전 번호를 지정하는 방법에 약간 접했습니다.

내가 전에 보았던 것, 내가 조용히 좋아했던 것은 1.0 (또는 정말로 선호하는 경우 3.0에서)으로 버전을 다시 시작한 다음 마지막으로 원래 버전의 기능을 가져온 원본을 말하는 괄호로 묶는 것입니다.

  • 초기 : " MyFork v1.1 (OrigProg v3.0 기반)
  • MyFork : MyFork v1.3의 일부 개선 사항 (OrigProg v3.0 기반)
  • OrigProg는 메이저 버전을 출시했으며 MyFork는 MyFork v2.1 (OrigProg v4.0 기반)을 가져 와서 병합했습니다.
  • MyFork를 일부 변경했습니다 (아마도 OrigProg와 쉽게 다시 병합 할 수 없음) : MyFork v3.0 (OrigProg v4.0 기반)

0

가능하면 포크를 원래 프로젝트로 다시 병합하십시오. 나는 이것을 충분히 강조 할 수 없다.

버전 번호를 다시 정한 다음 분기 번호와 날짜 접미사를 사용하십시오.


2
"Python 1.1"에서 "Userthon 1.1. {DATE}"로 이동하면 버전 번호의 예상 형식이 손상됩니다.
DougM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.