[Catalyst] building 'local' lib with dependencies for shipping

Nicholas Wehr catalyst at bionikchickens.com
Tue Apr 26 23:29:39 GMT 2011


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.aguero at gmail.com>wro=
te:

> On Tue, Apr 26, 2011 at 11:43 AM, Nicholas Wehr
> <catalyst at 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=3D12, Tests=3D21, 26 wallclock secs ( 0.09 usr  0.02 sys + 1=
7.78
> cusr  1.14 csys =3D 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 at 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/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20110426/39310=
bc7/attachment.htm


More information about the Catalyst mailing list