The page numbers in my original post seem wrong. Instead of pages 102 and 104, they should be 75 and 76, respectively. That said, I’m not sure I trust Apple Books.
gem "rails", "~> 7.0.4" # means >= 7.0.4 and < 7.1
Semantic versioning boils down to:
PATCH0.0.x level changes for implementation level detail changes, such as small bug fixes
MINOR0.x.0 level changes for any backwards compatible API changes, such as new functionality/features
MAJORx.0.0 level changes for backwards incompatible API changes, such as changes that will break existing users code if they update
If you use a version specifier like "~> 7.0.4" bundler will always pick the latest patch of the given version7.0 of the gem.
Most of the version specifiers, like >= 1.0 , are self-explanatory. The specifier ~> has a special meaning, best shown by example. ~> 2.0.3 is identical to >= 2.0.3 and < 2.1 . ~> 2.1 is identical to >= 2.1 and < 3.0 . ~> 2.2.beta will match prerelease versions like 2.2.beta.12 . ~> 0 is identical to >= 0.0 and < 1.0 .