Bundler dùng pessimistic constraint operator ~> (twiddle-wakka) để cân bằng giữa nhận patch/minor mới và tránh breaking change:
| Ràng buộc | Nghĩa | Khoảng hợp lệ |
|---|---|---|
"~> 2.1" | >= 2.1, < 3.0 | nhận 2.x mới |
"~> 2.1.0" | >= 2.1.0, < 2.2.0 | chỉ nhận patch 2.1.x |
">= 2.1" | không giới hạn trên | nguy hiểm với major version |
"= 2.1.3" | đúng version này | pin cứng |
Best practice: dùng ~> với 2 phần số cho app (~> 7.1), 3 phần số cho gem nhạy cảm (~> 1.5.0).
Bundler uses the pessimistic constraint operator ~> (twiddle-wakka) to balance receiving new patches/minors while avoiding breaking changes:
| Constraint | Meaning | Valid range |
|---|---|---|
"~> 2.1" | >= 2.1, < 3.0 | any 2.x |
"~> 2.1.0" | >= 2.1.0, < 2.2.0 | only 2.1.x patches |
">= 2.1" | no upper bound | risky across major versions |
"= 2.1.3" | exactly this version | hard pin |
Best practice: use ~> with 2 digits for applications (~> 7.1), 3 digits for sensitive gems (~> 1.5.0).