Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: local::lib & multiple architectures

by chrestomanci (Priest)
on Dec 06, 2011 at 21:03 UTC ( #942112=note: print w/ replies, xml ) Need Help??


in reply to local::lib & multiple architectures

I used local::lib on a cross platform project about 6 months ago, where the contents of that lib directory where checked into subversion along with the main project source code, scripts etc.

In the main it worked well, but there where occasions where perl packages that compiled binary XS code would break things quite comprehensively for other platforms, while appearing to work fine for the platform I compiled an tested on.

In a typical scenario, In my development (on Linux x86_64), I decided that I needed package X from CPAN, so I would start the CPAN tool and install it into the local lib directory of my subversion checkout. CPAN would follow dependences and also install package Y which was an XS module. The install would appear to work fine. Once I finished my development and all the unit tests passed, I checked the code back into the trunk.

Shortly after another developer who works on windows (i686) would update to the latest head, and discover that everything was broken because the binary portions of package Y where missing.

Best case scenario he would be forced to stop what he was doing and start CPAN to re-install package Y. On one occasion we managed to break things so badly that local::lib would not work at all under windows, and we had to revert the whole change and start again.

The work around we came up with was to create three branches from trunk (n+1 where n is the number of supported platforms). We would then do the CPAN install into the local lib using a VM checked out on each supported platform on a different clean branch. All the branches where then merged into the staging branch that contained the binary XS code for all platforms. That was then unit tested on all platforms before being merged back into the trunk.


Comment on Re: local::lib & multiple architectures

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://942112]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (10)
As of 2014-10-20 13:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (76 votes), past polls