우리는 CVCS (TFS)에서 DVCS (Hg) 로의 업그레이드의 일부로 릴리스 관리를위한 워크 플로우를 변경하려고합니다. 여기 사무실에서 꽤 강렬한 토론이 있었고 그것에 관해 의견을 듣게되어 기쁩니다.두 개의 다른 릴리스주기를 가진 Hg 워크 플로우
오래 살았 제품에 어떤 배경
우리는 작은/중소 소프트웨어 기업 (약. 25 개발자)입니다. 우리는 릴리스주기를 낮게 유지하려고 노력합니다 - 각 스프린트 후 릴리스 (~ 한 달에 한 번). TFS에서는 새로운 각 릴리스에 대한 분기를 만듭니다. 마지막 두 릴리스는 버그 수정을 지원합니다.
우리의 현재 브랜치 모델 (TFS)이 지점의 상단에
--trunk
--release200 //and older, not supported anymore
--release201
--release202
(필요한 경우) 우리는 다른 개발자 가지가 있습니다. 일부 팀 지부와 일부 지부가 있습니다.
"작은"버그는 release202에서 수정되고 트렁크에 병합됩니다. 중요한 버그는 release201에서 수정되어 릴리스 202 및 트렁크로 병합됩니다.
우리가 지원하지 않는 것은 이전 릴리스의 버그 수정입니다. 일부 고객은 새로운 기능에 대한 것을 많이 걱정하지 않는다
새로운 워크 플로우, 대신 그들은보다 안정적인 버전을합니다. 따라서 우리는 두 개의 트랙을 제공하는 것에 대해 생각하고 있습니다. 하나는 오래 지속 된 패치이고 다른 하나는 기능을 자주 업데이트합니다. 우리는이 같은 필요 나뭇 가지에 대해 생각을 해 봤는데 ...
(수은)
--default
--RC
--Release
--StableRelease200
--StableRelease210
이 중앙 수은 저장소 내부의 모든 명명 된 지점이다. 각 지점은 CI 시스템에 연결됩니다. 개발자 관점에서이 질문의 범위를 벗어나는 지점 (hg 클론)을 개발할 것입니다.
일부 고객은 Release의 릴리스를 사용하고 일부는 StableReleaseX를 사용합니다.
기본값 : 모든 새 기능 개발이이 분기에 병합됩니다.
RC : PBI가 완료되거나 스프린트가 끝나면 기본값이 내부 테스트를 위해이 분기에 병합됩니다. 이 지점에서 발견 된 버그도 여기서 수정되었습니다. QA가 충분히 안정적이라고 생각하면이 지점이 출시로 병합됩니다. 일부 개발자는 계속해서 새로운 기능을 수행해야하는 경우 기본적으로이 기능을 사용할 수 있습니다.
출시 : 여기에서 릴리스는 순차적으로 발생하며, 마지막 릴리스에서만 버그 수정이 지원됩니다. 기술적 측면에서 볼 때 출시는 Hg 태그로 표시됩니다. 스프린트 중 고객 사이트에서 발견 된 중요한 버그는 여기에서 수정되어 다시 기본값으로 병합됩니다.
StableReleases : 반년마다 (경영진에 의해 결정됨) 릴리스가 새로운 StableRelease 분기로 병합됩니다. 수명 동안 새로운 기능은 여기에 추가되지 않습니다. 여기에서 발견 된 버그는 여기에서 고쳐지고 기본으로 되돌아갑니다.아마도 두 개의 StableRelease가 동시에 지원 될 것입니다 - 현재 1과 2 번째. 이전 지점은 폐쇄됩니다.
몇 가지 질문 워크 플로우에 대한
- 일반 의견? 서로 다른 두 개의 동시 "릴리스 트랙"을 지원 한 경험이 있습니까? 하나는 자주 출시되는 버전이고 하나는 버그 수정이 포함 된 수명이 긴 버전입니다.
- 우리는 브랜치를 브랜치 (branch)로 생각하여 개발자 (하나의 VS, 하나의 풀 등)가 더 쉽게 사용할 수 있도록했습니다. 아니면 ... 더 힘들다고 생각하니? 대신에 별도의 복제본을 사용하는 것이 더 쉽습니다 (대부분의 개발자는 DVCS 사용 경험이 제한적입니까?).
링크 정보 ... 예, 여러 버전을 지원하는 방법을 잘 설명합니다. 우리는 또한 어떤 고객에게 더 자주 공개 할 수있는 가능성을 원하지만 어쨌든 - 그 링크는 좋은 의견을 제공합니다. 명명 된 브랜치와 클론에 관해서 ... 여러분이 작성한대로 많은 지사 (3 + noOfStableReleases가 있음)에 대한 우려는 "개요"를 좀 더 복잡하게 만듭니다. 감사합니다. – Roger
크론 (cronjob) 또는 유사품과 같이 동기화하려면 서버 쪽에서도 복제본을 만들 수 있습니다. 우리는 Mercurial에 대해서도 그렇게합니다 : http://selenic.com/repo/hg 및 http://www.selenic.com/repo/hg-stable –
예. 명명 된 지점으로 시작할 것입니다. 입력 해 주셔서 감사합니다. – Roger