We use Perl widely in my shop--enough so that I consider it deployed on an enterprise scale. However, as time has gone by, we've gotten woefully out of date on our version of Perl and our module versions. One of the blessings of open source is also one of the drawbacks: there is no vendor to force you to upgrade. We've reached a point where we've decided to bite the bullet and get everything up to date.
I'm looking for some wisdom from the Monks on how to keep our distribution up to date after we upgrade everything.
Some specific questions:
How often do you upgrade your Perl? What version do you run in your production environments?
- How often do you upgrade your modules? Do you try to always stay with the latest version?
- How do you deploy your Perl distributions? (install modules on each machine, autodeploy somehow, etc.)
- Do you include external packages (like external C libraries) in your distribution system?
- Do you track what modules are actually being used? Do you remove modules that no one is using anymore (one less module to monitor and stay on top of)?
- How do you test your applications after a module or Perl upgrade?
My current proposals for our system are something like this:
- We'll upgrade to the latest stable, then stay within two releases of stable.
- We'll run upgrades of all modules every six months. We won't upgrade to a version that is less than a month old (I've seen too many releases followed by quick bug-fix releases.). We will have provision for interrim upgrades of a module if necessary. We'll use the CPAN module with some scripts to manage this process.
- We currently use our Perforce version control system to manage and deploy our distribution using scripts. This works well, but we don't currently track external dependencies (for example, expat for the XML modules).
- For testing, we have all developers run their tests, including WWW::Mechanize tests for our web apps. This can be a bit time-consuming, so that's why I'm going to suggest only twice per year.
I'm also interested in any other advice on maintaining a reasonably up-to-date Perl distribution in an enterprise environment.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||