As of Wednesday night CruiseControl 2.8 is available for download (full release notes).
I’ve got a good feeling about this release because unlike a lot of releases I have the feeling that we’re doing more than adding feature and fixing bugs (though we did that too). This release felt like we were paying off technical/hygiene debt at the same time, at least in a small way. Not major refactorings, just lots of small changes to make things better. Some examples are:
- Putting historical information on the download page. It is interesting to browse the history of the project on a single page and it also allowed us to delete a page off the wiki that had similar information.
- Dan added the ability to specify a log4j configuration file on the command-line. This is cool both because it allows people to make changes w/out cracking open the cruisecontrol.jar and because it allows people to use the log4j xml format. The xml format offers some options that aren’t available using the properties format so we’ve opened up another bag of tricks for our users.
- We updated to a new version of Jetty and at the same time we’ve exposed the Jetty configuration files. Like with log4j this opens up a lot of new opportunities for people to add behavior.
- The documentation is now served by Jetty. Till now our help files were there but not served but the webserver — you had to go to the public website instead. <slaps own forehead>
- The documentation for distributed usage is now available on the website. We’ve had support for distributed builds for three years but almost nobody knows about it.
- New css for the jsp reporting application. I can’t believe how dated those pages looked. I can’t believe it was so easy to change. I can’t believe we waited so long to do it. (Now to update the screenshot in the documentation…)
At the same time we’ve made these changes we’ve also laid the foundation for larger technical changes by upgrading our version of Java (to Java5), the JSP (2.1) and Servlet (2.5) APIs.
Good things happening, good things to come!
8 Comments
Hello Jeff,
I have a simple question for you:
Is it possible to somehow configure CruiseControl to fetch each changelist, one by one?
I want the system to build every changelist, so if someone crash the build, I will know which one it was!
I tried to shorten my time between each build, but that’s not really a solution.
Regards,
Jeff
Hi Jeff,
That isn’t something you can configure out of the box, bit it should be pretty easy to write a plugin to do it for you.
I’d probably write an extension of the modification set that would prune the returned mods to the lowest revision. As long as the value for getTimeOfCheck() matched the earliest revision you’d be able to pick up the other changes on the next build attempt.
Jtf
Jeff,
Is CruiseControl dead. I’m not seeing any activity. We currently are having to role back our CC to previous version because of problems with the dashboard. Have people moved on to other continuous integration tools?
Hi Steve,
Nope, CruiseControl isn’t dead. I put up a pre-release version of 2.8.3 on Oct. 14th. Personally I haven’t done any work on CC since then, but only because I’ve been traveling literally every week for my day job.
While I’ve been unavailable on of our other committers (Dan Rollo) has been working with Paul Julius to try and get access rights to finish up the release and get it out.
So while we’ve been delayed, one way or the other I expect 2.8.3 to be out in January.
Jtf
Thanks for the feedback Jeff. We are just struggling today with using the linux version of CC. The buildresults web page seems to keep eating all of the sockets on the system (RHH 4.)
Hi Jeff,
Stupid question for you–What continuous integration server can be used with DNN ?
Hi Matt,
I think you could use a wide range of CI servers as most will allow you to call an arbitrary command-line process. That said Google showed me this article on using DotNetNuke with CC.NET.
Jtf
Hallo, I just finished writing a builder class for CC. I compiled it using the ant build files which come from the 2.8.4 version. I even managed to get it working by copying the webapps and etc folders from the binary distribution with my new plugin.
My question is this :
how to compile it in such a way that it is identical with the binary distribution? Or could I just add my builder plugin in some directory and configure it with the usual class attribute?
Post a Comment