Hi Yehuda, thanks for your response.

I understand what you've said, but what I'm suggesting is that Bundler could try to resolve all dependencies with local gems first before checking rubygems.org.

For instance, if there's currently a coffee-script version that would fit the requirements in Gemfile for the application being created, Bundler could use it instead of downloading the latest version.

Maybe a new option could be included in Bundler like --try-local-first and made available to the Rails new generator so that we could append it to ~/.railsrc, for instance.

Another take would be adding some option to the rails new generator like "--provided-gemfile-lock" where a Gemfile.lock would be generated while packaging a Rails release and copied to the created app.

I'm not sure which would be the better option, but I would really like you to consider some way of making creating a new Rails application as fast as it used to be before Rails 3.

Best,

Rodrigo.

Em 20-12-2011 21:12, Yehuda Katz escreveu:
The reason this happens is that when you run `bundle install` without a Gemfile.lock (the case in a new Rails app), bundler checks with rubygems.org <http://rubygems.org> to see if there are any new versions available. For instance, it is possible that you have an old version of coffee-script on your system. Calling `bundle install` without a `Gemfile.lock` means "make sure to get the latest versions of my gems that are available." When you use --local, it means "I assert that the gems are all available locally, and I want you to use them even if there may be newer ones available."

Using --local will not work for a new app on a new system, because there are items in the default `Gemfile` that are not actual dependencies of Rails. If --local reliably worked, you would not need to run bundle install at all. This is because if Bundler sees that there is no `Gemfile.lock` when you require "bundler/setup", it tries to satisfy the dependencies from your local gems. Unfortunately, it will not always work.

Yehuda Katz
(ph) 718.877.1325


On Tue, Dec 20, 2011 at 9:35 AM, Rodrigo Rosenfeld Rosas <[email protected] <mailto:[email protected]>> wrote:

    Creating a new Rails app nowadays in my computer with Bundler-pre
    takes about 6s only for running "bundle install" in the end of the
    new generator...

    We create a new app instantaneously in Rails 1 and 2.

    Shouldn't Bundler try to see if the local dependencies do suffice
    before trying to ping rubygems.org <http://rubygems.org>?

    For most cases you'll already have all dependencies locally.

    Just try:

    rails new empty --skip-bundle
    cd empty
    bundle install --local

    And you'll see how much faster it is.

    But it won't work if you run "rails new empty -d postgres" and
    don't have postgres already installed.

    So, shouldn't Bundler try to resolve locally first by default and
    then use the normal method with the requests to rubygems.org
    <http://rubygems.org>?

-- You received this message because you are subscribed to the Google
    Groups "Ruby on Rails: Core" group.
    To post to this group, send email to
    [email protected]
    <mailto:[email protected]>.
    To unsubscribe from this group, send email to
    [email protected]
    <mailto:rubyonrails-core%[email protected]>.
    For more options, visit this group at
    http://groups.google.com/group/rubyonrails-core?hl=en.


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.

--
You received this message because you are subscribed to the Google Groups "Ruby on 
Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to