a little madness

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


Archive for September, 2015

Pulse Admin UI Updates

In my previous post, Pulse Roadmap Update, I mentioned that we are working on major changes to the Pulse administration UI. I also mentioned these changes were worthy of their own post, so here we are! After an initial evaluation and prototyping period, work on the new administration UI is now in full swing. We’ve still got months of work to go, but the direction has become clear enough for us to communicate.

As I mentioned previously, the main goals of this rewrite are discoverability and efficiency. We want it to be easier for you to find the configuration you’re after, and faster to make changes when required. We’re also dragging the admin UI from it’s humble lightly-scripted beginnings into the brave new world of HTML5 (we might even drop the quaint “AJAX-powered” terminology from our website 😉 ). For example: the new UI makes use of HTML history APIs to finally integrate with the back/forward navigation of the browser.

We’ll be making things more discoverable in two key ways:

  1. Providing an overview page for each project, which displays a summary of the main configuration in one place (key details from the SCM, recipes, requirements, properties, stages and dependencies). This will allow you to see what the project is about at a glance, without digging into the details.
  2. Making it easier to find where projects override values set in their template ancestors, as these are usually the key things you want to see and/or change. Currently overrides are marked but can only be found by browsing to their specific location in the configuration tree.

On the efficiency side, we also have multiple changes, some more visible than others:

  1. Navigating through the template hierarchy will be possible in a consistent way on every configuration page. You’ll be able to navigate to the same configuration in any other project (not just direct ancestors and descendants), where such configuration exists.
  2. The project and agent trees will be searchable, making it easy to jump straight to the instance you’re after.
  3. As mentioned above, proper browser history navigation is supported so you can easily jump back and forth.
  4. Under the covers a lot less data will be transferred between the Pulse master and browser, and the master will do a lot less work. The existing implementation has become heavyweight through multiple iterations and is being replaced with a lighter HTTP-friendly API with more work done on the client.

These are ambitious changes and as such we’ll be launching them in a new major version: Pulse 3.0! The implementation will also lay the groundwork for updates to other parts of the UI, as well as a new config API, although these will be held back for future releases. We prefer to ship sooner and tackle other areas incrementally rather than embark on a full rewrite. As always, while the next major version is in the works, Pulse 2.7 will be actively maintained including minor feature updates where practical.

Now, back to the UI work!