Hello dear esteemed monks,
We have a project with a lot of CPAN dependencies. So we need to install them, meeting the following conditions:
-
Exactly the same set of modules is installed on all of our production servers;
-
The developers are able to add dependencies at will, without ops interaction (after code review, of course);
-
The build happens at every commit and it doesn't take forever.
What we currently do is:
-
unpack dependency cache;
-
install missing dependencies with cpanm;
-
run test suite against the updated library;
-
update dependency cache;
-
pack libraries together with the product itself into a huge tarball;
-
distribute the tarball to the servers, if needed.
What I'm currently pushing for is to build the dependency cache from scratch from time to time (say weekly) and only install the missing modules (we don't add new dependencies every day after all). This would increase the resilience to changes in upstream and also allow to purge unused dependencies.
But maybe there's a better way to achieve the stated requirements?
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|