This project is archived and is in readonly mode.

#2678 ✓committed
Graeme Mathieson

Recursively unpack gem dependencies *and their dependencies*

Reported by Graeme Mathieson | May 20th, 2009 @ 07:00 AM | in 2.x

Attached is a trivial patch against the 2-3-stable branch so that, when unpacking gem dependencies, it also unpacks the dependencies of those dependencies. Take, for example, I have:

config.gem "bamboo_rails"

The bamboo_rails gem depends upon ci_reporter, which depends upon builder. In the current 2-3-stable, if I run:

rake gems:unpack:dependencies

it will unpack bamboo_rails and ci_reporter, but not builder. With this patch, it also unpacks builder.

Comments and changes to this ticket

  • Graeme Mathieson

    Graeme Mathieson May 20th, 2009 @ 07:01 AM

    I seem to have screwed up the formatting on the main ticket. Try again:

    Attached is a trivial patch against the 2-3-stable branch so that, when unpacking gem dependencies, it also unpacks the dependencies of those dependencies. Take, for example, I have:

    config.gem "bamboo_rails"
    

    The bamboo_rails gem depends upon ci_reporter, which depends upon builder. In the current 2-3-stable, if I run:

    rake gems:unpack:dependencies
    

    it will unpack bamboo_rails and ci_reporter, but not builder. With this patch, it also unpacks builder.

  • Craig Webster

    Craig Webster May 20th, 2009 @ 10:56 AM

    1. Easily vendoring all gem dependencies would be great.
  • Graeme Mathieson

    Graeme Mathieson May 26th, 2009 @ 05:13 PM

    Err, how embarrassing. I seem to have attached the wrong patch! Here's the correct one.

  • David Dollar

    David Dollar May 27th, 2009 @ 04:20 PM

    Looks good, but I'd like to see a test for this one included. There are 'fake' gems in railties/test/vendor/gems used to test the gem system. If you need any assistance, I'm usually around as ddollar on #rails-contrib@freenode

  • David Dollar

    David Dollar May 27th, 2009 @ 05:32 PM

    Taking another look at this and #2722 it would probably be better just to pass the whole options hash down to children.

  • Matt Jones

    Matt Jones June 6th, 2009 @ 11:25 PM

    A fix for this is included in #2773.

    There's a test included in that patch for the identical case in gems:build.

  • Graeme Mathieson

    Graeme Mathieson June 9th, 2009 @ 05:32 AM

    I'm happy for this ticket to be closed alongside #2773 being resolved.

  • Repository

    Repository June 9th, 2009 @ 08:58 AM

    • State changed from “new” to “committed”

    (from [2c3d2906b255b1cb3aeb5d3abb9fe2dcb2872c28]) Fix several issues with the 2.3.2 gem loader.

    Incorporates the following:

    • migrates back small change to gems:build:force from bfc1609a501fc3ed442685819de5bcdb5fbada1c to finish closing #2266.

    • unrolls to_proc calls in gems.rake, to match the change in master.

    • fixes #2722 by passing the options hash to dependencies during build. (includes a test)

    • fixes #2721 by loading the specification directly in from_directory_name. Adds an option to opt-out of specification loading when needed (in gems:refresh_specs, for instance). Includes tests.

    • fixes #2679 by refreshing specs for all frozen gems rather than just gems loaded from the environment.

    • fixes #2678 by passing the options hash to dependencies during unpack.

    Signed-off-by: Michael Koziarski michael@koziarski.com
    http://github.com/rails/rails/commit/2c3d2906b255b1cb3aeb5d3abb9fe2...

  • Repository

    Repository June 9th, 2009 @ 08:58 AM

    (from [41a94048e55e082f373e19d9fcee311860aaba9e]) Fix several issues with the 2.3.2 gem loader.

    Incorporates the following:

    • migrates back small change to gems:build:force from bfc1609a501fc3ed442685819de5bcdb5fbada1c to finish closing #2266.

    • unrolls to_proc calls in gems.rake, to match the change in master.

    • fixes #2722 by passing the options hash to dependencies during build. (includes a test)

    • fixes #2721 by loading the specification directly in from_directory_name. Adds an option to opt-out of specification loading when needed (in gems:refresh_specs, for instance). Includes tests.

    • fixes #2679 by refreshing specs for all frozen gems rather than just gems loaded from the environment.

    • fixes #2678 by passing the options hash to dependencies during unpack.

    Signed-off-by: Michael Koziarski michael@koziarski.com
    http://github.com/rails/rails/commit/41a94048e55e082f373e19d9fcee31...

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

<h2 style="font-size: 14px">Tickets have moved to Github</h2>

The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>

Attachments

Referenced by

Pages