summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2014-12-04 17:38:37 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2014-12-04 17:38:37 +0000
commit780ed3b1fd2900ec62e58ab88e6db7e7fce69b3a (patch)
tree26a6e3ff546fb7ad8327f6ebf327a41a390e3145
parent8eaaac2c17194299245ae0c52be43f3604f326b9 (diff)
downloadimport-780ed3b1fd2900ec62e58ab88e6db7e7fce69b3a.tar.gz
Add TODO.rubygems item
-rw-r--r--TODO.rubygems16
1 files changed, 16 insertions, 0 deletions
diff --git a/TODO.rubygems b/TODO.rubygems
index e7ca06d..60b6ca1 100644
--- a/TODO.rubygems
+++ b/TODO.rubygems
@@ -1,6 +1,22 @@
RubyGems-specific improvements for the Baserock Import tool
-----------------------------------------------------------
+Not all Ruby applications are packaged as RubyGems. The tool should be able
+to process any directory containing a Gemfile and calculate its dependency
+graph from that, even if there is no .gemspec file. A little background:
+initially I was looking for an approach that works for *all* Ruby projects,
+and found that if I read the Gemfile of each project the overall dependency
+graph would end up being enourmous, and circular. I switched to creating a
+fake Gemfile that included only the .gemspec file of the specific project
+being imported. This works well for dependencies, but I've realised that the
+goal project (the thing you actually want to import) should probably be
+treated differently. I envisage a solution where there is a new type of
+importer, named 'ruby-bundler' or some such thing, which takes a repo URL
+and reads dependencies from the Gemfile inside that repo. In the
+.foreign-dependencies file for the package it can list all the dependencies
+as 'rubygem' rather than 'ruby-bundler' dependencies, so that they are
+processed as Gems (using the .gemspec rather than the Gemfile).
+
If you could pass a Git ref as GEM_VERSION it might be useful. Currently you
can't do that.