매트릭스: Ruby, Gem, Bundler 등

3673 단어

Cover Photo by Sufyan




세상은 Ruby-land에서 작동하는 최대 버전을 보여주는 최신 매트릭스가 필요합니다. 그래서 이것을 만들었습니다.


루비
MRI
ARM64 및 MacOS 12
보석
번들러
루보캅
rubocop-lts(*)
울타리


1.8.7

🙅

👋
👋👋
4.0.x

1.9.3

🙅
2.7.11
1.17.3
0.41.2
1.0, 2.0
4.2.x

jruby-1.7.27
1.9
🌱
👆️
👆️
👆️
👆️
👆️

2.0.0

🙅
👆️
👆️
0.50.0
3.0, 4.0
👆️

2.1.10

🙅
👆️
👆️
0.57.2
5.0, 6.0
👆️

2.2.10

🙅
👆️
👆️
0.68.1
7.0, 8.0
5.2.x

2.3.8

🙅
3.0.9
2.3.x
0.81.0
9.0, 10.0
👆️

jruby-9.1.17.0
2.3
🌱
👆️
👆️
👆️
👆️
👆️

2.4.10

🙅
👆️
👆️
1.12.1
11.0, 12.0
👆️

2.5.9

🙅
3.3.x
👆️
1.28.2
13.0, 14.0
6.0.x

jruby-9.2.20.1
2.5
🌱
👆️
👆️
👆️
👆️
👆️

2.6.10

🌱
👆️
👆️
1.29.x
15.0, 16.0
6.1.x

jruby-9.3.4.0
2.6
🌱
👆️
👆️
👆️
👆️
👆️

2.7.6

🌱
👆️
👆️
👆️
17.0, 18.0
7.0.0

3.0.4

🌱
👆️
👆️
👆️
19.0, 20.0
👆️

3.1.2

🌱
👆️
👆️
👆️
21.0, 22.0
7.0.x


* rubocop-lts에는 홀수 버전과 짝수 버전이 있습니다.

Rubocop-LTS 홀수 버전:




"1.0.0"
"3.0.0"
"5.0.0"
# ... etc


Ruby의 단일 마이너 버전으로 고정됩니다. 버전 15.0에는 required_ruby_version['>= 2.6.0', '< 2.7']가 있으며 2.6.x 버전의 Ruby에만 설치됩니다.

단일 Ruby 버전에 대해서만 Lint하는 애플리케이션 및 라이브러리를 대상으로 합니다.

이상한 버전은 스타일 규칙의 장기적인 안정성(ahem, lts 😜)을 위해 프로젝트의 트렁크(예: 메인 브랜치)에 연결되어야 합니다.

Rubocop-LTS 짝수 버전:




"2.0.0"
"4.0.0"
"6.0.0"
# ... etc


gem을 설치할 수 있는 Ruby의 전방 범위로 고정됩니다(rubocop이 모두 실행되지 않을 수도 있음).
예를 들어 버전 16.0에는 required_ruby_version['>= 2.6.0', '< 3.2']가 있으며 릴리스된 모든 버전에 설치됩니다.2.6의 루비.

다양한 Ruby 버전에 대해 린트하는 애플리케이션 및 라이브러리를 대상으로 합니다.

버전도 동일한 기본 버전의 Rubocop 버전을 유지하면서 프로젝트를 최신 Ruby로 업그레이드하는 데 도움이 되므로 한 번에 한 단계씩 변경 사항을 도입할 수 있습니다.

최대 루비 버전?



이 제약 조건이 있는 이유: '< 3.2' ?

이것은 좋은 질문이며 많은 gem의 경우 이치에 맞지 않습니다. 프로젝트와 해당 종속 항목을 새 버전의 Ruby로 업그레이드할 때 약간의 시행착오를 예상하기 때문입니다. 그러나 Rubocop LTS는 시행 착오에 관한 것이 아닙니다. Rubocop LTS의 한 가지 목적은 무엇이 작동할지에 대한 지식의 저장소가 되는 것입니다. 따라서 최대 버전은 Ruby의 최신 릴리스 안정적인 버전으로 지정됩니다.

향후 Ruby가 특정 짝수 버전의 Rubocop LTS와 함께 작동하게 되면 해당 주 버전에 대한 새 패치가 릴리스되어 업데이트required_ruby_version를 수용할 수 있습니다. 결국에는 작동하지 않는 새로운 Ruby가 출시될 것이며, Rubocop LTS의 최신 주요 릴리스는 항상 함께 작동할 Ruby의 마지막 버전을 알 것입니다. 왜냐하면 다음 버전의 Ruby를 활성화할 릴리스가 없었기 때문입니다.

좋은 웹페이지 즐겨찾기