a little madness

A man needs a little madness, or else he never dares cut the rope and be free -Nikos Kazantzakis


Pulse Continuous Integration Server 2.1 M5

Things have been a little quiet on the Pulse 2.1 front as we have been busy squeezing tons of extra continuous integration goodness into the existing 2.0 series. Don’t think that 2.1 has been standing still, though, it’s been steadily moving along in the background. Today all that background effort has culminated in a fifth milestone build, Pulse 2.1.4, available on the Early Access Program page.

A combination of the merges across from 2.0 and continued work on new features means that this milestone includes over 100 new features, improvements and fixes! I told you it wasn’t standing still!. This milestone should also be the last before 2.1 reaches beta and is promoted to the main website.

Major changes since the previous milestone fall into two categories:


  • Dependency UI updates: Daniel rightly pointed out that our UI for dependencies leaked too much “Ivyness”1. Now the artifacts published from a build are more closely integrated with Pulse’s existing artifact capturing.
  • Control of build version and status: you can now configure the version and status of your builds for dependency purposes. Downstream projects can be configured to pick up only artifacts of a given or more “stable” status (e.g. milestone, release).
  • Cleanup rules for published artifacts: define if/when artifacts published to Pulse’s internal repository are cleaned up to save disk space.
  • Repository access controls: configure who has what access to the internal artifact repository.
  • Reporting of retrieved artifacts: the build status tab now shows which artifacts were pulled in from upstream projects.

Personal Builds

  • Choose build revision: You may now specify the revision to run a personal build against, rather than having it forced as the latest revision at the time of the build request. The personal build client walks you through available options (including current, floating and last-known-good revisions), or you can specify a custom revision.
  • No forced update: requesting a personal build no longer forces an update of your working copy. Instead you can choose when this is desirable.
  • Pluggable patch formats: Pulse now supports multiple formats for the patches submitted as part of a personal build. Apart from the existing format, plugins have been added to read standard patch files (unified diffs) and git patches (including git binary diffs).
  • Submit existing patches: You can now submit patches from existing files, rather than based on the changes in a working copy. Along with pluggable patch formats, this opens up many new possibilities for submitting personal builds.
  • Smarter patch creation and application: the support for pluggable formats also led to improvements to our existing format and the application of patches. The existing format now uses unified diffs where possible. On application, unclean patching is detected and reported.

Watch this space for more information about Pulse 2.1 and these new features as it hits beta. Oh, and head on over to that Early Access Program page if you’d like to try 2.1 out!

1 We use Apache Ivy internally for dependency management, but aim to make it support all types of projects.

Liked this post? Share it!

Leave a Reply