Development

User Interface Refresh

This is a guest post from Tom Fennelly


Over the last number of weeks we've been trying to "refresh" the Jenkins UI, modernizing the look and feel a bit. This has been a real community effort, with collaboration from lots of people, both in terms of implementation and in terms of providing honest/critical feedback. Lots of people deserve credit but, in particular, a big thanks to Kevin Burke and Daniel Beck.

You're probably familiar with how the Jenkins UI currently looks, but for the sake of comparison I think it's worth showing a screenshot of the current/old UI alongside a screnshot of the new UI.

Current / Old Look & Feel

New Look & Feel

Among other things, you'll see:

Workflow plugin tutorial: writing a Step impl

The other day I was explaining how to implement a new workflow primitive to Vivek Pandey, and I captured it as a recording.

The recording goes over how to implement the Step extension point, which is the workflow equivalent of BuildStep extension point. If you are interested in jumping on the workflow plugin hacking, this might be useful (and don't forget to get in touch with us so that we can help you!)

Thinking about moving on to Servlet 3.0

One of the current efforts under way in the dev list is driven by Tom Fennelly et al, who is working on introducing a series of small ball improvements to the user interface in Jenkins. If this is something you are interested in (and who aren't?), you should see Kevin Burke's manifest that sets out the plan of attack, and This mega thread on the dev list for the discussion.

There are numerous sub-conversations born out of this, and one of them is the minimum required servlet spec version for Jenkins.

Jenkins devs are thinking about ways to update page contents post load, for example so that the list view will keep updating as stuff happens. WebSocket was discussed as an option, and then server-side events, which seems to be the current favorite.

Acceptance test project progress report

Over the past 30 days or so, the acceptance test project has made a great progress.

This project consists of a reusable harness that can be used by plugin developers and users to write functional test cases. These tests can be run against Jenkins instances that are deployed in all sorts of different ways, and can interact with complex real fixtures. These tests can be also run with specific version of Jenkins core and a combination of plugins.

The number of tests have steadily increased to above 300. Several of those are by Michael Prankl, where he tests the LDAP plugin with the real OpenLDAP server instance that runs inside Docker — a kind of test that just wasn't possible before can be now easily written.

Jenkins Office Hour: Tutorial on writing an acceptance test

This week I'm going to do an office hour on how to write an acceptance test in Jenkins acceptance test harness. The event is on Wednesday 11am PT.

This new Selenium-based test harness is full of page objects and other abstractions that let you write blackbox integration tests on Jenkins and its plugins, as well as how they behave under various environments.

Unlike our regular office hours, the event is done through Hangout on air. But I do want at least several people to join Hangout interactively, not just watch the event in a read-only mode.

To join the event interactively (as opposed to read-only), I think you need to come here (but since Hangout URL can change, please check back on this post right before the office hour begins, so that I can post an up-to-date URL.)