Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Continuous integration tools for perl

by andreas1234567 (Vicar)
on Mar 17, 2011 at 07:26 UTC ( [id://893680]=perlquestion: print w/replies, xml ) Need Help??

andreas1234567 has asked for the wisdom of the Perl Monks concerning the following question:

Monks,

The coffee oriented parts of my organization uses Hudson (or the non-Oracle fork Jenkins) for Continuous integration. Trying to be a good Monk I ask my self what are the strengths and weaknesses of the alternative tools, and what would best suit our perl development?

--
No matter how great and destructive your problems may seem now, remember, you've probably only seen the tip of them. [1]

Replies are listed 'Best First'.
Re: Continuous integration tools for perl
by dHarry (Abbot) on Mar 17, 2011 at 13:04 UTC

    Hudson is not bound to a specific programming language. Given that you organization already uses Hudson why deviate? Hudson is rapidly gaining in popularity and for good reason. It's easy to set-up and extensible. Tons of free plugins. See for a Perl example: automating Perl deployments with Hudson. You can add automatic testing, automatic code analysis, produce metrics for QA etc etc. Of course you can spend weeks/months comparing the different tools... But, as usual, it all starts with your requirements.

    Cheers

    Harry

      If you are going to evaluate, here are some random bits to pass along from my experience implementing build automation at 50 companies: (and no criticism implied whatsoever to other posters by my cynical tone)

        sblanton++ Your comments are much appreciated.

        I would like to clarify one thing, I don't mind spending money, especially other peoples money;) But we have specific requirements with respect to open source. Basically, whenever possible use open source. The reason behind this is that we cannot afford to depend on Vendors that might go bankrupt (we have experience with that). Our projects can typically last for 10+ years. Some SW will have to work for many more years. Obviously the quality of open source varies a lot. In my experience you have to be very careful in selecting products and tooling. Things like install base, active community etc. are important factors. Also with commercial tools you can get stuffed. I once ended up between IBM and Oracle pointing to each other:( IBM blaming the database and Oracle blaming WebSphere.

        Cheers

        Harold

Re: Continuous integration tools for perl
by pemungkah (Priest) on Mar 17, 2011 at 21:09 UTC
    Hudson is awesome for Perl. Seriously. If you're having trouble, it's simply because you need a few CPAN modules to help out.

    I'll be doing a talk at this year's YAPC about it. The key bit is TAP::Harness::Junit. Once you have your tests running using this, you're in good shape. Hudson will think that your project is a Java project, and then a lot of Hudson's tools kick in for you.

    It'd be really nice if someone would write a module that converts Devel::Cover output to Clover (for instance), which would cover most of the stuff you really want your continuous integration tool to do. Many people would be very, very happy should you do this...

      Yeah, +1 on Hudson/Jenkins rocking with Perl. Plus Jeff Lavallee just took over the CPAN project for TAP::Harness::Junit and did a release fixing a bunch of long-standing bugs, you might mention that in your talk, pemungkah.

      I love Jenkins/Hudson for Perl. I was playing around with a Devel::Cover formatter for Clover per your suggestion. What a great idea!

      We use Jenkins at work as our CI system for all of our Perl code and it works beautifully but I've been itching to get some code coverage information into the mix. After searching for something that someone else already wrote (unsuccessfully), your suggestion seemed the best.

      It hooks into Devel::Cover like so: cover -report clover

      Once I get around to it I will put it up on CPAN but for now it's on my github account as Devel::Cover::Report::Clover.

      Let me know if this works for you.

      Update: 10-13-2011 -- added to CPAN, should be listed soon.
        I am replying to this node simply to say that you are awesome. Thank you!
Re: Continuous integration tools for perl
by chrestomanci (Priest) on Mar 17, 2011 at 10:38 UTC

    What is wrong with Hudson or Jenkins?

    If other parts of your organisation have already standardised on Hudson, then I don't think it is a good idea to be looking for alternatives until you have decided that it is unsuitable for your needs.

    By using the same tool as other teams in your organisation, you reduce the effort required when you need to transfer code or people between teams. You should not be using a different tool just to be different.

      Agree with above, but if Hudson doesn't work for you - it didn't for me, you can try free Mojo from OpenMake Software. Hudson was too narrowly focused. Mojo can do production scheduling as well continuous integration, so it made sense to use one tool for both of those in addition to having additional flexibility on the CI side.

      Mojo actually grew out of a need for a standard tool across multiple development teams and languages, so as mentioned by chrestomanci, be careful adding unneeded complexity to your environment. As a disclaimer, I used to work for OpenMake Software, but helped make Mojo suitable for my own needs for Perl continuous integration.

      Continuous integration (CI) can be complex to set up and it can mean different things to different people. The details depend heavily on your version control tool. Mojo and Hudson do have hooks out of the box for a number of VC tools, but be sure to have a clear plan. Usually CI assumes a code-compile part, but with Perl I used passing automated unit tests as an integration measure.

      Mojo's GUI is very buggy, but it works solidly when configured. It easily allows you to create a job out of a perl command line, controlling arguments and environment variables. One of the best things is the real-time monitoring dashboard and the HTML wrappering and web posting of the output of all the perl cmds. It is perl/Eclipse/Java/C/C++ based, and if you use Eclipse, it can be nicely installed as a plug-in.

      I would be interested if anyone knows of or wants to start a pure-perl CI platform. Not necessarily because there is anything wrong with whats out there, but merely because im a purist and im always keen to see diversity. fwiw there is still Tinderbox (which is perl) http://en.wikipedia.org/wiki/Tinderbox_%28software%29 there is a FreeBSD version and the original mozilla release. The FreeBSD one is active but is hardcoded to compiling freebsd ports, the original mozilla is old school. 'SCIT' recently popped up on freshmeat.net - http://code.google.com/p/scit/
        smolder also exists at - https://github.com/mpeters/smolder
Re: Continuous integration tools for perl
by stonecolddevin (Parson) on Mar 17, 2011 at 17:31 UTC
Re: Continuous integration tools for perl
by sundialsvc4 (Abbot) on Mar 17, 2011 at 19:52 UTC

    I usually make the following suggestions to clients:   (And if it sounds like a sermon, it’s meant to.)

    1. Establish what your work practices are, and/or what they need to become in the short run, and base your software acquisition decisions on the demonstrated ability of the software to conform to those selected practices, “action this day.”   Don’t put the cart in front of the horse.   Don’t let the software that you buy prompt you to shape your business practices to conform to it, i.e. “for no other simultaneous reason.”

    2. “Open source,” per se, does not confer any business value unless that software is demonstrably well-supported by a well-funded foundation that, it can be shown, does support the product to a “commercial product” standard of quality.   Software is not a kit.   You have no warranty or other legal recourse.   You don’t have the source-code so that you can “volunteer” to fix it.   If the software has been written by a lone wolf, that person is eventually going to realize that he has to eat real food; not just Twinkies® and Jolt® Cola.   (You don’t own the wolf, and can’t compel his or her behavior in any way, so you – and your entire business – are now screwed.)   The roster of dependable open-source programs that are seriously worthy of business consideration is quite small:   Perl (PHP, Ruby, etc.); MySQL; Linux.   Very few others.   Software that is released by a major corporation that retains an ongoing corporate interest in it, e.g. the Darwin® (OS/X) operating-system maintained by Apple, or the various endeavors that are championed and/or underwritten by IBM and the like, are obviously the same.   “Open source” projects do not merely vanish due to bankruptcy or bad luck ... they can vanish because the author becomes bored.

    3. Are there exceptions to Rule #2?   Absolutely yes!   And you must perform due-diligence to find them.   Exactly as you would do for anything that you intended to buy.   Be it well-spent.   Enter these gates, if ye may, with deliberate purpose, and with thine eyes wide open.

    The software that you use in your business, is not “your business.”   It may be essential to your business, without which you cannot hope to make money (or even to perform your self-appointed tasks), and that software might be open-source (in which case your company has become a supporting stakeholder of the project ... and you must understand clearly what that means).   “Your business” is defined as “what you make money net-profit at.”   Nothing more or less.   Spend no more money than you have to spend in support of that business, of course, but never, ever, attempt to spend less.   The consequences of error are merciless.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://893680]
Approved by chrestomanci
Front-paged by salva
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (3)
As of 2024-03-19 11:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found