thaljef / Pinto

Curate your own repository of Perl modules
https://metacpan.org/module/Pinto::Manual
66 stars 49 forks source link

Dancer::Plugin::Swig causing some major issues #169

Closed bluefeet closed 9 years ago

bluefeet commented 9 years ago

When I try to update Exception::Class (pinto update Exception::Class) it installs Dancer::Plugin::Swig. I can't for the life of me figure out exactly why. This in turn causes all sorts of problems as Dancer::Plugin::Swig seems to tell Pinto (via cpanfile perhaps?) to downgrade a handfull of modules.

I can't seem to get past this. Any idea what is going on?

I just tried a fresh start:

pinto new foo
pinto pull --stack=foo Exception::Class
pinto ls --packages=Swig foo
[rf-] Dancer::Plugin::Swig                             0.01 LOGIE/Dancer-Plugin-Swig-0.01.tar.gz
[rf-] WebService::SwigClient                          0.001 LOGIE/Dancer-Plugin-Swig-0.01.tar.gz

The Exception::Class' dependencies are just two: https://widgets.stratopan.com/wheel?q=Exception-Class-1.38&fs=1

Not the bazillions that got installed:

pinto ls foo | wc -l
319

:(

bluefeet commented 9 years ago

Oh, and I'm on the latest Pinto, 0.09995.

thaljef commented 9 years ago

I see the problem. I'll fix it this evening. Sorry for the delay.

-Jeff

bluefeet commented 9 years ago

You rock, thanks!

thaljef commented 9 years ago

I have fixed the data on Stratopan, but you'll need to get the junk out of your repo (see below).

Dancer-Plugin-Swig was recently uploaded to CPAN including all of it's dependent modules inside the local/lib directory (this accident frequently happens with authors that use perlbrew and/or local::lib). That caused Stratopan to incorrectly tell Pinto where to find those modules.

When you use new to create a stack, that's not exactly a "fresh start." The stack does start out empty as you would expect, but whenever you pull a module it will first check whatever distributions you already have in the repository. If those distributions are borked, then you'll still get a borked result on the new stack. The only way to truly get a "fresh start" is to create a new repo:

pinto init foo
pinto -r foo pull Exception::Class

Somehow, you need to get the borked version of Dancer-Plugin-Swig out of your repository so that Pinto it isn't fooled anymore, and then update again. So make a copy of your repository (just in case) and then try this:

pinto -r your_repo delete LOGIE/Dancer-Plugin-Swig-0.01.tar.gz
pinto -r your_repo update Exception::Class

That's assuming you want to use the default stack. Let me know if that doesn't help.

-Jeff

bluefeet commented 9 years ago

I'm surprised stratopan could cause this - I know its listed as the first default cpan to mirror from in Pinto, but I figured that was there so that you could have some metrics on who is using Pinto, and for what, not because your CPAN mirror was actually different than the other mirrors. Not sure if thats a good thing?

I'm running the delete now. Its just sitting there... and it returned! OK, so I then diffed an "ls" of my main stack before and after the delete and there were no differences. Yay! I'm now re-running my "pinto update --all"... and it worked, and no traces of Dancer/Swig anywhere. :)

Thanks, dude.