<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><span></span></div><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div><br></div><div id="AppleMailSignature">There is an argument that testing a gem against the latest versions of all dependencies is very important, and not checking in a Gemfile so your CI does this is an easy way of achieving that.</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">Whatever situation you're in I think waiting for other people to arbitrarily break your things at any time isn't a great way to live so I prefer to always check in the lock file so my apps and gems all have stable states to develop against.</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">Testing against other versions is something I'd rather do deliberately. As Ben was saying there are tools to help with this now and had they existed when the advice was published I suspect it might have been more nuanced.</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">Bestie.</div><div id="AppleMailSignature"><div><br></div><div><br></div></div><div>On 10 May 2017, at 15:43, Riccardo Tacconi <<a href="mailto:rtacconi@gmail.com">rtacconi@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">+1<div><br></div><div>Yes, Asfand, I agree. The lockfile ensures that every developer has the same version of gems. Gems are a bit different, you put your dependencies in the Gemspec and when it will be used it will become part of a bigger (usually) code base where Bundler will have to resolve the dependency tree of your gem, other gems and your local project's Gemfile.</div><div><br></div><div>Instead of using bundler, developers should use docker-compose to run the app, gems will be already be installed for them, including compiling and packaging other dependencies.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 10 May 2017 at 12:06, Asfand Qazi <span dir="ltr"><<a href="mailto:ayqazi@gmail.com" target="_blank">ayqazi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thank you all for the input. I'm going to continue following the 'check it in for apps, do not check it in for gems' advice. I might even ping the documentation owners to tell them to update their docs.<div><br></div><div class="gmail_extra"><div><div class="m_-8430091035413160529gmail_signature" data-smartmail="gmail_signature">Regards,<br> Asfand</div></div><div><div class="h5">
<br><div class="gmail_quote">On 10 May 2017 at 11:38, Duncan Stuart <span dir="ltr"><<a href="mailto:dgmstuart@gmail.com" target="_blank">dgmstuart@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That documentation is indeed confusing. I would always always always commit the Gemfile.lock for an application, but ignore it for a gem, but that documentation does indeed seem to say "commit your lockfile for gem development as well"<div><br><div>I guess it doesn't matter a huge amount: as I understand it, the Gemfile.lock has no effect on an application that your gem is included in, and is only used for developing and testing the gem in isolation. I can see how it would make sense to lock your <i>development </i>dependencies (e.g. RSpec) to specific versions.</div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><span>On 10 May 2017 at 11:25, Stuart Harrison <span dir="ltr"><<a href="mailto:pezholio@gmail.com" target="_blank">pezholio@gmail.com</a>></span> wrote:<br></span><div><div class="m_-8430091035413160529h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div id="m_-8430091035413160529m_3819477515345046046m_5379514788275393327bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">I think the `bundle gem` command adds the lockfile to `.gitignore` by default.</div><div><div class="m_-8430091035413160529m_3819477515345046046h5"> <br> <div id="m_-8430091035413160529m_3819477515345046046m_5379514788275393327bloop_sign_1494411875488637952" class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327bloop_sign"></div> <br><p class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327airmail_on">On 10 May 2017 at 11:24:12, Sam Phillips (<a href="mailto:sam@samsworldofno.com" target="_blank">sam@samsworldofno.com</a>) wrote:</p> <blockquote type="cite" class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327clean_bq"><span><div><div></div><div>
<div dir="ltr">Yes, always check it in. Once the dependency tree is
resolved, you want everyone using the same gems until it's actively
changed.</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 10 May 2017 at 11:22, Garry Shutler
<span dir="ltr"><<a href="mailto:garry@robustsoftware.co.uk" target="_blank">garry@robustsoftware.co.uk</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">+1 to what Kerry said. If you deploy the same commit
of your website tomorrow, you don't want it bringing in different,
potentially breaking, versions of gems.</div>
<div class="gmail_extra"><span class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327HOEnZb"><font color="#888888"><br clear="all"></font></span>
<div>
<div class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327m_-6226936237618660733gmail_signature" data-smartmail="gmail_signature">
<div dir="ltr"><span class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327HOEnZb"><font color="#888888"><b>Garry
Shutler</b></font></span>
<div>
<div><span class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327HOEnZb"><font color="#888888"><a href="http://twitter.com/gshutler" target="_blank">@gshutler</a></font></span></div>
<span class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327HOEnZb"><font color="#888888"><a href="http://gshutler.com/" target="_blank">gshutler.com</a></font></span></div>
</div>
</div>
</div>
<div>
<div class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327h5"><br>
<div class="gmail_quote">On 10 May 2017 at 11:12, Kerry Buckley
<span dir="ltr"><<a href="mailto:kerryjbuckley@gmail.com" target="_blank">kerryjbuckley@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">The advice I've always followed is that if you're
building an application you check it in (so you can guarantee that
everyone's developing/testing/running against the same set of
dependencies), but if you're building a library you don't, as you
don't get to control what versions users of your library are
running (other than through the dependency specifications in your
gemspec).
<div><br></div>
<div>Kerry</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">
<div>
<div class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327m_-6226936237618660733h5">On Wed, May 10, 2017 at 11:08
AM, Asfand Qazi <span dir="ltr"><<a href="mailto:ayqazi@gmail.com" target="_blank">ayqazi@gmail.com</a>></span> wrote:<br></div>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327m_-6226936237618660733h5">
<div dir="ltr">Hello,
<div><br></div>
<div>I have a question regarding Bundler, developing gems, and
Gemfile.lock . It is a question I thought I had the answer to, but
apparently not.</div>
<div><br></div>
<div>I USED to believe that you do not check in Gemfile.lock, so as
to allow situations during development to occur where your gem is
used with a version of a dependency that you did not expect,
therefore allowing possibly breaking interface changes to
dependencies to be made apparent. This is what Mr. Katz says here,
in 2010: <a href="http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/" target="_blank">http://yehudakatz.com/2010/12/<wbr>16/clarifying-the-roles-of-the<wbr>-gemspec-and-gemfile/</a>.</div>
<div><br></div>
<div>However, checking the latest bundler docs, here we read
something different: <a href="http://bundler.io/v1.14/guides/creating_gem.html" target="_blank">http://bundler.io/v<wbr>1.14/guides/creating_gem.html</a></div>
<div><br></div>
<div>"By running bundle install, Bundler will generate the
extremely important Gemfile.lock file. This file is responsible for
ensuring that every system this library is developed on has the
exact same gems so it should always be checked into version
control. For more information on this file read “THE GEMFILE.LOCK”
section of the bundle install manpage."</div>
<div><br></div>
<div>Que?</div>
<div><br></div>
<div>What do y'all think? Follow the old advice, or the new
advice?</div>
<div><br></div>
<div>Thanks</div>
<div><br class="m_-8430091035413160529m_3819477515345046046m_5379514788275393327m_-6226936237618660733m_-238611294216608294m_296630333355027103gmail-Apple-interchange-newline">
Regards,<br>
Asfand Qazi<br>
The DevOps Doctors<br>
<br>
E: <a href="mailto:asfand@thedevopsdoctors.com" target="_blank">asfand@thedevopsdoctors.com</a><br>
W: <a href="https://www.thedevopsdoctors.com/" target="_blank">https://www.thedevopsdoctor<wbr>s.com/</a><br></div>
</div>
<br></div>
</div>
______________________________<wbr>_________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/pipermai<wbr>l/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/options.<wbr>cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/listinfo<wbr>.cgi/chat-lrug.org</a><br>
<br></blockquote>
</div>
<br></div>
<br>
______________________________<wbr>_________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/pipermai<wbr>l/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/options.<wbr>cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/listinfo<wbr>.cgi/chat-lrug.org</a><br>
<br></blockquote>
</div>
<br></div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/pipermai<wbr>l/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/options.<wbr>cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/listinfo<wbr>.cgi/chat-lrug.org</a><br>
<br></blockquote>
</div>
<br></div>
______________________________<wbr>_________________
<br>Chat mailing list
<br><a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a>
<br>Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermai<wbr>l/chat-lrug.org</a>
<br>Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.<wbr>cgi/chat-lrug.org</a>
<br>List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo<wbr>.cgi/chat-lrug.org</a>
<br></div></div></span></blockquote></div></div></div>
<br>______________________________<wbr>_________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/pipermai<wbr>l/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/options.<wbr>cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/listinfo<wbr>.cgi/chat-lrug.org</a><br>
<br></blockquote></div></div></div><br></div>
<br>______________________________<wbr>_________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/pipermai<wbr>l/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/options.<wbr>cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/listinfo<wbr>.cgi/chat-lrug.org</a><br>
<br></blockquote></div><br></div></div></div></div>
<br>______________________________<wbr>_________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/<wbr>pipermail/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/options.<wbr>cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" rel="noreferrer" target="_blank">http://lists.lrug.org/<wbr>listinfo.cgi/chat-lrug.org</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr">Riccardo Tacconi<br></div><div dir="ltr"><br></div></div></div></div>
</div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Chat mailing list</span><br><span><a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a></span><br><span>Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org">http://lists.lrug.org/pipermail/chat-lrug.org</a></span><br><span>Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org">http://lists.lrug.org/options.cgi/chat-lrug.org</a></span><br><span>List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a></span><br></div></blockquote></div></body></html>