React Native 0.67 발표
여러분, 새해 복 많이 받으세요! 오늘 우리는 React Native의 최신 버전인 0.67.0을 발표하고, 지난 몇 달 동안 작업해 온 릴리스 프로세스에 대한 업데이트를 공유하려고 합니다.
주요 섹션
0.67 버전 주요 내용
Meta의 2021년 하반기 계획에서 언급했듯이, React Native는 새로운 기능과 수정 사항(예: 새로운 아키텍처)이 커뮤니티에 더 빠르게 반영될 수 있도록 더 잦은 릴리즈를 시도하고 있다. 당연히 많은 릴리즈가 수정과 개선에 초점을 맞출 것이다.
0.67.0 버전에서 주목할 만한 변경 사항은 다음과 같다:
- Lean-core 제거: DatePickerAndroid
- Gradle 버전을 7.2로, Kotlin 버전을 1.5.31로 업그레이드 Kotlin 및 Gradle 버전 업그레이드 (#32319)
- 주목할 점: 0.67 버전은 여전히 Hermes 0.9.0에 의존하며, 0.66 버전과 동일하다.
이번 릴리즈의 상태에 대한 논의는 이 토론에서 참여할 수 있다. 또한, 이 버전으로 업그레이드하는 데 도움이 되도록 업그레이드 헬퍼를 사용할 수 있다 ⚛️
감사의 말
이번 릴리스에는 379개의 커밋과 74명의 기여자가 참여했다. 기존과 새로운 모든 기여자 여러분께 감사드린다! 전체 변경 로그는 여기서 확인할 수 있다.
또한 0.67.0이 코드베이스에 큰 회귀 없이 도달할 수 있도록 도와준 릴리스 테스터들에게도 감사드린다. 특히 다음 분들에게 특별히 감사드린다:
- Margelo의 Marc Rousavy (@mrousavy): Hermes 0.10의 회귀 문제를 발견했다. 이 문제는 CI 테스트에서 잡히지 않았을 것이며, React Native 0.68 릴리스에서 Hermes 0.11로 수정될 예정이다.
- Reanimated 팀: 0.67 RC 단계 초기에 0.67 호환 버전을 빠르게 준비했다.
- Mattermost의 Elias Nahum (@enahum)
- Invertase의 Mike Hardy (@mikeHardy)
또한 Rainbow, Comm, Ledger Live가 "릴리스 테스터" 프로그램의 일원이 되어준 것에 대해 감사드린다 (자세한 내용은 아래 참고).
릴리스 프로세스 개선
앞서 언급했듯이 React Native는 새로운 기능과 수정 사항을 커뮤니티에 더 빠르게 제공할 수 있도록 더 잦은 릴리스를 위해 릴리스 파이프라인을 재구성하고 있다.
지난 몇 달 동안 우리는 릴리스를 지연시키는 몇 가지 문제를 해결했다.
릴리스 조정 및 지식 공유
릴리스 실행 방법, 자주 묻는 질문, 릴리스 이슈 조정 등을 다루는 문서를 꼼꼼히 작성해 React Native 위키에 공개했다. 이 문서 덕분에 릴리스 과정이 개인이나 팀의 내부 지식에 의존하지 않게 됐다.
문서화 작업 외에도 릴리스 조정 방식을 개선했다. 사전 릴리스 상태와 패치에 대한 논의를 전용 토론 그룹인 react-wg/react-native-releases로 옮겼다.
책임의 명확성
더 많은 문서를 통해 릴리스 작업은 특정 한 사람이 릴리스 실행에 필수적이지 않도록 확장할 수 있다.
React Native 릴리스는 다양한 잠재적 실패 지점에 취약하고 많은 의존성과 후속 작업이 있다. React Native 사용법이 커뮤니티 전반에 걸쳐 다양하다는 점을 고려할 때, 릴리스에 이해관계자들이 참여하는 것이 중요하다. 우리는 릴리스를 지원하는 역할과 책임을 정의해 두었다.
릴리스 후보 신호
릴리스와 관련된 또 다른 문제는 빌드 회귀(regression)가 발생하지 않을 것이라는 신뢰할 수 있는 신호를 얻는 것이다. 이 문제는 다양한 빌드 변형을 테스트하는 데 점점 더 많은 투자를 하는 방식으로 해결할 수 있지만, 실제 적용 상황에서 얻는 신호는 당분간 유용하게 활용될 것이다.
React Native 0.67 릴리스에서 우리는 "릴리스 테스터" 프로그램을 시범 운영했다. 이 프로그램은 오픈소스 앱을 개발하는 React Native 개발자들이 릴리스 후보 버전을 자신의 앱에서 테스트하도록 약속하는 방식이다. 이전에는 커뮤니티가 릴리스 후보를 테스트하고 잠재적인 문제를 제기할 것이라는 공식적인 기대가 없었다. 이 프로그램은 릴리스의 안정성을 보장하기 위해 더 빠르게 신호를 얻는 데 도움을 준다.
오픈소스 React Native 앱은 특히 소스 코드가 공개되어 있어 회귀 문제를 디버그하는 데 유용하다. 이 프로그램을 통해 릴리스 테스터가 0.67 버전에서 회귀 문제를 발견했고, 우리는 잘못된 릴리스로 인해 더 큰 커뮤니티에 혼란을 주지 않고 문제를 해결할 수 있었다.
React Native 신규 버전 안정화에 관심이 있나요?
리그레션(regression)을 발견하는 데 도움을 주는 좋은 방법은 CI에 React Native의 사전 릴리스 버전인 react-native@next
또는 react-native@nightly
를 통합하는 것이다. 리그레션이 발견되면 릴리스 이슈를 등록하고 적절한 토론에 알릴 수 있다.
앱이나 회사가 "릴리스 테스터" 프로그램에 참여하고 싶다면, 릴리스 역할과 책임 위키 하단의 전용 섹션을 확인해 자세한 내용을 알아보자.
마지막으로, 릴리스 후보 버전을 테스트하거나 릴리스 이슈를 해결하는 데 도움을 주는 모든 지원은 매우 감사하게 생각한다!