Skip to content

Gem PackageTask monkeys to allow for plugins #534

Open
@translunar

Description

@translunar

In the Rakefile, there exists this code:

gemspecs.each do |gemspec|
  Gem::PackageTask.new(gemspec).define
end

That's wrong, because it's producing the following line:

rake gem               # Build the gem file nmatrix-0.2.4.gem

but what we really want is:

rake gem:nmatrix               # Build the gem file nmatrix-0.2.4.gem
rake gem:nmatrix_atlas     # ...
rake gem:nmatrix_lapacke # ...
rake gem:nmatrix_fftw # ...

We also want the other relevant package tasks to allow for namespacing like this.

I believe you'd want to make a monkey-patched version of the following file:

https://github.com/rubygems/rubygems/blob/58e2de2ea1f1a78e7548521206863ed3ba0d3e8f/lib/rubygems/package_task.rb

I'd suggest adding a use_namespace: false option, and then change lines like

task :package => [:gem]

to

namespace :package do
  task gem_spec.name.to_sym => [:gem] # this will also need to convert dashes to underscores
end

which should give the desired effect.

We want all of the package tasks to be updated for the plugins. It'd also be great to get a gem push task added so we can quickly send to RubyGems. Yehuda Katz has a how-to on this if you Google for gemspecs and his name.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions