summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md78
-rw-r--r--UPGRADING.md97
2 files changed, 104 insertions, 71 deletions
diff --git a/README.md b/README.md
index 151cf44e91..c6c9414c41 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-## Bundler : A gem to bundle gems
+# Bundler: a gem to bundle gems
Bundler is a tool that manages gem dependencies for your ruby application. It
takes a gem manifest file and is able to fetch, download, and install the gems
@@ -8,84 +8,20 @@ you run any ruby code in context of the bundle's gem environment.
## Installation and usage
-See [gembundler.com](http://gembundler.com) for up-to-date installation and usage instructions
+See [gembundler.com](http://gembundler.com) for up-to-date installation and usage instructions.
-## Upgrading from Bundler 0.8 to 0.9 and above
-
-Upgrading to Bundler 0.9 from Bundler 0.8 requires upgrading several
-API calls in your Gemfile, and some workarounds if you are using Rails 2.3.
-
-### Gemfile Removals
-
-Bundler 0.9 removes the following Bundler 0.8 Gemfile APIs:
-
-1. `disable_system_gems`: This is now the default (and only) option
- for bundler. Bundler uses the system gems you have specified
- in the Gemfile, and only the system gems you have specified
- (and their dependencies)
-2. `disable_rubygems`: This is no longer supported. We are looking
- into ways to get the fastest performance out of each supported
- scenario, and we will make speed the default where possible.
-3. `clear_sources`: Bundler now defaults to an empty source
- list. If you want to include Rubygems, you can add the source
- via source "http://gemcutter.org". If you use bundle init, this
- source will be automatically added for you in the generated
- Gemfile
-4. `bundle_path`: You can specify this setting when installing
- via `bundle install /path/to/bundle`. Bundler will remember
- where you installed the dependencies to on a particular
- machine for future installs, loads, setups, etc.
-5. `bin_path`: Bundler no longer generates binaries in the root
- of your app. You should use `bundle exec` to execute binaries
- in the current context.
-
-### Gemfile Changes
-
-Bundler 0.9 changes the following Bundler 0.8 Gemfile APIs:
-
-1. Bundler 0.8 supported :only and :except as APIs for describing
- groups of gems. Bundler 0.9 supports a single `group` method,
- which you can use to group gems together. See the above "Group"
- section for more information.
+## Troubleshooting
- This means that `gem "foo", :only => :production` becomes
- `gem "foo", :group => :production`, and
- `only :production { gem "foo" }` becomes
- `group :production { gem "foo" }`
-
- The short version is: group your gems together logically, and
- use the available commands to make use of the groups you've
- created.
-
-2. `:require_as` becomes `:require`
-
-3. `:vendored_at` is fully removed; you should use `:path`
-
-### API Changes
-
-1. `Bundler.require_env(:environment)` becomes
- `Bundler.require(:multiple, :groups)`. You must
- now specify the default group (the default group is the
- group made up of the gems not assigned to any group)
- explicitly. So `Bundler.require_env(:test)` becomes
- `Bundler.require(:default, :test)`
-
-2. `require 'vendor/gems/environment'`: In unlocked
- mode, where using system gems, this becomes
- `Bundler.setup(:multiple, :groups)`. If you don't
- specify any groups, this puts all groups on the load
- path. In locked, mode, it becomes `require '.bundle/environment'`
-
-## More information
+For help with common problems, see [ISSUES](http://github.com/carlhuda/bundler/blob/master/ISSUES.md).
### Development
-For information about future plans and changes that will happen in the future, see the [ROADMAP](http://github.com/carlhuda/bundler/blob/master/ROADMAP.md). To see what has changed in each version of bundler, starting with 0.9.5, see the [CHANGELOG](http://github.com/carlhuda/bundler/blob/master/CHANGELOG.md).
+To see what has changed in each version of bundler, starting with 0.9.5, see the [CHANGELOG](http://github.com/carlhuda/bundler/blob/master/CHANGELOG.md). For information about changes that will happen in the future, see the [ROADMAP](http://github.com/carlhuda/bundler/blob/master/ROADMAP.md).
### Other questions
Any remaining questions may be asked via IRC in [#bundler](irc://irc.freenode.net/bundler) on Freenode, or via email on the [Bundler mailing list](http://groups.google.com/group/ruby-bundler).
-### Issues
+## Upgrading from Bundler 0.8 to 0.9 and above
-See [ISSUES](http://github.com/carlhuda/bundler/blob/master/ISSUES.md). \ No newline at end of file
+See [UPGRADING](http://github.com/carlhuda/bundler/blob/master/UPGRADING.md). \ No newline at end of file
diff --git a/UPGRADING.md b/UPGRADING.md
new file mode 100644
index 0000000000..4f76b9a377
--- /dev/null
+++ b/UPGRADING.md
@@ -0,0 +1,97 @@
+## Bundler 0.9 to 1.0 and above
+
+Upgrading from Bundler 0.9 to 1.0 is relatively painless. The
+Gemfile API is the same, so your old Gemfiles should continue
+to work.
+
+The `bundle lock` command is no longer needed, as the
+Gemfile.lock file is now automatically generated by `bundle install`.
+If you have not yet done so, add your Gemfile.lock to source control
+and check it in.
+
+Running `bundle install` no longer updates the versions of your gems.
+If you need to update just one gem, run `bundle update GEMNAME`. To
+update all gems to the newest versions possible, run `bundle update`.
+
+Bundler now supports multiple platforms, using a block syntax to
+declare platform-specific gems:
+
+ platform :jruby do
+ gem "jruby-maven-plugins"
+ end
+
+Deploying using Bundler is even easier than it was before, as Bundler
+now includes a Capistrano recipe. Simply add this line to the top of
+your deploy.rb file to run Bundler automatically as part of deploying:
+
+ require 'bundler/capistrano'
+
+For more details on deploying using bundler, see the documentation
+for the bundler cap task, and the [documentation on deploying](http://gembundler.com/v1.0/deploying.html).
+
+
+## Bundler 0.8 to 0.9 and above
+
+Upgrading to Bundler 0.9 from Bundler 0.8 requires upgrading several
+API calls in your Gemfile, and some workarounds if you are using Rails 2.3.
+
+### Gemfile Removals
+
+Bundler 0.9 removes the following Bundler 0.8 Gemfile APIs:
+
+1. `disable_system_gems`: This is now the default (and only) option
+ for bundler. Bundler uses the system gems you have specified
+ in the Gemfile, and only the system gems you have specified
+ (and their dependencies)
+2. `disable_rubygems`: This is no longer supported. We are looking
+ into ways to get the fastest performance out of each supported
+ scenario, and we will make speed the default where possible.
+3. `clear_sources`: Bundler now defaults to an empty source
+ list. If you want to include Rubygems, you can add the source
+ via source "http://gemcutter.org". If you use bundle init, this
+ source will be automatically added for you in the generated
+ Gemfile
+4. `bundle_path`: You can specify this setting when installing
+ via `bundle install /path/to/bundle`. Bundler will remember
+ where you installed the dependencies to on a particular
+ machine for future installs, loads, setups, etc.
+5. `bin_path`: Bundler no longer generates binaries in the root
+ of your app. You should use `bundle exec` to execute binaries
+ in the current context.
+
+### Gemfile Changes
+
+Bundler 0.9 changes the following Bundler 0.8 Gemfile APIs:
+
+1. Bundler 0.8 supported :only and :except as APIs for describing
+ groups of gems. Bundler 0.9 supports a single `group` method,
+ which you can use to group gems together. See the above "Group"
+ section for more information.
+
+ This means that `gem "foo", :only => :production` becomes
+ `gem "foo", :group => :production`, and
+ `only :production { gem "foo" }` becomes
+ `group :production { gem "foo" }`
+
+ The short version is: group your gems together logically, and
+ use the available commands to make use of the groups you've
+ created.
+
+2. `:require_as` becomes `:require`
+
+3. `:vendored_at` is fully removed; you should use `:path`
+
+### API Changes
+
+1. `Bundler.require_env(:environment)` becomes
+ `Bundler.require(:multiple, :groups)`. You must
+ now specify the default group (the default group is the
+ group made up of the gems not assigned to any group)
+ explicitly. So `Bundler.require_env(:test)` becomes
+ `Bundler.require(:default, :test)`
+
+2. `require 'vendor/gems/environment'`: In unlocked
+ mode, where using system gems, this becomes
+ `Bundler.setup(:multiple, :groups)`. If you don't
+ specify any groups, this puts all groups on the load
+ path. In locked, mode, it becomes `require '.bundle/environment'`