Skip to content

News and thoughts from the team behind the Eclipse Hudson project

New UI Features for 3.0.1

Although 3.0.1 will only be a patch-set with bug fixes rather than any major changes we are proposing to inject a few small and non-disruptive UI changes into the release. These are in response to requests from a couple of different users and were simple and quick to do.

Here’s a screenshot of a build incorporating the changes:


You should be able to spot three distinct changes here but I’ll enumerate them for you:

  1. Most obvious is the new Powered By banner at the foot of the page. Just some improved branding for the project really.
  2. Next there is what I’ve termed the Privacy Message. In this case you can see it in the page footer containing the text “Confidential, Internal Use Only”.  Many large organizations using Hudson have asked for this. On internal commercial systems there are often requirements to badge screens with privacy or confidentiality statements (or even copyright). This is a new configuration option is accessible through the Manage Hudson > Configure System screen and basically provides you with a place similar to the System Message, where you can place whatever text you like, including markup.  So you don’t have to talk about “evil” things in the Privacy Message, you can put and create links to whatever you like and it will be printed at the base of each page. I’ve seen several systems where the System Message is being used for information links and similar which would be better consigned to the bottom of the page, now you can do that.
  3. Finally the new Instance Tag feature. Again, just set through the Configure System screen, the instance tag is an arbitrary name or tag that you can associate with an install. It’s function is to help overworked sysadmins who have many Hudson instances to manage and want to know at a glance which system they are currently working with without having to look at and mentally decode the URL.  To help them, the Instance Tag is printed in the Page Header, Footer and on the browser tab/window label. In my example here the Tag is set to “DEV_CI_I”.  As I said though, the actual string is is arbitrary and optional. Unlike the Privacy Message, markup is ignored in this value.

Both Instance Tag and Privacy Message are optional and if you don’t define them then your UI will remain as it is today in Hudson 3.0.0 except for the new banner.

Note that the Instance Tag and the Privacy Message have not been exposed through the REST API yet. It probably makes sense to do so at some point if there is interest.

Any feedback on this new feature? Just post on the forum or mail the Dev list quoting this article.


New Hudson Mobile App now available on iTunes

We’re pleased to announce the availability of the new Hudson Mobile Monitor application in iTunes.

Hudson in the Appstore

And, here are a couple of screenshots from within the app:

Hudson CI Mobile Monitor   

This first version is a simple application which allows you to monitor, at a glance,  the state of your various servers and jobs from your iPhone/iPod.

Right now the application is limited to read-only browsing of the servers and will work with unsecured servers only, however, over time I’ll be adding the extra functionality required to take it to the next level.  Under the covers this is using the Hudson REST API to do the talking with the server, so to use this on your server you’ll need the REST plugin installed and enabled.  The REST API has some limitations at the moment such as an inability to filter on views, but once we have that then this feature can be added to the app as well.

From a coding point of view, the app is written in Java and HTML5  using Oracle’s Oracle Application Development Framework Mobile extensions – ADF Mobile. The cool thing there is that the app will run unchanged, with the possible exception of some artwork sizing changes on Android as well. It’s on the to-do list…

Also on the to-do list (in the interest of full disclosure)

  • Tablets – yes it will work on the iPad but it does not take full advantage of the extra space, likewise I need to get hold of an Android tablet to play with and test
  • Better support for reconnect in case of network failure. Right now you may have to kill and restart the app if it gets stuck
  • Cache support – everything is queried in real-time right now and certainly improvements can be made in the area of caching and lazy loading of the job list

Anyway I’m pretty pleased with this as the first cut, have a play and let me know what you think


Hudson Enables Development in the Cloud

For those of you watching the various keynotes and general sessions at Oracle OpenWorld this week, the Oracle cloud strategy should be pretty evident.  For the Hudson team it was an exciting event, specifically because of the new Oracle Developer Cloud Service. At the heart of this cloud offering for developers  is Hudson providing all the CI goodness required by today’s developers. At a technical level (to be more specific), Oracle are using Hudson 3.0 Release Candidate 3, but they will upgrade to production when that arrives shortly. Hudson is matched with GIT, Maven, Wiki and task tracking for a neat  and compelling developer platform, particularly when paired with Mylyn for enhanced IDE integration.

The Oracle Developer Cloud Service takes advantage of Hudson’s pluggable update centre capability to control the list of plugins available on the hosted platform

Exciting times indeed, we’ll be keeping an eye on this story as it evolves.

Hudson and iPhone Development

Just spotted this interesting blog about using Hudson to automate iOS app builds

Don’t forget – you can keep up with Hudson blogs via the aggregator here


Duck! Here comes M3!

Today we released the M3 Milestone build of Hudson 3.0 at Eclipse. M3 is a biggy as we’ve finally managed to unravel most of the IP spaghetti surrounding the original Hudson code base and come up with something that an organization can be confident in using with the knowledge that we know where every bit of code came from and under what terms it was contributed. This may seem boring and legal but the truth is that you can’t just trust the licence on the box front so to speak, libraries depend on libraries which depend on libraries. The original Hudson code base was such a melange of licenses including LGPL, Apache, specialist, none at all… (the list goes on). Now we’re down to a list of somewhat over 70 libraries used by core, all of which have been approved, or are in the process of approval, via the detailed Eclipse IP processes.

Great, so what does that mean? Well one of the consequences of the “Great IP Cleanup”, as we’re calling it, is that we’ve had to pull certain bits of functionality from Hudson Core, you may have already noticed that in some cases we’ve be able to replace functionality (e.g. replacing the LGPL JFreeCharts with Eclipses own BIRT charting engine) In other cases we’ve had to move the code out of the Eclipse code base into a “required” plugin which remains in the Hudson-plugins code base. Examples of these include features such as Groovy Support (uncertain provenance for the Groovy code base) and SVN Support (The SVNKit license is incompatible with Eclipse). So what to do? Well fire up an M3 build and you’ll find out!

If you just run with the internal Jetty server you’ll notice a little message during startup:

INFO: Initial setup required. Please go to the Hudson Dashboard and complete the setup

That’s the clue! When you fire up your browser you’ll encounter a new screen, the Initial Setup screen:
The new initial setup screen in M3

This screen provides a simple way to ensure that the Hudson instance can get access to all of the required-but-non-Eclipse plugins that it needs (plus some of your favorites besides) in order to be fully functional. If you scroll to the bottom of the page you’ll see there is also a section to configure your proxy if you’re behind one – make sure you fill this in (and use the Test button to check you have the details right!) if you need to.
Define a HTTP Proxy in M3
Hitting the install button will pull the selected .hpi files from the plugin center into your HUDSON_HOME plugins directory. Be a little patient though, this can take a few minutes depending on the speed of your connection. Once everything is downloaded you can hit Finish and Hudson proper will start and you’ll be back on familiar territory. (Note you can just hit “Finish” to both download and start in one click.)

You can download the M3 WAR file from the Eclipse download page here.

Happy M3-ing!

Duncan Mills

Oracle upgrades Hudson’s infrastructure machines

Whilst the core Hudson project is moving to the Eclipse Foundation its plugin infrastructure is being housed on a new dedicated machine infrastructure provided by Oracle Corporation.

Last weekend the wiki along with the JIRA issue server and Hudson on Hudson were moved from the original Sun provided machines to their new powerful home by the Hudson team at Oracle.

Hudson-on-Hudson has a new dedicated host with two slaves each with 16GB of memory. For the wiki and JIRA and Crowd servers a new machine with a whopping 32GB memory is up and running.

The JIRA issue server will continue to be the main entry point for plugin-related issues whilst the history of core issues will be maintained there and synchronised with the Eclipse Bugzilla going forward. In general we encourage the hudson community to start using the new Eclipse Wiki for future documentation efforts, but again the existing re-hosted wiki will be retained for historical purposes.

This fab new machine infrastructure ensures that Hudson and its plugin infrastructure are future-proofed and ready for growth over the coming years as more and more enterprise users come on board.

First Hudson Release from Eclipse Foundation

The Hudson team is pleased to announce its 3.0.0 Milestone 0 release from the Eclipse Foundation. We have worked diligently and expertly over the past year to get to this milestone release.  Since release 1.398  the Hudson community has benefited from the team’s work through the introduction of the 6-week release cycle, based on a new development and release process and the ongoing work on bugs, enhancements and new features

What is included in this release?

The M0 release is the first release of Hudson as a top level technology project from the Eclipse Foundation. It has been a very busy 12 months for us and that is shown in the large numbers of new features, enhancements and bug fixes the team has developed.

Over 50+ new features and enhancements cover:

  • Maven 3
  • Cascading Projects
  • JAXB-based REST API and plugin,
  • enhancements to
    • Parameterized Builds
    • Downstream Projects
    • User Management
    • Security and Authorization
    • UI
    • GIT support

Over 350 bugs across the full range of Hudson have been fixed especially focused on stability, performance and the core SCM plugins such as GIT and SVN.

In parallel to this, in August 2011 the team began the process of submitting the Hudson core code to the Eclipse Foundation  The foundation has stringent entry requirements on all project source code and third party licences to ensure they are IP and license clean. Hudson’s source code, split over 10 core modules, has now been approved and is available in the Eclipse GIT repository.

There are over 200 third party libraries distributed with Hudson (including many that relate only to plugins).  Some of these are LGPL licensed libraries that the Eclipse Foundation does not accept under any circumstances. The team developed and implemented a strategy to replace these with more suitable libraries ensuring little impact on the core code or Hudson plugins using them.

For example:

  • The Java Native Access, JCaptcha and JFreechart  libraries have been repackaged as external plugins for this release. Additionally HawtJNI will be bundled as part of Hudson core for future releases, to replace the JNA support.
  • The BIRT Charting engine will be the charting method of choice going forward, but backward compatibility with JFreechart is maintained by existing plugins through the simple addition of a dependency on the external JFreechart libary package.
  • Winstone, originally used as the the standalone container for Hudson has been replaced by Jetty.

The balance of the libraries were considered for submission to the IP checking process.  In itself this is no small task. Each library has to be submitted with its source code.  Some of the libraries were so old that the code was not readily available or had been forked with local changes.

The Hudson team modernized the code through such means as replacing forked libraries with current versions and working with library owners to feed forked changes back into the latest library versions.  The Eclipse Foundation contacts owners and contributors to libraries to establish IP cleanliness.

As you can imagine, this is a labour intensive process but the work of both the Hudson team and library owners has ensured that over half of the 100+ third party libraries have been approved already. This core set of 100+ libraries represents those that are physically packaged in the core war.

The rationalization and approval process for the balance of the libraries is ongoing. But the result of this mammoth effort is that Hudson is ready to move forward and develop features related to the high level themes that the community agreed upon.

The final part of the effort in the leadup to this M0 release is the work that has been done on both the Hudson Eclipse website and wiki. Much of the content from the older has been rewritten or updated and moved to the new infrastructure. Over 70 pages are now available from the new sites, including the recently published Hudson Book (151 pages of material in it’s own right) that contains the most up to date information on installing, administering and using Hudson.

What can you contribute to this release?

As an alpha release we are not expecting miracles! But the release has gone through development and testing cycles and we are very pleased with the results.  You should be able to run this release of Hudson on your container of choice and expect it to behave well. You can install plugins  and expect them to run.

With the changes to libraries detailed above there may be some issues that we need to address quickly. Known issues will be with any plugin that uses JFreechart. We are in the process of either forking or contacting plugin owners to create the dependency on the external plugin. But the plugin may not yet be available from the update center. Keep an eye on the blog and Twitter feed for the latest news.

If you have any issues or further enhancements relating to this Eclipse release Please raise issues in the Eclipse Bugzilla system which you can find at – Hudson lives under the top level Eclipse Technology project. You will need to register for an Eclipse BugZilla account to log issues if you don’t already have one. For more information on the Hudson community, mailing lists, forums etc. please head over to the communities page.

Feel free to join us at the next community phone call to voice your opinions and experiences with this new release.

What is coming next?

It’s our intention to release monthly milestones until we get to our first approved Eclipse production release. By which time we feel that the Hudson project at Eclipse will be fully functional and ready for migration of your production servers. In the meantime, updates will continue in parallel on for all your production Hudson needs.

Susan Duncan