summaryrefslogtreecommitdiff
path: root/v1.2/whats_new.html
blob: f0c69c5c550649890c12c6be1abb1623bac58d1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<!DOCTYPE html>
<html>
  <head>
    <title>Bundler: The best way to manage a Ruby application's gems</title>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
    <link href='/images/favicon.png' rel='shortcut icon' type='image/png'>
    <link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
    <link href="/stylesheets/sunburst.css" media="screen" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <div id='body'>
      <div id='contents'>
        <div id='header'>
                    <a class="image" href="/"><img width="725" alt="The best way to manage your application's dependencies" src="/images/gembundler.png" />
          </a>

        </div>
        <h2>What's New</h2>
<div class='contents'>
  <div class='bullet'>
    <div class='description'>
      In this section, you'll find the major features introduced in the release. All the changes are documented in the Bundler 1.2 CHANGELOG.
      <a href="https://github.com/carlhuda/bundler/blob/1-2-stable/CHANGELOG.md">CHANGELOG</a>
    </div>
  </div>
</div>
<h2 id='ruby-directive'>Specifying a Ruby Version</h2>
<div class='contents'>
  <div class='bullet'>
    <div class='description'>
      You can now specify the version of Ruby in the <code>Gemfile</code> like the following:
    </div>
    <pre class="sunburst">ruby <span class="String"><span class="String">'</span>1.9.3<span class="String">'</span></span>&#x000A;</pre>
  </div>
  <div class='bullet'>
    <div class='description'>
      That line declares that this application has a dependency on the Ruby VM that is ABI-compatible with 1.9.3. If the version check does not match, Bundler will raise an exception. This will ensure the running code matches. You can be more specific with the <code>:engine</code> and <code>:engine_version</code> options.
    </div>
    <pre class="sunburst">ruby <span class="String"><span class="String">'</span>1.9.3<span class="String">'</span></span>, <span class="Constant"><span class="Constant">:</span>engine</span> =&gt; <span class="String"><span class="String">'</span>jruby<span class="String">'</span></span>, <span class="Constant"><span class="Constant">:</span>engine_version</span> =&gt; <span class="String"><span class="String">'</span>1.6.7<span class="String">'</span></span>&#x000A;</pre>
    <a href="/v1.2/gemfile_ruby.html">Learn More: Ruby Directive</a>
  </div>
</div>
<h2 id='package-git-and-path-dependencies'>Package <code>:git</code> and <code>:path</code> Dependencies</h2>
<div class='contents'>
  <div class='bullet'>
    <div class='description'>
      The <code>bundle package</code> command can also package <code>:git</code> and
      <code>:path</code> dependencies besides <code>.gem</code> files. This needs to be explicitly enabled
      via the <code>--all</code> option. Once used, the <code>--all</code> option will be remembered.
    </div>
    <a href="/v1.2/bundle_package.html">Learn More: bundle pack</a>
  </div>
</div>
<h2 id='local-git-repos'>Local Git Repos</h2>
<div class='contents'>
  <div class='bullet'>
    <div class='description'>
      Now when developing against a remote git repository, you can use a local
      git repo and keep the remote version for deployment. You can do this by
      setting a local git override:
    </div>
    <pre class='sunburst'>bundle config local.GEM_NAME /path/to/local/git/repository&#x000A;</pre>
  </div>
  <div class='bullet'>
    <div class='description'>
      For example, in order to use a local Rack repository, a developer could call:
    </div>
    <pre class='sunburst'>bundle config local.rack ~/Work/git/rack</pre>
    <div class='description'>
      and in your <code>Gemfile</code> you would set:
    </div>
    <pre class="sunburst">gem <span class="String"><span class="String">'</span>rack<span class="String">'</span></span>, <span class="Constant"><span class="Constant">:</span>github</span> =&gt; <span class="String"><span class="String">'</span>rack/rack<span class="String">'</span></span>, <span class="Constant"><span class="Constant">:</span>branch</span> =&gt; <span class="String"><span class="String">'</span>master<span class="String">'</span></span>&#x000A;</pre>
    <div class='description'>
      You'll need to reference a git branch, since Bundler will do checks to
      ensure you don't work with invalid references. If the branch specified in
      the <code>Gemfile</code> and the current branch in the local git
      repository do not match, Bundler will abort. This ensures that a
      developer is always working against the correct branches, and prevents
      accidental locking to a different branch.
    </div>
    <a href="/v1.2/git.html#local">Learn More: Git</a>
  </div>
</div>
      </div>
    </div>
    <div id='footer'>
      <img src="/images/emocow.png" />
      <img src="/images/panda.jpg" />
      <div class='spacer'></div>
      <div id='navigation'>
        <p>
          <b>commands</b>
          <a href="/v1.2/man/bundle-install.1.html">install</a>
          /
          <a href="/v1.2/man/bundle-update.1.html">update</a>
          /
          <a href="/v1.2/man/bundle-exec.1.html">exec</a>
          /
          <a href="/v1.2/man/bundle-config.1.html">config</a>
          /
          <a href="/v1.2/man/bundle-package.1.html">package</a>
        </p>
        <p>
          <b>usage</b>
          <a href="/v1.2/gemfile.html">gemfile</a>
          /
          <a href="/v1.2/git.html">git</a>
          /
          <a href="/v1.2/groups.html">groups</a>
          /
          <a href="/v1.2/bundler_setup.html">setup</a>
          /
          <a href="/v1.2/deploying.html">deploying</a>
        </p>
        <p>
          <b>frameworks</b>
          <a href="/v1.2/bundler_setup.html">ruby</a>
          /
          <a href="/v1.2/rubygems.html">rubygems</a>
          /
          <a href="/v1.2/rubymotion.html">rubymotion</a>
          /
          <a href="/v1.2/sinatra.html">sinatra</a>
          /
          <a href="/v1.2/rails3.html">rails 3</a>
        </p>
      </div>
      <div class='spacer'></div>
      <img src="/images/bundler-small.png" />
    </div>
    <div id='credits'>
      <p>
        Many thanks to Bundler's <a href="/contributors.html">contributors</a>
        and <a href="/sponsors.html">sponsors</a>
      </p>
    </div>
    <a href='http://github.com/carlhuda/bundler/' id='github'>
      <img alt='Fork me on GitHub' src='http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png'>
    </a>
    <div id='prod-versions'>
      Docs:
      <a href="/v0.9/">v0.9</a>
      <a href="/v1.0/">v1.0</a>
      <a href="/v1.1/">v1.1</a>
      <a class="current" href="/v1.2/">v1.2</a>
      <a href="/">v1.3</a>
    </div>
    <script>
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-557621-9']);
      _gaq.push(['_trackPageview']);
      (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
  </body>
</html>