From 38e4aee8a7e18d7ccf306f79b7be64f717a74efe Mon Sep 17 00:00:00 2001 From: Andre Arko Date: Sun, 22 Jun 2014 13:45:24 -0700 Subject: bundler/bundler-site@984e822914188835ea99b9432654eb775e87f8d2 --- index.html | 2 +- issues.html | 2 +- man/bundle-config.1.html | 2 +- man/bundle-exec.1.html | 2 +- man/bundle-install.1.html | 2 +- man/bundle-package.1.html | 2 +- man/bundle-platform.1.html | 2 +- man/bundle-update.1.html | 2 +- man/bundle.1.html | 2 +- man/gemfile.5.html | 2 +- sitemap.xml | 8 ++- v1.0/man/bundle-config.1.html | 2 +- v1.0/man/bundle-exec.1.html | 2 +- v1.0/man/bundle-install.1.html | 2 +- v1.0/man/bundle-package.1.html | 2 +- v1.0/man/bundle-update.1.html | 2 +- v1.0/man/bundle.1.html | 2 +- v1.0/man/gemfile.5.html | 2 +- v1.1/man/bundle-config.1.html | 2 +- v1.1/man/bundle-exec.1.html | 2 +- v1.1/man/bundle-install.1.html | 2 +- v1.1/man/bundle-package.1.html | 2 +- v1.1/man/bundle-update.1.html | 2 +- v1.1/man/bundle.1.html | 2 +- v1.1/man/gemfile.5.html | 2 +- v1.2/man/bundle-config.1.html | 2 +- v1.2/man/bundle-exec.1.html | 2 +- v1.2/man/bundle-install.1.html | 2 +- v1.2/man/bundle-package.1.html | 2 +- v1.2/man/bundle-platform.1.html | 2 +- v1.2/man/bundle-update.1.html | 2 +- v1.2/man/bundle.1.html | 2 +- v1.2/man/gemfile.5.html | 2 +- v1.3/man/bundle-config.1.html | 2 +- v1.3/man/bundle-exec.1.html | 2 +- v1.3/man/bundle-install.1.html | 2 +- v1.3/man/bundle-package.1.html | 2 +- v1.3/man/bundle-platform.1.html | 2 +- v1.3/man/bundle-update.1.html | 2 +- v1.3/man/bundle.1.html | 2 +- v1.3/man/gemfile.5.html | 2 +- v1.5/man/bundle-config.1.html | 2 +- v1.5/man/bundle-exec.1.html | 2 +- v1.5/man/bundle-install.1.html | 2 +- v1.5/man/bundle-package.1.html | 2 +- v1.5/man/bundle-platform.1.html | 2 +- v1.5/man/bundle-update.1.html | 2 +- v1.5/man/bundle.1.html | 2 +- v1.5/man/gemfile.5.html | 2 +- v1.6/bundle_binstubs.html | 141 ++++++++++++++++++++++++++++++++++++++++ v1.6/bundle_check.html | 9 ++- v1.6/bundle_clean.html | 8 ++- v1.6/bundle_config.html | 12 +++- v1.6/bundle_exec.html | 11 +++- v1.6/bundle_gem.html | 10 ++- v1.6/bundle_inject.html | 133 +++++++++++++++++++++++++++++++++++++ v1.6/bundle_install.html | 15 +++-- v1.6/bundle_package.html | 16 ++++- v1.6/bundle_update.html | 15 ++++- v1.6/commands.html | 85 +++++++++++++++++++++++- v1.6/gemfile.html | 2 +- v1.6/git.html | 30 +++++++-- v1.6/man/bundle-config.1.html | 2 +- v1.6/man/bundle-exec.1.html | 2 +- v1.6/man/bundle-install.1.html | 2 +- v1.6/man/bundle-package.1.html | 2 +- v1.6/man/bundle-platform.1.html | 2 +- v1.6/man/bundle-update.1.html | 2 +- v1.6/man/bundle.1.html | 2 +- v1.6/man/gemfile.5.html | 2 +- v1.6/rationale.html | 70 ++++++++++---------- 71 files changed, 559 insertions(+), 118 deletions(-) create mode 100644 v1.6/bundle_binstubs.html create mode 100644 v1.6/bundle_inject.html diff --git a/index.html b/index.html index 2245b71d30..3c7f6e956f 100644 --- a/index.html +++ b/index.html @@ -107,7 +107,7 @@ #bundler on IRC Mailing list Contributing - Email core team + Email core team
-
$ bundle config --global NAME VALUE 
+
$ bundle config --global NAME VALUE
Works the same as the command above.
@@ -112,7 +112,7 @@ VALUE.
-
$ bundle config --local NAME VALUE 
+
$ bundle config --local NAME VALUE
Works the same as the two command above but for the local application. The configuration will be stored in app/.bundle/config. @@ -199,6 +199,14 @@ bundle install.

    +
  • + auto_install (1): Setting auto_install config + to 1 or any other truthy value will enable automatic installing of gems + instead of raising an error. This behavior applies to the following + commands: show, binstubs, + outdated, exec, open, + console, license, clean. +
  • path (BUNDLE_PATH): The location on disk to install gems. Defaults to $GEM_HOME in development diff --git a/v1.6/bundle_exec.html b/v1.6/bundle_exec.html index 033780e4df..fced32e5b8 100644 --- a/v1.6/bundle_exec.html +++ b/v1.6/bundle_exec.html @@ -20,7 +20,16 @@
    Run the command in context of the bundle
    -
    $ bundle exec
    +
    $ bundle exec [--keep-file-descriptors]
    +
    +

    + Options: +

    +

    + --keep-file-descriptors: For Ruby versions less than 2.0, + keeps non-standard file descriptors on Kernel#exec +

    +
    Exec runs a command, providing it access to the gems in the bundle. While using bundle exec you can require and call the bundled gems as if they were installed diff --git a/v1.6/bundle_gem.html b/v1.6/bundle_gem.html index 0e805aedf0..f37eceb44a 100644 --- a/v1.6/bundle_gem.html +++ b/v1.6/bundle_gem.html @@ -20,7 +20,7 @@
    Creates a skeleton for creating a rubygem
    -
    $ bundle gem GEM [--bin or -b]
    +
    $ bundle gem GEM [--bin or -b] [--test=TESTFRAMEWORK] [--edit=TEXTEDITOR] [--ext]

    Options: @@ -28,9 +28,17 @@

    --bin or -b: Generate a binary for your library.

    +

    + --edit: Opens generated gemspec with specified or default + text editor set BUNDLER_EDITOR, EDITOR or VISUAL env variables. +

    --ext: Generate a skeleton for a C-extension.

    +

    + --test: Generate a test directory for your library: + 'rspec' is the default, but 'minitest' is also supported. +

diff --git a/v1.6/bundle_inject.html b/v1.6/bundle_inject.html new file mode 100644 index 0000000000..6c2f514b5d --- /dev/null +++ b/v1.6/bundle_inject.html @@ -0,0 +1,133 @@ + + + + Bundler: The best way to manage a Ruby application's gems + + + + + + +
+ +
+
+

bundle inject

+
+
+
+ Add the named gem(s), with version requirements, to the resolved Gemfile +
+
$ bundle inject [GEM] [VERSION]
+
+
+
+ When injecting a gem, it adds it to both your Gemfile and Gemfile.lock if + it doesn't yet exist in them. Example below: +
+
$ bundle install

$ bundle inject 'rack' '> 0'
# Injects rack gem greater than version 0 in your Gemfile and Gemfile.lock
+
+
+
+ +
+
+ + + Fork me on GitHub + +
+ Docs: + v0.9 + v1.0 + v1.1 + v1.2 + v1.3 + v1.5 + v1.6 +
+ + + diff --git a/v1.6/bundle_install.html b/v1.6/bundle_install.html index 98d2e0e935..14ecde1e4c 100644 --- a/v1.6/bundle_install.html +++ b/v1.6/bundle_install.html @@ -20,7 +20,7 @@
Make sure all dependencies in your Gemfile are available to your application.
-
$ bundle install [--binstubs=PATH] [--clean] [--deployment] [--frozen]
                 [--full-index] [--gemfile=FILE] [--local] [--no-cache]
                 [--no-prune] [--path=PATH] [--quiet] [--shebang=STRING]
                 [--standalone=ARRAY] [--system] [--without=GROUP GROUP]
+
$ bundle install [--binstubs=PATH] [--clean] [--deployment] [--frozen]
                 [--full-index] [--gemfile=FILE] [--local] [--no-cache]
                 [--no-prune] [--path=PATH] [--quiet] [--shebang=STRING]
                 [--standalone=ARRAY] [--system] [--without=GROUP GROUP]
                 [--trust-policy=SECURITYLEVEL]

Options: @@ -43,6 +43,9 @@

--gemfile: Use the specified gemfile instead of Gemfile

+

+ --jobs: Install gems using parallel workers. +

--local: Do not attempt to fetch gems remotely and use the gem cache instead

@@ -58,6 +61,9 @@

--quiet: Only output warnings and errors.

+

+ --retry: Retry network and git requests that have failed. +

--shebang: Specify a different shebang executable name than the default (usually 'ruby')

@@ -68,13 +74,10 @@ --system: Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application

- --without: Exclude gems that are part of the specified named group. -

-

- --jobs: Install gems using parallel workers. + --trust-policy: Sets level of security when dealing with signed gems. Accepts `LowSecurity`, `MediumSecurity` and `HighSecurity` as values.

- --retry: Retry network and git requests that have failed. + --without: Exclude gems that are part of the specified named group.

diff --git a/v1.6/bundle_package.html b/v1.6/bundle_package.html index 8b6dc687bf..29a87a0588 100644 --- a/v1.6/bundle_package.html +++ b/v1.6/bundle_package.html @@ -20,16 +20,28 @@
Locks and then caches the gems into ./vendor/cache.
-
$ bundle package [--no-prune] [--all]
+
$ bundle package [--all] [--gemfile=GEMFILE] [--no-install] [--no-prune] [--path=PATH] [--quiet]

Options:

+

+ --all: package :git, :path, and .gem dependencies. Once used, the --all option will be remembered. +

+

+ --gemfile: Use the specified gemfile instead of Gemfile. +

+

+ --no-install: Don't actually install the gems, just package. +

--no-prune: Don't remove stale gems from the cache.

- --all: package :git, :path, and .gem dependencies. Once used, the --all option will be remembered. + --path: Specify a different path than the system default. +

+

+ --quiet: Only output warnings and errors.

diff --git a/v1.6/bundle_update.html b/v1.6/bundle_update.html index b8ffd3b370..7fb5d3aa67 100644 --- a/v1.6/bundle_update.html +++ b/v1.6/bundle_update.html @@ -20,15 +20,28 @@
Update the current environment
-
$ bundle update [GEM] [--local] [--source=SOURCE]
+
$ bundle update [GEM] [--full-index] [--group=GROUP] [--jobs=NUMBER] [--local] [--quiet] [--source=SOURCE]

Options:

+

+ --full-index: Use the rubygems modern index instead of + the API endpoint +

+

+ --group: Update one or more gem groups +

+

+ --jobs: Specify the number of jobs to run in parallel +

--local: Do not attempt to fetch gems remotely and use the gem cache instead

+

+ --quiet: Only output warnings and errors. +

--source: Update a specific source (and all gems associated with it) diff --git a/v1.6/commands.html b/v1.6/commands.html index a0bc1c28da..792b27144a 100644 --- a/v1.6/commands.html +++ b/v1.6/commands.html @@ -25,6 +25,25 @@ applicable options + + +

+
+ Installs the binstubs of the listed gem +
+ + +
+ --force +
+
+ --path +
+
+ +
@@ -35,6 +54,9 @@
+
+ --dry-run +
@@ -54,6 +76,9 @@
+
+ --dry-run +
@@ -96,6 +121,9 @@
+
@@ -112,6 +140,15 @@ +
+ --edit +
+
+ --ext +
+
+ --test +
@@ -144,6 +181,19 @@
+ + + +
+ Add the named gem(s), with version requirements, to the resolved Gemfile +
+ + +
+ +
@@ -172,6 +222,9 @@ +
+ --jobs +
@@ -187,6 +240,9 @@ +
+ --retry +
@@ -196,6 +252,9 @@ + @@ -247,11 +306,23 @@
+
+ --all +
+
+ --gemfile +
+
- --all + --path +
+
@@ -298,9 +369,21 @@
+ +
+ --group +
+
+ --jobs +
+
+ --quiet +
diff --git a/v1.6/gemfile.html b/v1.6/gemfile.html index 1d3b534244..281e93ede5 100644 --- a/v1.6/gemfile.html +++ b/v1.6/gemfile.html @@ -79,7 +79,7 @@
- If you would like to use a unpacked gem directly from the filesystem, simply set the :path option to the path containing the the gem's files. + If you would like to use a unpacked gem directly from the filesystem, simply set the :path option to the path containing the gem's files.
gem 'extracted_library', :path => './vendor/extracted_library'
diff --git a/v1.6/git.html b/v1.6/git.html index 80ed9dc37f..8c8cba41e2 100644 --- a/v1.6/git.html +++ b/v1.6/git.html @@ -86,24 +86,40 @@
gem 'rails', :github => 'rails'
- NB: This shorthand is insecure in versions of Bundler prior to 2.0! Use HTTPS instead + NB: This shorthand can only be used for public repos in Bundler version 1.x. Use HTTPS for read and write:
gem 'rails', :git => 'https://github.com/rails/rails'
- Alternatively, you can specify a full commit hash + All of the usual :git options apply, like :branch and :ref.
gem 'rails', :github => 'rails', :ref => 'a9752dcfd15bcddfe7b6f7126f3a6e0ba5927c56'
+

Custom git sources

+
+
+
+ The :github shortcut used above is one of Bundler's built in git sources. Bundler comes + with shortcuts for :github, :gist, and :bitbucket, but you can + also add your own. +
+
+ If you're using Github Enterprise, Stash, or just have a custom git setup, create your own shortcuts + by calling git_source before you use your custom option. Here's an example for Stash: +
+
git_source(:stash){ |repo_name| "https://stash.corp.acme.pl/#{repo_name}.git" }
gem 'rails', :stash => 'forks/rails'
+
+

Security

- http:// and git:// URLs are insecure, and should - be avoided if at all possible. These protocols are unauthenticated, so a - man-in-the-middle attacker can tamper with the code and compromise your system. - Note that the :github shortcut translates to a git:// - URL in pre-2.0 versions. + http:// and git:// URLs are insecure. A + man-in-the-middle attacker could tamper with the code as you check it out, + and potentially supply you with malicious code instead of the code you meant to + check out. Because the :github shortcut uses a git:// + URL in Bundler 1.x versions, we recommend using using HTTPS URLs or overriding + the :github shortcut with your own HTTPS git source.
diff --git a/v1.6/man/bundle-config.1.html b/v1.6/man/bundle-config.1.html index f7b50fa8d9..da37a0c2c1 100644 --- a/v1.6/man/bundle-config.1.html +++ b/v1.6/man/bundle-config.1.html @@ -233,7 +233,7 @@ mirror to fetch gems.

  1. -
  2. April 2014
  3. +
  4. June 2014
  5. bundle-config(1)
diff --git a/v1.6/man/bundle-exec.1.html b/v1.6/man/bundle-exec.1.html index e373b2c3f0..8beae5b835 100644 --- a/v1.6/man/bundle-exec.1.html +++ b/v1.6/man/bundle-exec.1.html @@ -222,7 +222,7 @@ that you aren't using (gem uninstall gem_name).

  1. -
  2. April 2014
  3. +
  4. June 2014
  5. bundle-exec(1)
diff --git a/v1.6/man/bundle-install.1.html b/v1.6/man/bundle-install.1.html index 85ee1c2ca6..9f9d108134 100644 --- a/v1.6/man/bundle-install.1.html +++ b/v1.6/man/bundle-install.1.html @@ -426,7 +426,7 @@ does not work, run bundle update(1).

  1. -
  2. April 2014
  3. +
  4. June 2014
  5. bundle-install(1)
diff --git a/v1.6/man/bundle-package.1.html b/v1.6/man/bundle-package.1.html index b83b2fe245..b3cbb22aa7 100644 --- a/v1.6/man/bundle-package.1.html +++ b/v1.6/man/bundle-package.1.html @@ -132,7 +132,7 @@ deploying to production.

  1. -
  2. April 2014
  3. +
  4. June 2014
  5. bundle-package(1)
diff --git a/v1.6/man/bundle-platform.1.html b/v1.6/man/bundle-platform.1.html index e1efcbb4b0..bf0b53ac07 100644 --- a/v1.6/man/bundle-platform.1.html +++ b/v1.6/man/bundle-platform.1.html @@ -117,7 +117,7 @@ parse it from the GemfileGemf
  1. -
  2. April 2014
  3. +
  4. June 2014
  5. bundle-update(1)
diff --git a/v1.6/man/bundle.1.html b/v1.6/man/bundle.1.html index a0eb87de62..e1a0577d50 100644 --- a/v1.6/man/bundle.1.html +++ b/v1.6/man/bundle.1.html @@ -143,7 +143,7 @@ and available to bundler

  1. -
  2. April 2014
  3. +
  4. June 2014
  5. bundle(1)
diff --git a/v1.6/man/gemfile.5.html b/v1.6/man/gemfile.5.html index ab7ba824e7..e6a1701f43 100644 --- a/v1.6/man/gemfile.5.html +++ b/v1.6/man/gemfile.5.html @@ -437,7 +437,7 @@ bundler uses the following priority order:

  1. -
  2. April 2014
  3. +
  4. June 2014
  5. Gemfile(5)
diff --git a/v1.6/rationale.html b/v1.6/rationale.html index e756507877..80ad94085c 100644 --- a/v1.6/rationale.html +++ b/v1.6/rationale.html @@ -16,7 +16,7 @@

@@ -27,10 +27,10 @@ First, you declare these dependencies in a file at the root of your application, called Gemfile. It looks something like this:

-
source 'https://rubygems.org'

gem 'rails', '3.0.0.rc'
gem 'rack-cache'
gem 'nokogiri', '~> 1.4.2'
+
source 'https://rubygems.org'

gem 'rails', '4.1.0.rc2'
gem 'rack-cache'
gem 'nokogiri', '~> 1.6.1'

This Gemfile says a few things. First, it says that bundler should look for gems - declared in the Gemfile at http://rubygems.org. You can declare + declared in the Gemfile at https://rubygems.org. You can declare multiple Rubygems sources, and bundler will look for gems in the order you declared the sources.

@@ -38,9 +38,9 @@ Next, you declare a few dependencies:

    -
  • on version 3.0.0.rc of rails
  • +
  • on version 4.1.0.rc2 of rails
  • on any version of rack-cache
  • -
  • on a version of nokogiri that is >= 1.4.2 but < 1.5.0
  • +
  • on a version of nokogiri that is >= 1.6.1 but < 1.7.0

After declaring your first set of dependencies, you tell bundler to go get them: @@ -53,7 +53,7 @@ those have their own dependencies), running bundle install on the Gemfile above will install quite a few gems.

-
$ bundle install
Fetching gem metadata from https://rubygems.org/
Resolving dependencies...
Using rake (0.8.7)
Using abstract (1.0.0)
Installing activesupport (3.0.0.rc)
Using builder (2.1.2)
Using i18n (0.4.1)
Installing activemodel (3.0.0.rc)
Using erubis (2.6.6)
Using rack (1.2.1)
Installing rack-mount (0.6.9)
Using rack-test (0.5.4)
Using tzinfo (0.3.22)
Installing actionpack (3.0.0.rc)
Using mime-types (1.16)
Using polyglot (0.3.1)
Using treetop (1.4.8)
Using mail (2.2.5)
Installing actionmailer (3.0.0.rc)
Using arel (0.4.0)
Installing activerecord (3.0.0.rc)
Installing activeresource (3.0.0.rc)
Using bundler (1.0.0.rc.3)
Installing nokogiri (1.4.3.1) with native extensions
Installing rack-cache (0.5.2)
Installing thor (0.14.0)
Installing railties (3.0.0.rc)
Installing rails (3.0.0.rc)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
+
$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Using rake 10.3.1
Using json 1.8.1
Installing minitest 5.3.3
Installing i18n 0.6.9
Installing thread_safe 0.3.3
Installing builder 3.2.2
Installing rack 1.5.2
Installing erubis 2.7.0
Installing mime-types 1.25.1
Using bundler 1.6.2
Installing polyglot 0.3.4
Installing arel 5.0.1.20140414130214
Installing hike 1.2.3
Installing mini_portile 0.5.3
Installing multi_json 1.9.3
Installing thor 0.19.1
Installing tilt 1.4.1
Installing tzinfo 1.1.0
Installing rack-test 0.6.2
Installing rack-cache 1.2
Installing treetop 1.4.15
Installing sprockets 2.12.1
Installing activesupport 4.1.0.rc2
Installing mail 2.5.4
Installing actionview 4.1.0.rc2
Installing activemodel 4.1.0.rc2
Installing actionpack 4.1.0.rc2
Installing activerecord 4.1.0.rc2
Installing actionmailer 4.1.0.rc2
Installing sprockets-rails 2.0.1
Installing railties 4.1.0.rc2
Installing rails 4.1.0.rc2
Installing nokogiri 1.6.1
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

If any of the needed gems are already installed, Bundler will use them. After installing any needed gems to your system, bundler writes a snapshot of all of the gems and @@ -64,7 +64,7 @@

Bundler makes sure that Ruby can find all of the gems in the Gemfile - (and all of their dependencies). If your app is a Rails 3 app, your default application + (and all of their dependencies). If your app is a Rails 3+ app, your default application already has the code necessary to invoke bundler. If it is a Rails 2.3 app, please see Setting up Bundler in Rails 2.3.

@@ -95,7 +95,7 @@ gem is require 'rack/cache', not require 'rack-cache'. To tell bundler to use require 'rack/cache', update your Gemfile:

-
source 'http://rubygems.org'

gem 'rails', '3.0.0.rc'
gem 'rack-cache', :require => 'rack/cache'
gem 'nokogiri', '~> 1.4.2'
+
source 'https://rubygems.org'

gem 'rails', '4.1.0.rc2'
gem 'rack-cache', require: 'rack/cache'
gem 'nokogiri', '~> 1.6.1'

For such a small Gemfile, we'd advise you to skip Bundler.require and just require the gems by hand (especially given the @@ -153,8 +153,8 @@ In other words, you don't have to guess which versions of the dependencies you should install. In the example we've been using, even though rack-cache declares a dependency on rack >= 0.4, we know for sure it works with rack - 1.2.1. Even if the Rack team releases rack 1.2.2, bundler will - always install 1.2.1, the exact version of the gem that we know works. This + 1.5.2. Even if the Rack team releases rack 1.5.3, bundler will + always install 1.5.2, the exact version of the gem that we know works. This relieves a large maintenance burden from application developers, because all machines always run the exact same third-party code.

@@ -164,26 +164,26 @@

Of course, at some point, you might want to update the version of a particular dependency your application relies on. For instance, you might want to update - rails to 3.0.0 final. Importantly, just because you're + rails to 4.1.0 final. Importantly, just because you're updating one dependency, it doesn't mean you want to re-resolve all of your dependencies and use the latest version of everything. In our example, you only have three dependencies, but even in this case, updating everything can cause complications.

- To illustrate, the rails 3.0.0.rc gem depends on actionpack - 3.0.0.rc gem, which depends on rack ~> 1.2.1 (which means >= - 1.2.1 and < 1.3.0). The rack-cache gem depends on - rack >= 0.4. Let's assume that the rails 3.0.0 final gem also - depends on rack ~> 1.2.1, and that since the release of rails - 3.0.0, the Rack team released rack 1.2.2. + To illustrate, the rails 4.1.0.rc2 gem depends on actionpack + 4.1.0.rc2 gem, which depends on rack ~> 1.5.2 (which means >= + 1.5.2 and < 1.6.0). The rack-cache gem depends on + rack >= 0.4. Let's assume that the rails 4.1.0 final gem also + depends on rack ~> 1.5.2, and that since the release of rails + 4.1.0, the Rack team released rack 1.5.3.

If we naïvely update all of our gems in order to update Rails, we'll get rack - 1.2.2, which satisfies the requirements of both rails 3.0.0 and + 1.5.3, which satisfies the requirements of both rails 4.1.0 and rack-cache. However, we didn't specifically ask to update - rack-cache, which may not be compatible with rack 1.2.2 (for - whatever reason). And while an update from rack 1.2.1 to rack - 1.2.2 probably won't break anything, similar scenarios can happen that involve + rack-cache, which may not be compatible with rack 1.5.3 (for + whatever reason). And while an update from rack 1.5.2 to rack + 1.5.3 probably won't break anything, similar scenarios can happen that involve much larger jumps. (see [1] below for a larger discussion)

@@ -191,15 +191,15 @@ dependency of that gem if another gem still depends on it. In this example, since rack-cache still depends on rack, bundler will not update the rack gem. This ensures that updating rails doesn't - inadvertently break rack-cache. Since rails 3.0.0's dependency - actionpack 3.0.0 remains compatible with rack 1.2.1, bundler + inadvertently break rack-cache. Since rails 4.1.0's dependency + actionpack 4.1.0 remains compatible with rack 1.5.2, bundler leaves it alone, and rack-cache continues to work even in the face of an - incompatibility with rack 1.2.2. + incompatibility with rack 1.5.3.

- Since you originally declared a dependency on rails 3.0.0.rc, if you want - to update to rails 3.0.0, simply update your Gemfile to - gem 'rails', '3.0.0' and run: + Since you originally declared a dependency on rails 4.1.0.rc2, if you want + to update to rails 4.1.0, simply update your Gemfile to + gem 'rails', '4.1.0' and run:

$ bundle install

@@ -248,7 +248,7 @@

It will, however, update dependencies of other gems if necessary. For instance, if the latest version of rack-cache specifies a dependency on rack >= - 1.2.2, bundler will update rack to 1.2.2 even though + 1.5.2, bundler will update rack to 1.5.2 even though you have not asked bundler to update rack. If bundler needs to update a gem that another gem depends on, it will let you know after the update has completed.

@@ -284,7 +284,7 @@ Next, add any gems that your application depends on. If you care which version of a particular gem that you need, be sure to include an appropriate version restriction:

-
source 'http://rubygems.org'

gem 'sinatra', '~> 0.9.0'
gem 'rack-cache'
gem 'rack-bug'
+
source 'https://rubygems.org'

gem 'sinatra', '~> 1.3.6'
gem 'rack-cache'
gem 'rack-bug'
  • @@ -296,7 +296,7 @@

    To update a gem's version requirements, first modify the Gemfile:

    -
    source 'http://rubygems.org'
    
    gem 'sinatra', '~> 1.0.0'
    gem 'rack-cache'
    gem 'rack-bug'
    
    +
    source 'https://rubygems.org'
    
    gem 'sinatra', '~> 1.4.5'
    gem 'rack-cache'
    gem 'rack-bug'
    

    and then run:

    @@ -309,7 +309,7 @@

    $ bundle update sinatra
    

    - This will update just the Sinatra gem, as well as any of its dependencies + This will update just the Sinatra gem, as well as any of its dependencies.

  • @@ -337,15 +337,15 @@ Notes

    - [1] For instance, if rails 3.0.0 depended on rack 2.0, that + [1] For instance, if rails 4.1.0 depended on rack 2.0, that gem would still satisfy the requirement of rack-cache, which declares - >= 1.0 as a dependency. Of course, you could argue that + >= 0.4 as a dependency. Of course, you could argue that rack-cache is silly for depending on open-ended versions, but these situations exist (extensively) in the wild, and projects often find themselves between a rock and a hard place when deciding what version to depend on. Constrain the dependency - too much (rack =1.2.1) and you make it hard to use your project in other + too much (rack =1.5.1) and you make it hard to use your project in other compatible projects. Constrain it too little (rack >= 1.0) and a new - release of Rack may break your code. Using dependencies like rack ~> 1.2.1 + release of Rack may break your code. Using dependencies like rack ~> 1.5.2 and versioning code in a SemVer compliant way mostly solves this problem, but it assumes universal compliance. Since Rubygems has over 100,000 packages, this assumption simply doesn't hold in practice. -- cgit v1.2.1