Telephone +44(0)1524 64544
Email: info@shadowcat.co.uk

yapc-eu-2009 - dependency-and-deployment

Sat Dec 22 00:30:00 2012

Slides for the talk dependency-and-deployment at yapc-eu-2009

Dependency
and deployment
management

-

Matt S Trout

-

Shadowcat Systems Limited
http://shadowcat.co.uk/

-

North West
England

-

Web Development
Consultancy

-

Catalyst
DBIx::Class
Moose

-

perl5 is
my VM

-

CPAN is my
language

-

cpan Foo

-

Couldn't
find Bar.pm

-

cpan Bar

-

ARGH

-

Makefile.PL

-

grep | xargs | cpan

-

ARGH

-

make installdeps

-

cpan .

-

Many
versions

-

JSON 2.0

-

ARGH

-

cpan2dist

-

one system
multiple
deployments

-

JSON 2.0

-

ARGH

-

chroots

-

app
+
deps

-

PAR

-

debugging

-

zip file

-

ARGH

-

local::lib

-

commit it?

-

multiple
architectures

-

.... ARGH

-

but

-

local::lib
per deployment

-

fixed set
of system
packages

-

works
ok.

-

can we
do better?

-

only.pm

-

only.pm
PAR

-

stat()

-

stat()
stat()
stat()
stat()

-

ARGH

-

coderef
in @INC

-

Module::Pluggable

-

ARGH

-

*CORE::require

-

shuffle
@INC

-

perl thinks
it's lucky

-

tests

-

PERL5OPT

-

-T

-

ARGH

-

perl -MFoo t/foo.t

-

system()

-

ARGH

-

*CORE::system

-

system { $zero } $program;

-

ARGH

-

$^X

-

fakeperl

-

exec $realperl, '-MFoo', @ARGV;

-

Foo.pm

-

$^X = $fakeperl;

-

requires

-

configure_requires
build_requires
test_requires
requires

-

configure_requires
may imply requires

-

build_requires
doesn't exist
in MakeMaker

-

(CPAN.pm guesses,
CPANPLUS doesn't)

-

test_requires
doesn't exist
... at all ...

-

ARGH

-

just ship
everything

-

'make test'
on target
system GOOD

-

though ...

-

if we own
require ...

-

anyway ...

-

requires

-

package
+version

-

package
<->
dist

-

packages
can move
dists

-

ARGH

-

record
feature
lists

-

record
dist
lists

-

built
against

-

tested
against

-

Module::Compile

-

ARGH

-

recursive
verification

-

first
target?

-

binary builds of
Task::Kensho

-

watch
these
spaces

-

http://enlightenedperl.org/
http://lists.scsys.co.uk/
these slides will be on
http://shadowcat.co.uk/