explain versionning related with release.
with this could know what is trunk, branch and tag each.
배포와 관련하여 버전닝을 설명합니다.
trunk, branch, tag가 왜 있고, 어떻게 사용되는지 설명합니다.
18. some-0.1.2-SNAPSHOT.jar
• 그냥 현재의 것을 패키징한 것이다. 배포한 것이 아니다.
• 패키징 할 때의 소스가 확보되어 있지 않다.
some-0.1.2.jar
• 버전관리되어 배포된 것이다.
• 패키징 할때의 소스가 확보되어 있다.(tag 0.1.2로)
DEV server
some-0.1.2-SNAPSHOT.jar
19. • 패키징되어 배포된 소스의 영구 보관을 의미.
• 그렇기 때문에 반드시 READ ONLY이다.
• 수정도 삭제도 안된다.
SVN
trunk
pom.xml
branches
0.1.x
tags
0.1.2
20. • 작업 공간을 의미.
• main인 trunk말고 특정 작업이 필요할 경우 생성.
• 보통 작업이 완료되면 삭제한다.
SVN
trunk
pom.xml
branches
0.1.x
tags
0.1.2
23. SVN
trunk
pom.xml : 0.1.2-SNAPSHOT
branches
cool
pom.xml : 0.1.2-cool-SNAPSHOT
tags
0.1.2
TEST ENV
NEXUS
some-0.1.2.jar
• 브랜치 cool는 개발을 진행하며 수시로 패키징하고 개발 서버에 설치해 볼 수도 있다.
• 하지만 배포가 아니기에 버전을 수정하거나 관리하지 않는다.
개발, 패키징
DEV server
some-0.1.2-cool-SNAPSHOT.jar 설치
29. SVN
trunk
pom.xml : 0.1.2-SNAPSHOT
branches
cool
pom.xml : 0.1.2-cool-SNAPSHOT
0.2.x
pom.xml : 0.2.2-SNAPSHOT
tags
0.1.2
TEST ENV
some-0.2.2-SNAPSHOT.jar
NEXUS
some-0.1.2.jar
• 브랜치 0.2.x의 pom.xml의 버전을 0.2.2-SNAPSHOT으로 수정.
• 다시 패키징 하여 테스트 환경에 설치
패키징
설치
30. SVN
trunk
pom.xml : 0.1.2-SNAPSHOT
branches
cool
pom.xml : 0.1.2-cool-SNAPSHOT
0.2.x
pom.xml : 0.2.9-SNAPSHOT
tags
0.1.2
TEST ENV
some-0.2.9-SNAPSHOT.jar
NEXUS
some-0.1.2.jar
• 테스트가 계속 실패한다. 브랜치의 버전은 계속 변경되어 0.2.9-SNAPSHOT이 되었다.
• 이와중에 trunk와 cool 브랜치에서는 별개의 개발이 동시에 진행되어도 무방하다.
계속 디버깅
계속 테스트 실패
개발 진행
개발 진행
51. 특정 버전에 대한 배포 단계를 의미
1.2-a1(1st alpha test version)
1.2-b1(1st beta test version)
1.2-b2(2nd beta test version)
1.2-rc1(1st release candidate version)
1.2-rc2(2nd release candidate version)
1.2-r(release version)
1.2-r2(release version with another bug fixed)
1.2-r3(release version with 2nd bug fixed)
52. some-3.5.6.jar
3 : major version. 아주 굵직한 변경. 하위호환포기면 무조건 Major.
5 : minor version. 기능 추가.
6 : micro/patch/build/revision version. 버그 픽스, 사소한 변경.