Development

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.)

Active Directory plugin improvements

One of the few plugins that I still personally maintain is Active Directory plugin. In the past few months, I've been making steady improvements in this plugin, thanks to various inputs and bug reports given to me from the ClodBees customers.

One of the recent fixes was to get the "remember me" feature finally working for Active Directory. This requires a relatively new Jenkins 1.556, but it eliminates the need to having to constantly type the password in.

Then I've rebumped the version of COM4J, which was causing a thread leak when Jenkins runs on Windows. If you are running a Windows deployment with lots of active users, this probably would have contributed to the instability of Jenkins.

Jenkins 1.532.3 LTS is released

The final LTS release of the 1.532.x line is out today. You can download it from the usual location. Changelog is here.

Starting with the next 1.554.x LTS, the release model will switch to the train model, where we commit to dates and get whatever we can ship by that date.

You can see the scheduled dates in our event calendar. Backporting window for 1.554.1 is almost closing, so if you want to have your favorite issues nominated for it, please see the process in the Wiki and hurry!

More scalable slaves

Nio

NIO-based Java Web Start (JNLP) slave handling is coming to 1.560. This will help you run a large number of JNLP slaves more efficiently. A connected JNLP slave used to occupy one thread on the master, but now it occupies none. Combined with the earlier change that eliminated threads from idle executors, now you can connect thousands of slaves.

All you have to do is to use the latest slave.jar from Jenkins 1.560. No other changes are necessary on users' part.

A bulk of this is implemented in remoting 2.38, and a good part of it was implemented about a year ago on the airplane on the way to Europe.