Re: [Catalyst] building 'local' lib with dependencies for shipping
hey, i've also been hanging around with the same question/problem. local::lib in combination with perl-brew is super, to bundle perl and all modules needed to run cataylst independant from your systems perl installation. i thought just copying the complete local::lib tree would solve the problem to have the exactly the same module-versions on all maschines (development boxes and production) but than i figured out, if the maschine-architecture is different then just copying the local::lib dir would not work. using cpans Bundle system puts modulename + versions into the bundle file, but installing from this bundle also installs new-versions of modules if they are installed as a depenceny. any ideas, how to solve this issue ? byyee, bernhard On 25.04.2011, at 15:32, Miquel Ruiz wrote: On 25/04/2011 15:03, Fernan Aguero wrote: My question is: apart from a 'hit and miss' approach (or a 'put everything and the kitchen sink') ... is there a smart way of building a list of the dependencies for any one app? Hi, You could give a try to lib::xi . It will install directly the dependencies using cpanm, though. Hope it helps. -- Miquel Ruiz ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/ -- Bernhard Bauch, Webdevelopment ZSI - Zentrum für soziale Innovation ba...@zsi.at ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] building 'local' lib with dependencies for shipping
a local::lib alternative is Shipwright; created by Best Practical the makers of RT defect tracker. its worth checking out as it does exactly what you're trying to do. On Tue, Apr 26, 2011 at 3:40 AM, Bernhard Bauch ba...@zsi.at wrote: just saw on the dbix::class list they're discussing the same thing: http://lists.scsys.co.uk/pipermail/dbix-class/2011-April/thread.html see [Dbix-class] Module versioning Begin forwarded message: From: Bernhard Bauch ba...@zsi.at Date: 26. April 2011 12:33:08 MESZ To: The elegant MVC web framework catalyst@lists.scsys.co.uk Subject: Re: [Catalyst] building 'local' lib with dependencies for shipping Reply-To: The elegant MVC web framework catalyst@lists.scsys.co.uk hey, i've also been hanging around with the same question/problem. local::lib in combination with perl-brew is super, to bundle perl and all modules needed to run cataylst independant from your systems perl installation. i thought just copying the complete local::lib tree would solve the problem to have the exactly the same module-versions on all maschines (development boxes and production) but than i figured out, if the maschine-architecture is different then just copying the local::lib dir would not work. using cpans Bundle system puts modulename + versions into the bundle file, but installing from this bundle also installs new-versions of modules if they are installed as a depenceny. any ideas, how to solve this issue ? byyee, bernhard On 25.04.2011, at 15:32, Miquel Ruiz wrote: On 25/04/2011 15:03, Fernan Aguero wrote: My question is: apart from a 'hit and miss' approach (or a 'put everything and the kitchen sink') ... is there a smart way of building a list of the dependencies for any one app? Hi, You could give a try to lib::xi . It will install directly the dependencies using cpanm, though. Hope it helps. -- Miquel Ruiz ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/ -- Bernhard Bauch, Webdevelopment ZSI - Zentrum für soziale Innovation ba...@zsi.at ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/ -- Bernhard Bauch, Webdevelopment ZSI - Zentrum für soziale Innovation ba...@zsi.at ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/ ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] building 'local' lib with dependencies for shipping
On Mon, Apr 25, 2011 at 10:32 AM, Miquel Ruiz m.rui...@gmail.com wrote: On 25/04/2011 15:03, Fernan Aguero wrote: My question is: apart from a 'hit and miss' approach (or a 'put everything and the kitchen sink') ... is there a smart way of building a list of the dependencies for any one app? Hi, You could give a try to lib::xi . It will install directly the dependencies using cpanm, though. Hope it helps. -- Miquel Ruiz Thanks Miguel for the suggestion. Tried lib::xi following the examples in the perldoc (seemed simple enough) but failed early on with a couple of dependencies (missing from the cpanm db I guess). I had better luck (though not yet a complete success) with Shipwright (mentioned in this thread). Thanks! -- fernan ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] building 'local' lib with dependencies for shipping
On Tue, Apr 26, 2011 at 11:43 AM, Nicholas Wehr catal...@bionikchickens.com wrote: a local::lib alternative is Shipwright; created by Best Practical the makers of RT defect tracker. its worth checking out as it does exactly what you're trying to do. Nicholas, thanks for your suggestion. I installed Shipwright and followed the docs, and got started: shipwright imported my sources, identified dependencies (not all of them, though) and downloaded the corresponding packages from CPAN. After that I ran the shipwright-builder script, and this went OK through all the identified dependencies, but failed at the last step, when attempting to build my catalyst app. I'm clearly missing something. The 2 things I can see are: i) I need to tell Shipwright what other dependencies are required by my app. Currently the dependencies identified are a minimal list of what I'd call 'base' dependencies. They do not include all the more specific Catalyst subcomponents (plugins), nor DBIx::Class and its subclasses, Template Toolkit, etc. Where do I specify these? In my app Makefile? In a Shipwright config file? ii) it seems like I need to first create a Makefile for my app? I never did that ... I have a very basic skeleton created by the catalyst.pl helper script, but after that initial skeleton, I started coding away and using the 'lib' within my app 'as is' without taking care of creating tests, or editing the Makefile.PL file. Is this the reason of Shipwright failing to build my app? What should I do to fix this? Thanks in advance for any further help, Cheers, -- fernan PS: last lines of output from shipwright-builder [...] Use of uninitialized value in string at ./bin/shipwright-builder line 560. build tdrtargets test part failed, last output of build.log is: Non-zero exit status: 1 t/controller_user.t (Wstat: 256 Tests: 3 Failed: 1) Failed test: 3 Non-zero exit status: 1 t/controller_userinput.t (Wstat: 256 Tests: 3 Failed: 1) Failed test: 3 Non-zero exit status: 1 t/model_mesh.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 t/model_targets.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 t/model_weightmodel.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 Files=12, Tests=21, 26 wallclock secs ( 0.09 usr 0.02 sys + 17.78 cusr 1.14 csys = 19.03 CPU) Result: FAIL Failed 9/12 test programs. 9/21 subtests failed. make: *** [test_dynamic] Error 1 at ./bin/shipwright-builder line 573 main::_install('tdrtargets', 'GLOB(0x93606d8)') called at ./bin/shipwright-builder line 412 main::install() called at ./bin/shipwright-builder line 276 exit Script done, file is shipwright-builder.out -- fernan ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] building 'local' lib with dependencies for shipping
Shipwright is not a silver bullet - it has issues of its own. For catalyst projects I created a dependency finder that issues shipwright import commands. on top of that, shipwright is not forgiving with regards to build errors, for example - a non-uniform Makefile.PL of a CPAN dependency might break it... there are ways to tweak a known dependency - but is a pain with fully automated build systems. for the error you listed - I see this when I try to add a module to an existing shipyard and then rebuild an existing vessel. when this error happens - I think it means that the shipwright_builder is failing because its required cache of in-memory-references-in-the-vessel has been lost from the previous vessel build-up. I don't have a good solution here except to delete the whole vessel and issue another build command (keep the shipyard though). anyone else using shipwright for catalyst? any other dep management solutions? how about a higher level solution like Apache Ivy? I'm a fan of CPAN - but its not exactly a configuration management dream, is it? -n On Tue, Apr 26, 2011 at 1:30 PM, Fernan Aguero fernan.agu...@gmail.comwrote: On Tue, Apr 26, 2011 at 11:43 AM, Nicholas Wehr catal...@bionikchickens.com wrote: a local::lib alternative is Shipwright; created by Best Practical the makers of RT defect tracker. its worth checking out as it does exactly what you're trying to do. Nicholas, thanks for your suggestion. I installed Shipwright and followed the docs, and got started: shipwright imported my sources, identified dependencies (not all of them, though) and downloaded the corresponding packages from CPAN. After that I ran the shipwright-builder script, and this went OK through all the identified dependencies, but failed at the last step, when attempting to build my catalyst app. I'm clearly missing something. The 2 things I can see are: i) I need to tell Shipwright what other dependencies are required by my app. Currently the dependencies identified are a minimal list of what I'd call 'base' dependencies. They do not include all the more specific Catalyst subcomponents (plugins), nor DBIx::Class and its subclasses, Template Toolkit, etc. Where do I specify these? In my app Makefile? In a Shipwright config file? ii) it seems like I need to first create a Makefile for my app? I never did that ... I have a very basic skeleton created by the catalyst.pl helper script, but after that initial skeleton, I started coding away and using the 'lib' within my app 'as is' without taking care of creating tests, or editing the Makefile.PL file. Is this the reason of Shipwright failing to build my app? What should I do to fix this? Thanks in advance for any further help, Cheers, -- fernan PS: last lines of output from shipwright-builder [...] Use of uninitialized value in string at ./bin/shipwright-builder line 560. build tdrtargets test part failed, last output of build.log is: Non-zero exit status: 1 t/controller_user.t (Wstat: 256 Tests: 3 Failed: 1) Failed test: 3 Non-zero exit status: 1 t/controller_userinput.t (Wstat: 256 Tests: 3 Failed: 1) Failed test: 3 Non-zero exit status: 1 t/model_mesh.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 t/model_targets.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 t/model_weightmodel.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 Files=12, Tests=21, 26 wallclock secs ( 0.09 usr 0.02 sys + 17.78 cusr 1.14 csys = 19.03 CPU) Result: FAIL Failed 9/12 test programs. 9/21 subtests failed. make: *** [test_dynamic] Error 1 at ./bin/shipwright-builder line 573 main::_install('tdrtargets', 'GLOB(0x93606d8)') called at ./bin/shipwright-builder line 412 main::install() called at ./bin/shipwright-builder line 276 exit Script done, file is shipwright-builder.out -- fernan ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/ ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/
Re: [Catalyst] building 'local' lib with dependencies for shipping
On 25/04/2011 15:03, Fernan Aguero wrote: My question is: apart from a 'hit and miss' approach (or a 'put everything and the kitchen sink') ... is there a smart way of building a list of the dependencies for any one app? Hi, You could give a try to lib::xi . It will install directly the dependencies using cpanm, though. Hope it helps. -- Miquel Ruiz ___ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/