Upgrading to Jenkins LTS 2.7.x

Each section covers the upgrade from the previous LTS release, the section on 2.7.1 covers the upgrade from 1.651.3.

Upgrading to Jenkins LTS 2.7.4

This release only fixed a regression introduced in 2.7.3. No upgrade notes for this release exist.

Upgrading to Jenkins LTS 2.7.3

Enforced upgrade of detached plugins

Jenkins will now ensure that detached plugins, i.e. those whose functionality used to be part of Jenkins core but was moved into a plugin, are always at least the bundled version. A message will be printed to the log informing administrators of this:

Upgraded detached plugins (and dependencies)

Upgrading to Jenkins LTS 2.7.2

Support for HTTP_PROXY environment variable in remoting component

Support for HTTP proxy exclusion in the build agent launcher was added. Build agents that define this variable, but whose connection to the Jenkins master relies on it not being enabled may now fail to to connect to Jenkins. The solution is to fix the proxy configuration as passed to the agent process.

Upgrading to Jenkins LTS 2.7.1

Setup wizard

The new user experience for Jenkins 2 was overhauled, and instances now start with a setup wizard that sets up a very conservative security configuration and guides users through installation of a recommended set of plugins.

For automatic deployments setting up a preconfigured environment e.g. using init.groovy or init.groovy.d/, the System property jenkins.install.runSetupWizard allows skipping the setup wizard:

java -Djenkins.install.runSetupWizard=false -jar jenkins.war

Servlet 3.1 requirement

Jenkins now requires Servlet API 3.1.

Administrators running Jenkins on non-default servlet containers, such as Tomcat or Websphere, need to ensure the container is capable of Servlet 3.1.

The embedded Winstone-Jetty container has been upgraded to support Servlet 3.1.

AJP support removed from Winstone-Jetty

The embedded Winstone-Jetty container has been upgraded and dropped support for the AJP protocol. If you’re using this protocol for communication between Jenkins and a reverse proxy, you will need to switch to HTTP, or use a different servlet container.

If you installed Jenkins using one of the native packages, it may enable AJP support by default, even if you’ve never used it. As the related command-line argument to java -jar jenkins.war has been dropped, it is possible that Jenkins will refuse to start after an upgrade, citing an unexpected argument. In that case, you need to edit the service configuration files (e.g. /etc/default/jenkins or /etc/sysconfig/jenkins) to remove that parameter.

Different bundled plugins mechanism

In Jenkins 2, we removed the concept of bundled plugins. Now, Jenkins can be used with no plugins installed, and all installed plugins can be uninstalled. The new setup wizard allows users to quickly select what plugins to install from among the most popular plugins.

Detached plugins, i.e. those whose functionality used to be part of Jenkins core but was moved into a plugin, will now only be installed if Jenkins detects an upgrade from a version before the plugin was detached. This is still required to retain configuration-level compatibility when upgrading Jenkins. If you’ve been running Jenkins offline, please note that no plugins will be installed by default, and that many plugins will implicitly depend on formerly bundled plugins due to the compatibility mechanism mentioned.

Workaround: The following plugins (and their dependencies documented on their wiki pages) should always be installed by default, or installation of new plugins by uploading them to Jenkins may fail (list applies to Jenkins 2.7.x): maven-plugin, subversion, cvs, ant, javadoc, external-monitor-job, ldap, pam-auth, mailer, matrix-auth, windows-slaves, antisamy-markup-formatter, matrix-project, junit.

Workaround: Set up a private update site such as Juseppe.

Groovy upgraded to 2.4.7

Groovy has been upgraded from 1.8.9 to 2.4.7.

One possible side effect is a memory leak described in JENKINS-33358 and GROOVY-7591. If you experience this issue, you can set the system property groovy.use.classvalue to true to restore the previous behavior. Example:

java -Dgroovy.use.classvalue=true -jar jenkins.war

Changes in UI theme

Jenkins 2 introduced changes to the UI of the New Item page and various configuration pages that may impact custom CSS/JS (injected e.g. using the Simple Theme Plugin) relying on the DOM or other features of the Jenkins UI.

Please note that we do not guarantee any UI level backwards compatibility for custom themes.