Closed carstene1ns closed 9 years ago
What exactly issue you want to solve with this tool? Quarry itself does not care about dependencies and pulls everything a gem needs. If there are old version requirements then it creates all slot versions as well.
Yes, i think of the following use cases:
json-1.7.7
(because that is the one i had the issue with)You cannot know this is needed, because it is not in the whitelist. I think it would be worth to have some way to find out which gems actually depend on this, so it can be considered to remove them (or patch them/contact upstream/etc.) It would make it possible to keep the repository small and simple.
X
wants to add gem Y
. The gem has a lot of dependencies.If you just add it to the whitelist, quarry will work a bit and you have a few (maybe 100!) new packages, but you cannot predict before, how many will be added/if they need some tweaks/etc. The dependency chain could tell you how many needed packages are already present in the repository and how many need to be added.
it would be worth to have some way to find out which gems actually depend on this, so it can be considered to remove them
There is a script called lib/cleanup.rb
that does exactly this.
The dependency chain could tell you how many needed packages are already present in the repository and how many need to be added
It does not really matter how many gems will be added. quarry can manage any number of dependencies.
cleanup.rb
will only remove packages, if they are not needed anymore. It cannot tell you which package you need to remove from the whitelist, if you want some dependency removed.
But I see a dependency tracker is not needed for your workflow, so closing.
It would be nice to have a command to show some kind of dependency graph to see which gems will be added to the repository when a gem is whitelisted. Also, this could be used to find the "offender" that needs some rather old slot version of a gem.
pactree
comes to mind, but that only works after the addition to the database:It should be possible to implement this using the rubygems api, as there is already a command to display them (
gem dependency
):However, this can not easily filter out slot versions.