bundler-maglev- 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +22 -0
- data/.travis.yml +32 -0
- data/CHANGELOG.md +805 -0
- data/ISSUES.md +62 -0
- data/LICENSE +23 -0
- data/README.md +29 -0
- data/Rakefile +212 -0
- data/UPGRADING.md +103 -0
- data/bin/bundle +22 -0
- data/bundler.gemspec +30 -0
- data/lib/bundler.rb +286 -0
- data/lib/bundler/capistrano.rb +11 -0
- data/lib/bundler/cli.rb +520 -0
- data/lib/bundler/definition.rb +438 -0
- data/lib/bundler/dependency.rb +134 -0
- data/lib/bundler/deployment.rb +58 -0
- data/lib/bundler/dsl.rb +257 -0
- data/lib/bundler/environment.rb +47 -0
- data/lib/bundler/gem_helper.rb +151 -0
- data/lib/bundler/gem_installer.rb +9 -0
- data/lib/bundler/gem_tasks.rb +2 -0
- data/lib/bundler/graph.rb +130 -0
- data/lib/bundler/index.rb +138 -0
- data/lib/bundler/installer.rb +97 -0
- data/lib/bundler/lazy_specification.rb +74 -0
- data/lib/bundler/lockfile_parser.rb +108 -0
- data/lib/bundler/remote_specification.rb +59 -0
- data/lib/bundler/resolver.rb +464 -0
- data/lib/bundler/rubygems_ext.rb +237 -0
- data/lib/bundler/rubygems_integration.rb +349 -0
- data/lib/bundler/runtime.rb +152 -0
- data/lib/bundler/settings.rb +115 -0
- data/lib/bundler/setup.rb +23 -0
- data/lib/bundler/shared_helpers.rb +71 -0
- data/lib/bundler/source.rb +708 -0
- data/lib/bundler/spec_set.rb +135 -0
- data/lib/bundler/templates/Executable +16 -0
- data/lib/bundler/templates/Gemfile +4 -0
- data/lib/bundler/templates/newgem/Gemfile.tt +4 -0
- data/lib/bundler/templates/newgem/Rakefile.tt +1 -0
- data/lib/bundler/templates/newgem/bin/newgem.tt +3 -0
- data/lib/bundler/templates/newgem/gitignore.tt +4 -0
- data/lib/bundler/templates/newgem/lib/newgem.rb.tt +9 -0
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +7 -0
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +24 -0
- data/lib/bundler/ui.rb +73 -0
- data/lib/bundler/vendor/thor.rb +358 -0
- data/lib/bundler/vendor/thor/actions.rb +314 -0
- data/lib/bundler/vendor/thor/actions/create_file.rb +105 -0
- data/lib/bundler/vendor/thor/actions/create_link.rb +57 -0
- data/lib/bundler/vendor/thor/actions/directory.rb +93 -0
- data/lib/bundler/vendor/thor/actions/empty_directory.rb +134 -0
- data/lib/bundler/vendor/thor/actions/file_manipulation.rb +270 -0
- data/lib/bundler/vendor/thor/actions/inject_into_file.rb +109 -0
- data/lib/bundler/vendor/thor/base.rb +576 -0
- data/lib/bundler/vendor/thor/core_ext/file_binary_read.rb +9 -0
- data/lib/bundler/vendor/thor/core_ext/hash_with_indifferent_access.rb +75 -0
- data/lib/bundler/vendor/thor/core_ext/ordered_hash.rb +100 -0
- data/lib/bundler/vendor/thor/error.rb +30 -0
- data/lib/bundler/vendor/thor/group.rb +273 -0
- data/lib/bundler/vendor/thor/invocation.rb +168 -0
- data/lib/bundler/vendor/thor/parser.rb +4 -0
- data/lib/bundler/vendor/thor/parser/argument.rb +67 -0
- data/lib/bundler/vendor/thor/parser/arguments.rb +161 -0
- data/lib/bundler/vendor/thor/parser/option.rb +120 -0
- data/lib/bundler/vendor/thor/parser/options.rb +175 -0
- data/lib/bundler/vendor/thor/rake_compat.rb +66 -0
- data/lib/bundler/vendor/thor/runner.rb +309 -0
- data/lib/bundler/vendor/thor/shell.rb +88 -0
- data/lib/bundler/vendor/thor/shell/basic.rb +302 -0
- data/lib/bundler/vendor/thor/shell/color.rb +108 -0
- data/lib/bundler/vendor/thor/shell/html.rb +121 -0
- data/lib/bundler/vendor/thor/task.rb +113 -0
- data/lib/bundler/vendor/thor/util.rb +229 -0
- data/lib/bundler/vendor/thor/version.rb +3 -0
- data/lib/bundler/vendored_thor.rb +7 -0
- data/lib/bundler/version.rb +6 -0
- data/lib/bundler/vlad.rb +11 -0
- data/man/bundle-config.ronn +90 -0
- data/man/bundle-exec.ronn +111 -0
- data/man/bundle-install.ronn +317 -0
- data/man/bundle-package.ronn +59 -0
- data/man/bundle-update.ronn +176 -0
- data/man/bundle.ronn +80 -0
- data/man/gemfile.5.ronn +284 -0
- data/man/index.txt +6 -0
- data/spec/bundler/gem_helper_spec.rb +143 -0
- data/spec/cache/gems_spec.rb +230 -0
- data/spec/cache/git_spec.rb +12 -0
- data/spec/cache/path_spec.rb +27 -0
- data/spec/cache/platform_spec.rb +57 -0
- data/spec/install/deploy_spec.rb +197 -0
- data/spec/install/deprecated_spec.rb +37 -0
- data/spec/install/gems/c_ext_spec.rb +48 -0
- data/spec/install/gems/env_spec.rb +107 -0
- data/spec/install/gems/flex_spec.rb +313 -0
- data/spec/install/gems/groups_spec.rb +259 -0
- data/spec/install/gems/packed_spec.rb +84 -0
- data/spec/install/gems/platform_spec.rb +192 -0
- data/spec/install/gems/resolving_spec.rb +72 -0
- data/spec/install/gems/simple_case_spec.rb +770 -0
- data/spec/install/gems/sudo_spec.rb +74 -0
- data/spec/install/gems/win32_spec.rb +26 -0
- data/spec/install/gemspec_spec.rb +125 -0
- data/spec/install/git_spec.rb +570 -0
- data/spec/install/invalid_spec.rb +35 -0
- data/spec/install/path_spec.rb +405 -0
- data/spec/install/upgrade_spec.rb +26 -0
- data/spec/lock/git_spec.rb +35 -0
- data/spec/lock/lockfile_spec.rb +739 -0
- data/spec/other/check_spec.rb +221 -0
- data/spec/other/config_spec.rb +40 -0
- data/spec/other/console_spec.rb +54 -0
- data/spec/other/exec_spec.rb +248 -0
- data/spec/other/ext_spec.rb +37 -0
- data/spec/other/help_spec.rb +39 -0
- data/spec/other/init_spec.rb +40 -0
- data/spec/other/newgem_spec.rb +46 -0
- data/spec/other/open_spec.rb +35 -0
- data/spec/other/show_spec.rb +82 -0
- data/spec/quality_spec.rb +62 -0
- data/spec/resolver/basic_spec.rb +20 -0
- data/spec/resolver/platform_spec.rb +82 -0
- data/spec/runtime/executable_spec.rb +110 -0
- data/spec/runtime/load_spec.rb +107 -0
- data/spec/runtime/platform_spec.rb +90 -0
- data/spec/runtime/require_spec.rb +231 -0
- data/spec/runtime/setup_spec.rb +730 -0
- data/spec/runtime/with_clean_env_spec.rb +15 -0
- data/spec/spec_helper.rb +92 -0
- data/spec/support/builders.rb +597 -0
- data/spec/support/helpers.rb +239 -0
- data/spec/support/indexes.rb +112 -0
- data/spec/support/matchers.rb +77 -0
- data/spec/support/path.rb +71 -0
- data/spec/support/platforms.rb +53 -0
- data/spec/support/ruby_ext.rb +20 -0
- data/spec/support/rubygems_ext.rb +37 -0
- data/spec/support/rubygems_hax/platform.rb +11 -0
- data/spec/support/sudo.rb +21 -0
- data/spec/update/gems_spec.rb +122 -0
- data/spec/update/git_spec.rb +196 -0
- data/spec/update/source_spec.rb +51 -0
- metadata +296 -0
data/ISSUES.md
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# Bundler Issues
|
2
|
+
|
3
|
+
## Frequently encountered issues
|
4
|
+
|
5
|
+
### REE and Zlib::GzipFile::Error
|
6
|
+
|
7
|
+
Ruby Enterprise Edition users may see a `Zlib::GzipFile::Error` while installing gems. It is due to [a bug in REE](http://code.google.com/p/rubyenterpriseedition/issues/detail?id=45). You may be able to resolve the issue by upgrading REE, or changing to a different interpreter.
|
8
|
+
|
9
|
+
### Rake activation error
|
10
|
+
|
11
|
+
Anyone who has installed the Spork gem may see activation errors while running `rake` directly. This is because old versions of Spork would [install the newest rake using a mkmf file](https://github.com/timcharper/spork/issues/119). To resolve the issue, update the Spork version requirement in your Gemfile to at least `"~>0.8.5"` or `"~>0.9.0.rc8"`.
|
12
|
+
|
13
|
+
## Troubleshooting
|
14
|
+
|
15
|
+
Instructions for common Bundler use-cases can be found on the [Bundler documentation site](http://gembundler.com/v1.0/).
|
16
|
+
|
17
|
+
Detailed information about each Bundler command, including help with common problems, can be found in the [Bundler man pages](http://gembundler.com/man/bundle.1.html).
|
18
|
+
|
19
|
+
After reading the documentation, try these troubleshooting steps:
|
20
|
+
|
21
|
+
# remove user-specific gems and git repos
|
22
|
+
rm -rf ~/.bundle/ ~/.gem/
|
23
|
+
|
24
|
+
# remove system-wide git repos and git checkouts
|
25
|
+
rm -rf $GEM_HOME/bundler/ $GEM_HOME/cache/bundler/
|
26
|
+
|
27
|
+
# remove project-specific settings and git repos
|
28
|
+
rm -rf .bundle/
|
29
|
+
|
30
|
+
# remove project-specific cached .gem files
|
31
|
+
rm -rf vendor/cache/
|
32
|
+
|
33
|
+
# remove the saved resolve of the Gemfile
|
34
|
+
rm -rf Gemfile.lock
|
35
|
+
|
36
|
+
# try to install one more time
|
37
|
+
bundle install
|
38
|
+
|
39
|
+
## Reporting unresolved problems
|
40
|
+
|
41
|
+
Instructions that allow the Bundler team to reproduce your issue are vitally important. When you report a bug, please include the following information:
|
42
|
+
|
43
|
+
- The command you ran
|
44
|
+
- Exception backtrace(s), if any
|
45
|
+
- Your Gemfile
|
46
|
+
- Your Gemfile.lock
|
47
|
+
- Your Bundler configuration settings (run `bundle config`)
|
48
|
+
- What version of bundler you are using (run `bundle -v`)
|
49
|
+
- What version of Ruby you are using (run `ruby -v`)
|
50
|
+
- What version of Rubygems you are using (run `gem -v`)
|
51
|
+
- Whether you are using RVM, and if so what version (run `rvm -v`)
|
52
|
+
- Whether you have the `rubygems-bundler` gem, which can break gem binares
|
53
|
+
- Whether you have the `open_gem` gem, which can cause rake activation conflicts
|
54
|
+
|
55
|
+
|
56
|
+
If you are using Rails 2.3, please also include:
|
57
|
+
|
58
|
+
- Your boot.rb file
|
59
|
+
- Your preinitializer.rb file
|
60
|
+
- Your environment.rb file
|
61
|
+
|
62
|
+
[Create a gist](https://gist.github.com) containing all of that information, then visit the [Bundler issue tracker](https://github.com/carlhuda/bundler) and create a new ticket describing your problem and linking to your gist.
|
data/LICENSE
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
Portions copyright (c) 2010 Andre Arko
|
2
|
+
Portions copyright (c) 2009 Engine Yard
|
3
|
+
|
4
|
+
MIT License
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
7
|
+
a copy of this software and associated documentation files (the
|
8
|
+
"Software"), to deal in the Software without restriction, including
|
9
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
10
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
11
|
+
permit persons to whom the Software is furnished to do so, subject to
|
12
|
+
the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be
|
15
|
+
included in all copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
20
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
21
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
22
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
23
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Bundler: a gem to bundle gems
|
2
|
+
|
3
|
+
Bundler is a tool that manages gem dependencies for your ruby application. It
|
4
|
+
takes a gem manifest file and is able to fetch, download, and install the gems
|
5
|
+
and all child dependencies specified in this manifest. It can manage any update
|
6
|
+
to the gem manifest file and update the bundle's gems accordingly. It also lets
|
7
|
+
you run any ruby code in context of the bundle's gem environment.
|
8
|
+
|
9
|
+
### Installation and usage
|
10
|
+
|
11
|
+
See [gembundler.com](http://gembundler.com) for up-to-date installation and usage instructions.
|
12
|
+
|
13
|
+
### Troubleshooting
|
14
|
+
|
15
|
+
For help with common problems, see [ISSUES](http://github.com/carlhuda/bundler/blob/master/ISSUES.md).
|
16
|
+
|
17
|
+
### Development
|
18
|
+
|
19
|
+
To see what has changed in recent versions of bundler, see the [CHANGELOG](http://github.com/carlhuda/bundler/blob/master/CHANGELOG.md).
|
20
|
+
|
21
|
+
The `master` branch contains our current progress towards version 1.1. Because of that, please submit bugfix pull requests against the `1-0-stable` branch.
|
22
|
+
|
23
|
+
### Upgrading from Bundler 0.8 to 0.9 and above
|
24
|
+
|
25
|
+
See [UPGRADING](http://github.com/carlhuda/bundler/blob/master/UPGRADING.md).
|
26
|
+
|
27
|
+
### Other questions
|
28
|
+
|
29
|
+
Feel free to chat with the Bundler core team (and many other users) on IRC in the [#bundler](irc://irc.freenode.net/bundler) channel on Freenode, or via email on the [Bundler mailing list](http://groups.google.com/group/ruby-bundler).
|
data/Rakefile
ADDED
@@ -0,0 +1,212 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.unshift File.expand_path("../lib", __FILE__)
|
3
|
+
require 'bundler/gem_tasks'
|
4
|
+
|
5
|
+
def safe_task(&block)
|
6
|
+
yield
|
7
|
+
true
|
8
|
+
rescue
|
9
|
+
false
|
10
|
+
end
|
11
|
+
|
12
|
+
namespace :spec do
|
13
|
+
desc "Ensure spec dependencies are installed"
|
14
|
+
task :deps do
|
15
|
+
sh "gem list ronn | (grep 'ronn' 1> /dev/null) || gem install ronn --no-ri --no-rdoc"
|
16
|
+
sh "gem list rspec | (grep 'rspec (2.' 1> /dev/null) || gem install rspec --no-ri --no-rdoc"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
begin
|
21
|
+
# running the specs needs both rspec and ronn
|
22
|
+
require 'rspec/core/rake_task'
|
23
|
+
require 'ronn'
|
24
|
+
|
25
|
+
desc "Run specs"
|
26
|
+
RSpec::Core::RakeTask.new do |t|
|
27
|
+
t.rspec_opts = %w(-fs --color)
|
28
|
+
t.ruby_opts = %w(-w)
|
29
|
+
end
|
30
|
+
task :spec => "man:build"
|
31
|
+
|
32
|
+
namespace :spec do
|
33
|
+
task :clean do
|
34
|
+
rm_rf 'tmp'
|
35
|
+
end
|
36
|
+
|
37
|
+
desc "Run the spec suite with the sudo tests"
|
38
|
+
task :sudo => ["set_sudo", "spec", "clean_sudo"]
|
39
|
+
|
40
|
+
task :set_sudo do
|
41
|
+
ENV['BUNDLER_SUDO_TESTS'] = '1'
|
42
|
+
end
|
43
|
+
|
44
|
+
task :clean_sudo do
|
45
|
+
puts "Cleaning up sudo test files..."
|
46
|
+
system "sudo rm -rf #{File.expand_path('../tmp/sudo_gem_home', __FILE__)}"
|
47
|
+
end
|
48
|
+
|
49
|
+
namespace :rubygems do
|
50
|
+
# Rubygems specs by version
|
51
|
+
rubyopt = ENV["RUBYOPT"]
|
52
|
+
%w(master v1.3.6 v1.3.7 v1.4.2 v1.5.3 v1.6.2 v1.7.2 v1.8.10).each do |rg|
|
53
|
+
desc "Run specs with Rubygems #{rg}"
|
54
|
+
RSpec::Core::RakeTask.new(rg) do |t|
|
55
|
+
t.rspec_opts = %w(-fs --color)
|
56
|
+
t.ruby_opts = %w(-w)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Create tasks like spec:rubygems:v1.8.3:sudo to run the sudo specs
|
60
|
+
namespace rg do
|
61
|
+
task :sudo => ["set_sudo", rg, "clean_sudo"]
|
62
|
+
end
|
63
|
+
|
64
|
+
task "clone_rubygems_#{rg}" do
|
65
|
+
unless File.directory?("tmp/rubygems")
|
66
|
+
system("git clone git://github.com/rubygems/rubygems.git tmp/rubygems")
|
67
|
+
end
|
68
|
+
hash = nil
|
69
|
+
|
70
|
+
Dir.chdir("tmp/rubygems") do
|
71
|
+
system("git remote update")
|
72
|
+
system("git checkout #{rg}")
|
73
|
+
system("git pull origin master") if rg == "master"
|
74
|
+
hash = `git rev-parse HEAD`.strip
|
75
|
+
end
|
76
|
+
|
77
|
+
puts "Running bundler specs against rubygems '#{rg}' at #{hash}"
|
78
|
+
ENV["RUBYOPT"] = "-I#{File.expand_path("tmp/rubygems/lib")} #{rubyopt}"
|
79
|
+
end
|
80
|
+
|
81
|
+
task rg => ["clone_rubygems_#{rg}", "man:build"]
|
82
|
+
task "rubygems:all" => rg
|
83
|
+
end
|
84
|
+
|
85
|
+
desc "Run specs under a Rubygems checkout (set RG=path)"
|
86
|
+
RSpec::Core::RakeTask.new("co") do |t|
|
87
|
+
t.rspec_opts = %w(-fs --color)
|
88
|
+
t.ruby_opts = %w(-w)
|
89
|
+
end
|
90
|
+
|
91
|
+
task "setup_co" do
|
92
|
+
ENV["RUBYOPT"] = "-I#{File.expand_path ENV['RG']} #{rubyopt}"
|
93
|
+
end
|
94
|
+
|
95
|
+
task "co" => "setup_co"
|
96
|
+
task "rubygems:all" => "co"
|
97
|
+
end
|
98
|
+
|
99
|
+
namespace :ruby do
|
100
|
+
# Ruby 1.8.6, 1.8.7, and 1.9.2 specs
|
101
|
+
task "ensure_rvm" do
|
102
|
+
raise "RVM is not available" unless File.exist?(File.expand_path("~/.rvm/scripts/rvm"))
|
103
|
+
end
|
104
|
+
|
105
|
+
%w(1.8.6-p420 1.8.7-p334 1.9.2-p180).each do |ruby|
|
106
|
+
ruby_cmd = File.expand_path("~/.rvm/bin/ruby-#{ruby}")
|
107
|
+
|
108
|
+
desc "Run specs on Ruby #{ruby}"
|
109
|
+
RSpec::Core::RakeTask.new(ruby) do |t|
|
110
|
+
t.rspec_opts = %w(-fs --color)
|
111
|
+
t.ruby_opts = %w(-w)
|
112
|
+
end
|
113
|
+
|
114
|
+
task "ensure_ruby_#{ruby}" do
|
115
|
+
raise "Could not find Ruby #{ruby} at #{ruby_cmd}" unless File.exist?(ruby_cmd)
|
116
|
+
end
|
117
|
+
|
118
|
+
task "ensure_ruby_#{ruby}" => "ensure_rvm"
|
119
|
+
task ruby => "ensure_ruby_#{ruby}"
|
120
|
+
task "ruby:all" => ruby
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
desc "Run the tests on Travis CI against a rubygem version (using ENV['RGV'])"
|
125
|
+
task "travis" do
|
126
|
+
rg = ENV['RGV'] || 'master'
|
127
|
+
|
128
|
+
puts "\n\e[1;33m[Travis CI] Running bundler specs against rubygems #{rg}\e[m\n\n"
|
129
|
+
specs = safe_task { Rake::Task["spec:rubygems:#{rg}"].invoke }
|
130
|
+
|
131
|
+
Rake::Task["spec:rubygems:#{rg}"].reenable
|
132
|
+
|
133
|
+
puts "\n\e[1;33m[Travis CI] Running bundler sudo specs against rubygems #{rg}\e[m\n\n"
|
134
|
+
sudos = safe_task { Rake::Task["spec:rubygems:#{rg}:sudo"].invoke }
|
135
|
+
|
136
|
+
unless specs && sudos
|
137
|
+
fail "Bundler tests failed, please review the log for more information"
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
namespace :man do
|
143
|
+
directory "lib/bundler/man"
|
144
|
+
|
145
|
+
Dir["man/*.ronn"].each do |ronn|
|
146
|
+
basename = File.basename(ronn, ".ronn")
|
147
|
+
roff = "lib/bundler/man/#{basename}"
|
148
|
+
|
149
|
+
file roff => ["lib/bundler/man", ronn] do
|
150
|
+
sh "ronn --roff --pipe #{ronn} > #{roff}"
|
151
|
+
end
|
152
|
+
|
153
|
+
file "#{roff}.txt" => roff do
|
154
|
+
sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt"
|
155
|
+
end
|
156
|
+
|
157
|
+
task :build_all_pages => "#{roff}.txt"
|
158
|
+
end
|
159
|
+
|
160
|
+
desc "Build the man pages"
|
161
|
+
task :build => "man:build_all_pages"
|
162
|
+
|
163
|
+
desc "Clean up from the built man pages"
|
164
|
+
task :clean do
|
165
|
+
rm_rf "lib/bundler/man"
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
begin
|
170
|
+
require 'ci/reporter/rake/rspec'
|
171
|
+
|
172
|
+
namespace :ci do
|
173
|
+
desc "Run specs with Hudson output"
|
174
|
+
RSpec::Core::RakeTask.new(:spec)
|
175
|
+
task :spec => ["ci:setup:rspec", "man:build"]
|
176
|
+
end
|
177
|
+
|
178
|
+
rescue LoadError
|
179
|
+
namespace :ci do
|
180
|
+
task :spec do
|
181
|
+
abort "Run `rake ci:deps` to be able to run the CI specs"
|
182
|
+
end
|
183
|
+
|
184
|
+
desc "Install CI dependencies"
|
185
|
+
task :deps do
|
186
|
+
sh "gem list ci_reporter | (grep 'ci_reporter' 1> /dev/null) || gem install ci_reporter --no-ri --no-rdoc"
|
187
|
+
end
|
188
|
+
task :deps => "spec:deps"
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
rescue LoadError
|
193
|
+
task :spec do
|
194
|
+
abort "Run `rake spec:deps` to be able to run the specs"
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
namespace :vendor do
|
199
|
+
desc "Build the vendor dir"
|
200
|
+
task :build => :clean do
|
201
|
+
sh "git clone git://github.com/wycats/thor.git lib/bundler/vendor/tmp"
|
202
|
+
sh "mv lib/bundler/vendor/tmp/lib/* lib/bundler/vendor/"
|
203
|
+
rm_rf "lib/bundler/vendor/tmp"
|
204
|
+
end
|
205
|
+
|
206
|
+
desc "Clean the vendor dir"
|
207
|
+
task :clean do
|
208
|
+
rm_rf "lib/bundler/vendor"
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
task :default => :spec
|
data/UPGRADING.md
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
## Bundler 0.9 to 1.0 and above
|
2
|
+
|
3
|
+
Upgrading from Bundler 0.9 to 1.0 is relatively painless. The
|
4
|
+
Gemfile API is the same, so your old Gemfiles should continue
|
5
|
+
to work.
|
6
|
+
|
7
|
+
The "env" file that 0.9 created at `.bundle/environment.rb` has been
|
8
|
+
removed. As a side effect of this, Passenger will only find your
|
9
|
+
bundled gems if you install with `bundle install --deployment`.
|
10
|
+
Alternatively, you can tell Passenger where you gems are installed,
|
11
|
+
[something like this](http://bit.ly/passenger-gem-home).
|
12
|
+
|
13
|
+
The `bundle lock` command is no longer needed, as the
|
14
|
+
Gemfile.lock file is now automatically generated by `bundle install`.
|
15
|
+
If you have not yet done so, add your Gemfile.lock to source control
|
16
|
+
and check it in.
|
17
|
+
|
18
|
+
Running `bundle install` no longer updates the versions of your gems.
|
19
|
+
If you need to update just one gem, run `bundle update GEMNAME`. To
|
20
|
+
update all gems to the newest versions possible, run `bundle update`.
|
21
|
+
|
22
|
+
Bundler now supports multiple platforms, using a block syntax to
|
23
|
+
declare platform-specific gems:
|
24
|
+
|
25
|
+
platform :jruby do
|
26
|
+
gem "jruby-maven-plugins"
|
27
|
+
end
|
28
|
+
|
29
|
+
Deploying using Bundler is even easier than it was before, as Bundler
|
30
|
+
now includes a Capistrano recipe. Simply add this line to the top of
|
31
|
+
your deploy.rb file to run Bundler automatically as part of deploying:
|
32
|
+
|
33
|
+
require 'bundler/capistrano'
|
34
|
+
|
35
|
+
For more details on deploying using bundler, see the documentation
|
36
|
+
for the bundler cap task, and the [documentation on deploying](http://gembundler.com/deploying.html).
|
37
|
+
|
38
|
+
|
39
|
+
## Bundler 0.8 to 0.9 and above
|
40
|
+
|
41
|
+
Upgrading to Bundler 0.9 from Bundler 0.8 requires upgrading several
|
42
|
+
API calls in your Gemfile, and some workarounds if you are using Rails 2.3.
|
43
|
+
|
44
|
+
### Gemfile Removals
|
45
|
+
|
46
|
+
Bundler 0.9 removes the following Bundler 0.8 Gemfile APIs:
|
47
|
+
|
48
|
+
1. `disable_system_gems`: This is now the default (and only) option
|
49
|
+
for bundler. Bundler uses the system gems you have specified
|
50
|
+
in the Gemfile, and only the system gems you have specified
|
51
|
+
(and their dependencies)
|
52
|
+
2. `disable_rubygems`: This is no longer supported. We are looking
|
53
|
+
into ways to get the fastest performance out of each supported
|
54
|
+
scenario, and we will make speed the default where possible.
|
55
|
+
3. `clear_sources`: Bundler now defaults to an empty source
|
56
|
+
list. If you want to include Rubygems, you can add the source
|
57
|
+
via source "http://gemcutter.org". If you use bundle init, this
|
58
|
+
source will be automatically added for you in the generated
|
59
|
+
Gemfile
|
60
|
+
4. `bundle_path`: You can specify this setting when installing
|
61
|
+
via `bundle install /path/to/bundle`. Bundler will remember
|
62
|
+
where you installed the dependencies to on a particular
|
63
|
+
machine for future installs, loads, setups, etc.
|
64
|
+
5. `bin_path`: Bundler no longer generates executables in the root
|
65
|
+
of your app. You should use `bundle exec` to execute executables
|
66
|
+
in the current context.
|
67
|
+
|
68
|
+
### Gemfile Changes
|
69
|
+
|
70
|
+
Bundler 0.9 changes the following Bundler 0.8 Gemfile APIs:
|
71
|
+
|
72
|
+
1. Bundler 0.8 supported :only and :except as APIs for describing
|
73
|
+
groups of gems. Bundler 0.9 supports a single `group` method,
|
74
|
+
which you can use to group gems together. See the above "Group"
|
75
|
+
section for more information.
|
76
|
+
|
77
|
+
This means that `gem "foo", :only => :production` becomes
|
78
|
+
`gem "foo", :group => :production`, and
|
79
|
+
`only :production { gem "foo" }` becomes
|
80
|
+
`group :production { gem "foo" }`
|
81
|
+
|
82
|
+
The short version is: group your gems together logically, and
|
83
|
+
use the available commands to make use of the groups you've
|
84
|
+
created.
|
85
|
+
|
86
|
+
2. `:require_as` becomes `:require`
|
87
|
+
|
88
|
+
3. `:vendored_at` is fully removed; you should use `:path`
|
89
|
+
|
90
|
+
### API Changes
|
91
|
+
|
92
|
+
1. `Bundler.require_env(:environment)` becomes
|
93
|
+
`Bundler.require(:multiple, :groups)`. You must
|
94
|
+
now specify the default group (the default group is the
|
95
|
+
group made up of the gems not assigned to any group)
|
96
|
+
explicitly. So `Bundler.require_env(:test)` becomes
|
97
|
+
`Bundler.require(:default, :test)`
|
98
|
+
|
99
|
+
2. `require 'vendor/gems/environment'`: In unlocked
|
100
|
+
mode, where using system gems, this becomes
|
101
|
+
`Bundler.setup(:multiple, :groups)`. If you don't
|
102
|
+
specify any groups, this puts all groups on the load
|
103
|
+
path. In locked mode, it becomes `require '.bundle/environment'`
|
data/bin/bundle
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
# Check if an older version of bundler is installed
|
5
|
+
$:.each do |path|
|
6
|
+
if path =~ %r'/bundler-0.(\d+)' && $1.to_i < 9
|
7
|
+
err = "Please remove Bundler 0.8 versions."
|
8
|
+
err << "This can be done by running `gem cleanup bundler`."
|
9
|
+
abort(err)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
require 'bundler/cli'
|
13
|
+
Bundler::CLI.start
|
14
|
+
rescue Bundler::BundlerError => e
|
15
|
+
Bundler.ui.error e.message
|
16
|
+
Bundler.ui.debug e.backtrace.join("\n")
|
17
|
+
exit e.status_code
|
18
|
+
rescue Interrupt => e
|
19
|
+
Bundler.ui.error "\nQuitting..."
|
20
|
+
Bundler.ui.debug e.backtrace.join("\n")
|
21
|
+
exit 1
|
22
|
+
end
|