버전 1.11 릴리스

by Samuel Giddins on


번들러 1.11이 왔습니다! 저번 릴리스로부터 6개월 반이 지나고 나서야 드디어 1.11을 내보낼 준비가 되었습니다.

이것이 좀 오래 걸리긴 했지만, 거기에는 그럴만한 이유가 있었습니다. 이번 여름, 팀은 _4명_의 Google Summer of Code 학생들을 코칭하는데 분주했습니다.

  • 새로운 젬 인덱스 작업을 많이 진전시켰으며, 이는 1.12에 포함될 예정입니다.
  • 번들러 웹사이트와 온라인 문서를 많이 개선했습니다.
  • 번들러 2.0을 위한 기초 작업이 진행되었습니다.
  • 새로운 플러그인 시스템의 시제품을 만들었습니다.

나아가, 번들러 코어 팀은 번들러 자체의 개발 경험을 향상시키는 데에 많은 시간을 보냈습니다. 번들러의 코드는 5살이 되었으며, 400명 이상의 기여자들이 작성한 코드들로 구성되어 있습니다. 이는 점점 코드에 기여하는 것을 어렵게 만들고 있으며, 또한 번들러의 모든 코드들이 같은 기준에 맞추어져서 작성된 것인지 보증할 수 없게 만들었습니다(그리고 이는 향후 5년간도 그럴 것입니다). 이 코드들을 좀 더 일관성있게 만들기 위해 RoboCop(과 그 스타일 가이드)를 도입하고, master가 실패하지 않도록 코드 리뷰를 통과한 모든 새 코드를 담당하는 빌드 봇을 도입했습니다. 이것은 무척 큰 진전이며, 최고의 릴리즈가 될 것이라 확신합니다.

이 부분은 제쳐두고, 이렇게 오래 걸린 릴리스에 어떤 것들이 포함되어 있을까요?

새 기능

우선, 수년간 쌓여있던 번들러의 이슈를 정리했으며, 이를 에러 메시지에 반영했습니다. 최종 목표는 예외를 발생시키고 백트레이스를 보여주는 대신, 도움이 되는 에러 메시지를 출력하는 것이고, 거의 다 했습니다.

의존성 해결기에도 몇 가지 변경사항이 있었습니다. 에러 메시지의 출력 형태 개선에 더불어, 버전 충돌이 발생했을 경우 현재 활성화되어 있는 젬의 목록과 각각의 버전 정보를 출력하여, 충돌을 해결하는 가장 좋은 방법을 찾을 수 있도록 도와줍니다. 나아가, 의존성 해결이 무척 오래 걸리는 특정 상황에서의 속도가 25배 이상 빨라졌습니다.

마지막으로, 현재 버전에서 젬의 의존성을 해결하기 위한 준비 작업을 진행중입니다. 새 인덱스가 릴리스 되면, 번들러는 required_ruby_version을 통해 현재 실행중인 루비의 버전을 확인하고 맞는 젬을 선택할 수 있을 것입니다.

버그 수정

사실 이 릴리스의 가장 중요한 변경점은 400개 이상의 커밋에 걸쳐, 50개의 버그를 수정했다는 점에 있습니다. 다시 말하자면 이번 버전은 지금까지 중에 가장 빠르고, 가장 안정적인 버전이 될 것입니다.

다음 예정

이미 말했듯이, 무척 오래 걸린 이번 릴리즈는 저희의 작업 속도가 느려졌다는 의미가 아닙니다. 실제로는 정반대입니다! 현재 무척 활발하게 번들러 1.12와 2.0을 작업중이며, 가급적 빠르게 새 인덱스 작업을 마무리지어서 공개하겠습니다.

업데이트하기

최신 번들러 릴리스를 설치하기 위해서는 다음을 실행하세요.

$ [sudo] gem install bundler

더 자세한 설명은 Changelog에서 보실 수 있습니다!

Fork me on GitHub
Docs: Previous Version (v1.10) Current Version (v1.11)