ROS2 릴리즈 개요

ROS2는 주기적인 릴리즈 사이클을 통해 새로운 기능과 성능 개선을 제공한다. 각 릴리즈는 정기적으로 계획되며, 주로 2년 주기로 장기 지원(LTS, Long-Term Support) 버전과 비-LTS 버전이 번갈아 제공된다. 이러한 릴리즈 주기는 사용자에게 예측 가능성과 안정성을 제공하며, 개발자는 그에 맞춰 소프트웨어를 관리할 수 있다.

LTS와 비-LTS 버전

ROS2의 버전 관리는 크게 두 가지 유형으로 나눌 수 있다. 장기 지원(LTS) 버전과 비-LTS 버전이다.

릴리즈 사이클

ROS2는 새로운 릴리즈가 6개월마다 한 번씩 이루어진다. 이 중 짝수 년에 출시되는 버전은 LTS 버전으로 간주되며, 약 2년간의 일반 지원과 추가 3년간의 유지보수 지원을 받는다. 비-LTS 버전은 1년간 지원을 받으며, 이 기간 동안 새로운 기능 테스트와 개선이 이루어진다.

릴리즈 명명 규칙

ROS2의 릴리즈는 알파벳 순서대로 이름이 부여된다. 예를 들어, ROS2의 릴리즈 이름은 Ardent, Bouncy, Crystal, Dashing, Eloquent, Foxy, Galactic, Humble 등이 있으며, 각 버전은 해당 알파벳의 첫 글자로 시작한다. 이러한 규칙은 사용자가 릴리즈 버전을 쉽게 구분할 수 있도록 돕는다.

버전 관리 체계

ROS2의 버전 관리 체계는 SemVer(Semantic Versioning) 원칙에 따라 이루어진다. 이는 ROS2 버전이 다음과 같이 표현됨을 의미한다:

\text{Version} = \mathbf{MAJOR.MINOR.PATCH}

이러한 버전 관리 체계는 개발자가 시스템의 변경 사항을 명확하게 이해하고, 해당 버전이 자신의 프로젝트에 미치는 영향을 쉽게 파악할 수 있도록 설계되었다.

ROS2 버전의 지원 기간

ROS2 릴리즈는 각각 일정 기간 동안 지원을 받으며, 이 기간 동안 기능 업데이트, 보안 패치, 버그 수정 등이 제공된다. 일반적으로 LTS 릴리즈는 2년간의 일반 지원추가 3년간의 유지보수 지원을 받으며, 총 5년간 유지된다. 반면 비-LTS 릴리즈는 1년간의 짧은 지원 기간을 갖는다. 이를 통해 ROS2는 최신 기술을 반영하면서도 안정성을 유지할 수 있도록 설계되었다.

ROS2 버전 간의 호환성

ROS2는 버전 간 호환성을 최대한 유지하려는 노력을 기울이다. 그러나 MAJOR 버전의 업데이트가 이루어질 때, 즉 큰 변화가 있을 경우 기존의 ROS2 패키지나 노드가 새로운 버전에서 호환되지 않을 수 있다. 이를 해결하기 위해서는 각 버전의 릴리즈 노트를 참고하여 호환성을 확인하고, 필요한 경우 코드를 업데이트하는 과정이 필요하다.

ROS2의 릴리즈 도구

ROS2의 릴리즈는 일반적으로 다양한 자동화 도구를 통해 관리된다. 이러한 도구들은 ROS2 커뮤니티와 개발자들이 릴리즈 과정을 더 효율적으로 관리하고, 릴리즈 주기를 따라갈 수 있도록 돕는다.

  1. bloom: ROS 패키지 배포 자동화를 지원하는 도구로, 사용자는 이를 통해 패키지를 쉽게 릴리즈할 수 있다.
  2. rosdistro: ROS 및 ROS2 패키지 배포를 관리하는 데이터베이스로, 각 버전의 패키지 정보를 저장하고 관리한다.
  3. release repositories: 각 패키지의 릴리즈된 버전이 저장되는 저장소로, 사용자는 이를 통해 안정적인 버전의 패키지를 사용할 수 있다.

이러한 도구들을 사용하여 패키지를 릴리즈하면, ROS2 생태계 내에서 안정적인 패키지 관리와 배포가 가능해진다.