Release Train Naming
여러 라이브러리를 묶어서 그룹 단위로 배포하는 프로젝트의 경우 상위 모듈에서 하위 모듈에 대한 버전을 관리하게 된다.
상위 모듈이 만들어지면 이 상위 모듈에 대해서도 버전 관리를 해야 하는데 하위 모듈의 여러 버전을 관리하는 모듈의 버전이기 때문에 release train이라 부르고 상위 모듈의 버전에 대한 release train naming은 보통 알파벳 순서를 많이 쓴다.
Spring Project의 release train naming
Spring Project의 경우 이런 release train이 여러 묶음이 있다.
Spring Data
Spring Data의 release train naming은 유명한 컴퓨터 공학자들의 이름을 따서 명명되었다. (release 날짜 기준 정리)
2013-02 : Arora
2014-02 : Babbage
2014-03 : Codd
2014-05 : Dijkstra
2014-09 : Evans
2015-03 : Fowler
2015-09 : Gosling
2016-04 : Hopper
2017-01 : Ingalls
2017-10 : Kay
2018-09 : Lovelace
2019-10 : Moore
다음 버전? : Neumann
각 컴퓨터 공학자들이 누구인지 무슨 일을 했는지 찾아보는 것도 재미있을 듯하다.
(중간에 마틴 파울러나 제임스 고슬링도 보인다.)
Spring Cloud
Spring Cloud의 release train naming은 런던 지하철 역의 이름이다. (개발자가 얼마나 이름 짓기 귀찮아하는지 짐작이 간다...)
2015-06 : Angel
2016-05 : Brixton
2016-09 : Camden
2017-04 : Dalston
2017-11 : Edgware
2018-06 : Finchley
2019-01 : Greenwich
2019-11 : Hoxton
https://en.wikipedia.org/wiki/List_of_London_Underground_stations
Spring Session
Spring Session의 release train naming은 식물(과일? 채소?)이다.
2018-01 : Apple
2018-10 : Bean
2019-02 : Corn
다음 버전 : Dragonfruit
Spring IO Platform
지금은 지원 종료된 IO Platform의 경우 국가의 수도를 사용했다.
2016-09 : Athens
2017-02 : Brussels
2018-04 : Cairo
Spring version naming 규칙
spring의 version naming 규칙은 name + 개발 단계에 따른 아래의 suffix 규칙 (${name}-${release}) 을 따른다.
- BUILD-SNAPSHOT: Current snapshots
- M1, M2, and so on: Milestones
- RC1, RC2, and so on: Release candidates
- RELEASE: GA release
- SR1, SR2, and so on: Service releases
예를 들어 spring-data-releasetrain의 Moore 버전의 경우 아래와 같은 순서로 버전이 변경된다.
Moore-BUILD-SNAPSHOT
Moore-M1, Moore-M2
Moore-RC1, Moore-RC2
Moore-RELEASE
Moore-SR1, Moore-SR2
https://search.maven.org/artifact/org.springframework.data/spring-data-releasetrain
BUILD-SNAPSHOT과 Milestone, Release candidate는 개발 중, 목표한 단계 도달, 배포 준비 중인 상태이고 이 3 단계의 버전은 잦은 변경이 발생할 수 있고 maven central repository에 등록되지 않는다.
만약 이 버전을 사용하고 싶은 경우 본인 프로젝트에 maven repository 설정을 아래와 같이 추가하여야 한다.
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
위 설정이 추가되면 spring의 snapshot과 milestone repository를 사용할 수 있게 된다.
실제로 가장 많이 쓰는 건 RELEASE와 SR버전인데 RELEASE부터 정식 사용할 수 있는 버전이고 지속적인 추가 패치가 이루어지면 SR1, SR2와 같은 이름으로 변경된다.
Eclipse의 Release Train naming
eclipse의 경우 초기에는 eclipse 답게 천문학 관련 이름으로 release train naming 을 사용했다.(callisto, europa, galileo, helios, indigo, juno...)
이 후 과학 분야 (neon, oxygen, photon)로 확대되었다가 그 이후엔 단순히 년-월의 형태 (2018-09, 2018-12... 2019-12)로 바뀌었다. (중구난방이 되느니 간편하게 가겠다는 의도였을 것 같다.)
https://en.wikipedia.org/wiki/Eclipse_(software)
'Study > Java' 카테고리의 다른 글
spring reference 문서는 어떻게 만들어질까? (0) | 2020.06.12 |
---|---|
[troubleshooting] 아직 명확한 해결법을 찾지 못한 Spring Boot web No ServletContext set 에러 현상 (0) | 2020.06.05 |
Spring Boot 2.3 Release Notes (0) | 2020.05.26 |
JDK 14 New Features (0) | 2020.03.30 |
Spring Custom HandlerExceptionResolver 사용하기 (0) | 2020.02.18 |
OOP 개발 원칙 (0) | 2020.01.31 |
RestTemplate Generic responseType 사용 (0) | 2020.01.28 |
Reactor 언제 어떤 Operator를 써야 할까? (4) | 2020.01.21 |
java backend developer roadmap (0) | 2020.01.19 |
Reactor map, flatMap method는 언제 써야할까? (3) | 2020.01.16 |