강연자는 Rails 기여의 어려움을 인정하며, 사용 중인 젬에 집중하여 Ruby 신규 버전(예: Ruby 3.4)과의 호환성 문제 해결 및 CI(지속적 통합) 안정화라는 두 가지 실용적인 목표를 제시합니다. 이 접근법은 젬 이해와 테스트를 용이하게 하며, 기존 기여 사례를 참고할 수 있게 합니다.
Ruby 3.4 호환성 문제 해결 방안으로 다음 다섯 가지를 상세히 다룹니다:
* Chilled Strings: 문자열 리터럴 불변성 경고를 피하기 위해 .dup
사용.
* URI 파서 변경: RFC 2396에서 3986으로 변경에 따른 obsolete
경고 해결 (이전 파서 명시적 사용 또는 새로운 권장 메서드 활용).
* 번들 젬 경고: OpenStruct
같은 표준 라이브러리 번들 젬 분류에 대비하여 Gemfile
에 명시적 추가 및 OpenStruct
를 Struct
등으로 대체 권장.
* Hash Inspect 형식 변경: 해시 inspect
출력 형식 변경으로 인한 테스트 코드 업데이트 필요성.
* 에러 메시지 따옴표 변경: 에러 메시지 내 메서드 이름 표기 방식 및 정보 추가에 따른 테스트 업데이트.
CI의 중요성도 강조됩니다. CI는 변경 사항이 다양한 Ruby 버전에서 올바르게 작동하는지 확인하는 데 필수적이며, ‘Released Ruby CI’와 ‘Development Ruby CI’ 두 가지 유형을 소개합니다. ‘Released Ruby CI’는 출시된 Ruby 버전에서 경고를 활성화하여 호환성 문제를 조기에 감지하며 모든 PR에 필수적입니다. ‘Development Ruby CI’는 Ruby 3.5 개발 버전과 같은 불안정한 환경에서 테스트를 실행하며 미래 호환성 문제를 미리 파악하는 데 도움을 줍니다. 개발 CI 실패는 출시 CI가 통과한다면 문제가 없으며, 이는 선제적 대응을 위한 것입니다.
마지막으로, 커뮤니티와의 소통의 중요성을 강조하며, 유지보수자와의 원활한 소통, 버그 리포트 제출, 풀 리퀘스트에 대한 인내심 있는 기다림이 필요하다고 조언합니다.