FastRuby.io는 Ruby 및 Rails 업그레이드 과정을 지원하기 위한 다양한 전문 오픈소스 도구들을 제공합니다. 각 도구는 특정 문제 해결에 초점을 맞춰 개발되었습니다.
-
NextRails: Rails 애플리케이션을 두 가지 다른 Ruby 또는 Rails 버전으로 동시에 듀얼 부팅할 수 있도록 설계되어, 테스트 스위트 전반의 사용 중단 경고를 추적하고 새로운 버전으로의 전환을 원활하고 안전하게 만듭니다.
-
RubyCritic: Rails 애플리케이션에 대한 통찰력 있는 개요를 제공하며, 특히 익숙하지 않은 코드베이스를 이해하는 데 유용합니다. FastRuby.io 팀은 이 프로젝트에 정기적으로 기여하며, 코드 커버리지 섹션을 추가하여 테스트 상태를 명확하게 보여줍니다.
-
Skunk: 코드 변경 빈도(churn), 복잡성, 코드 커버리지와 같은 메트릭을 결합하여 업그레이드 중 발생할 수 있는 잠재적 위험이나 병목 현상을 식별합니다. 높은 변경 빈도, 높은 복잡성, 낮은 코드 커버리지 영역은 철저한 수동 QA가 필요한 코드베이스의 부분을 나타냅니다.
-
Skunk.fyi: Skunk 보고서를 쉽고 효과적으로 공유할 수 있도록 돕는 서비스입니다.
SHARE=true
환경 변수를 설정하여 Skunk를 실행하면 보고서가 skunk.fastruby.io에 업로드되어 팀원, 클라이언트 또는 이해관계자와의 협업을 용이하게 합니다. -
RailsBump.org: Gemfile.lock 파일의 Rails 버전(2.3부터 8.0까지) 호환성을 빠르게 확인할 수 있는 웹사이트입니다. 대상 Rails 버전과 Gem의 호환성 여부를 검증하여 업그레이드 계획 단계를 간소화합니다. GitHub Actions를 활용하여 호환성 검사를 자동화합니다.
-
FastRuby.io Audit: audit.fastruby.io를 통해 Rails 프로젝트의 의존성에 대해
bundle-audit
를 실행하는 빠르고 접근성 좋은 도구입니다. Gemfile.lock의 보안 취약점을 쉽게 발견하고 공유하여 보안 문제를 조기에 파악할 수 있도록 돕습니다. -
Rails Stats: Rails의 기본
rake stats
작업을 확장하여bundle-stats
를 통합하고 Rails 디렉토리에 대한 보다 포괄적인 분석을 제공합니다. 애플리케이션의 크기와 복잡성을 빠르게 측정하는 데 이상적입니다. -
Custom Heroku Buildpack: Heroku에 여러 Gemfile을 배포할 때, 이 사용자 정의 빌드팩은 스테이징, 프로덕션 또는 Heroku 리뷰 앱에서 듀얼 부팅을 단순화하여 업그레이드 중 배포 프로세스를 크게 용이하게 합니다.
이러한 도구들을 활용한 FastRuby.io의 권장 DIY 업그레이드 워크플로우는 애플리케이션의 크기 및 복잡성 분석(rails_stats
), 기술 부채 평가(RubyCritic, Skunk), 보안 검사(audit.fastruby.io), 호환성 분석(RailsBump.org), 사용 중단 경고 처리(NextRails), 듀얼 부팅 설정(NextRails), 지속적 통합(CI) 구성, 그리고 스테이징 및 QA(Heroku 빌드팩, Skunk 보고서 활용) 단계를 포함합니다. 이 체계적인 접근 방식은 업그레이드 과정을 효율적이고 안정적으로 관리할 수 있도록 돕습니다.