Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

Recursively unpack gem dependencies *and their dependencies*

#2678

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.

Reported by Graeme Mathieson · May 20th, 2009 @ 07:00 AM

State: committed
Milestone: 2.x
Assigned to: nobody
Importance: none

Activity

  1. Graeme Mathieson
    Graeme Mathieson

    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.

    May 20th, 2009 @ 07:01 AM

  2. Craig Webster
    Craig Webster
    1. Easily vendoring all gem dependencies would be great.

    May 20th, 2009 @ 10:56 AM

  3. Graeme Mathieson
    Graeme Mathieson

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

    May 26th, 2009 @ 05:13 PM

  4. David Dollar
    David Dollar

    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

    May 27th, 2009 @ 04:20 PM

  5. David Dollar
    David Dollar

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

    May 27th, 2009 @ 05:32 PM

  6. Matt Jones
    Matt Jones

    A fix for this is included in #2773.

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

    June 6th, 2009 @ 11:25 PM

  7. Graeme Mathieson
    Graeme Mathieson

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

    June 9th, 2009 @ 05:32 AM

  8. Repository
    Repository
    • 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...

    June 9th, 2009 @ 08:58 AM

  9. Repository
    Repository

    (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...

    June 9th, 2009 @ 08:58 AM