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).