문제

Microsoft는 제품을 버전 할 때이 템플릿을 사용한다는 것을 이해합니다 : major.minor.build.revision.

"개발자"가 소프트웨어에 큰 변화가 있고 뒤로 호환성을 가정 할 수 없다는 것을 보여주고 싶을 때 전공이 변경됩니다. 코드의 주요 재 작성이 완료되었을 수 있습니다.

경미한 수는 후진 호환성의 의도로 크게 향상됩니다.

빌드 숫자는 작은 변화, 예를 들어 동일한 소스의 재 컴파일입니다.

개정은 보안 구멍을 수정하는 데 사용되며 완전히 교환 할 수 있어야합니다. 빌드와 개정은 모두 선택 사항입니다. 이 정보는 다음을 기반으로합니다 MSDN 버전 클래스.

프로젝트를 어떻게 버전하고 왜 이런 식으로 버전을 버는가?

도움이 되었습니까?

해결책

우리는 일반적으로 내가 일하는 곳에서 major.minor [.mainenage [.build]]를 수행하지만 프로젝트 당 약간 다른 것으로 보입니다.

당신이 언급 한 것과 동일합니다. 빌드 서버가 실행될 때마다 작은 (버그) 수정 및 빌드에 대한 유지 보수가 증가합니다.

다른 팁

저는 개인적으로 프로젝트/제품 사용자가 기대할 수있는 거꾸로 호환성 수준에 중점을 둔 체계를 사용하고 싶습니다.

1.0 전 :

  • 0.0.1 = 첫 번째 릴리스
  • 0 .-. x = 거꾸로 호환 가능한 업데이트
  • 0.x.0 = 뒤로 호환되지 않는 업데이트

1.0 이후 :

  • -.-. x = 인터페이스 변경없이 업데이트
  • -.x.0 = 거꾸로 호환 된 인터페이스 추가로 업데이트
  • x.0.0 = 뒤로 호환되지 않는 업데이트

버전 번호의 중심점으로 호환성을 사용하면 사용자가 특히 TE 제품이 라이브러리 인 경우 Smoothe를 기대할 수 있는지 여부를 판단 할 수 있습니다. 안전한 업그레이드 여부.

나는 종종 X가 릴리스 번호 후 XYZ를보고 YZ는 연도의 달입니다. IE 201은 출시 2 년 후 1 월입니다. 즉, 5 월에 제품이 출시 될 때, 첫 번째 릴리스 번호는 105입니다. 내년 2 월의 출시는 202입니다.

우리는 일반적으로 현재 출시 날짜 yyyy.mm.dd.*를 기반으로 프로젝트를 버전하고 빌드 번호가 자동으로 생성되도록합니다. 예를 들어 오늘 릴리스가 있으면 2008.9.26.build가됩니다.

Major.Minor.point.revision을 사용합니다. 여기서 포인트는 버그 픽스 전용 릴리스이며 개정판은 저장소 개정입니다. 쉽고 잘 작동합니다.

나는 많은 소규모 프로젝트에서 일하고 있으며 개인적으로 이것이 유용하다는 것을 알았습니다.

PatchNumber.datemonthyear

이는 사용자가 마지막 업데이트시기와 업데이트가 얼마나 자주 업데이트되었는지 확인할 수있는 소규모 웹 기반 도구를위한 것입니다.

PatchNumber는 수행 된 릴리스 수이며 나머지는 게시 된시기 사용자를 보여주는 데 사용됩니다.

major.minor.patch.build 패치는 핫픽스 또는 패치 릴리스입니다.

QA를 IN으로 데려 갈 수 있고 SVN에있는 경우 SVN 헤드 개정을 빌드 번호로 사용할 수 있습니다. 이런 식으로 각 빌드는 소스 제어 측면에서 왔으며 빌드의 내용을 설명합니다. 이것은 당신이 틈으로 올라가는 빌드를 가질 것이라는 것을 의미합니다 (1.0.0.1, 1.0.0.34 ....)

major.minor.bugfix.svnrevision

예 : 3.5.2.31578

  • SVN 개정은 고객에게 전송 된 정확한 코드의 평화를 제공합니다. 당신은 그 버그 수정이 있는지 여부를 절대적으로 확신합니다.
  • 또한 응용 프로그램 오류가 발생한 경우 적절한 PDB를 찾는 데 도움이됩니다. 빌드 서버의 SVN 개정과 일치하고 PDB를 EXE 위치에 복사하고 디버거를 열면 충돌 스택 추적이 발생했습니다.

나는 단지 전공을한다. 저는 웹 앱에서 일하는 단일 개발자 (때때로 도움을 받아)이기 때문에 대부분의 사람들은 내가 만드는 사소한 수정 사항에 대해 덜 신경 쓰지 않았습니다. 그래서 나는 변경/업그레이드를 만들 때 새로운 기능과 주요 버전 번호를 넣을 때 마이너 버전을 반복합니다. 그렇지 않으면 버전 번호가 진행되는 한 작은 수정 사항을 무시합니다 (하지만 직접 참조 해야하는 경우 전복 개정 번호가 있습니다).

난 그냥 숫자가 있어요. 첫 번째 릴리스입니다 001. 두 번째 릴리스의 세 번째 베타는입니다 002b3, 등등. 이것은 단지 개인적인 물건의 마음을위한 것입니다. 나는 현재 '릴리스'가 실제로 없기 때문에 이것은 모든 이론입니다.

나는 유불 유명 형식을 Ubuntu로 사용하기 시작했습니다. Y.mmdd

이것은 몇 가지 이유로 도움이됩니다.

  • 버전 요구 사항을 확인하는 것이 더 쉽습니다. if (버전 <8.0901) 다이/종료/등.;
  • 빌드 프로세스에서 자동 생성 할 수 있습니다

두 번째 지점 (루비 & 레이크) :

def serial(t)
   t = Time.now.utc if not t.instance_of?(Time)
   t.strftime("%Y").to_i - 2000 + t.strftime("0.%m%d").to_f
end

serial(Time.now)     #=> 8.0926
serial(Time.now.utc) #=> 8.0927

노트: T.strftime ( "%Y.%M%D"). TO_F -2000 부동산 지점 부정확성으로 실행됩니다. 8.09269999999992

80 년대에 클리퍼 컴파일러를 버전하는 Nantucket 방법을 좋아했습니다.

Clipper Winter 1984
Clipper Summer 1985
Clipper Winter 1985
Clipper 1986 년 가을
Clipper Summer 1987

오, 오버레이 ....

눈물을 흘리기

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top