GeoServer code sprint success

It’s been an exciting time here at GeoServer HQ. To explain, let’s start with a little history lesson.

History

In 2009, GeoServer released GeoServer 2.0, sporting a new user interface based on Apache Wicket. Wicket allows Java developers to construct an AJAX UI with minimal HTML experience. Since its adoption, Wicket has made development of GeoServer more accessible, due the ease of creating graphical configuration pages.

The problem is that we’ve still been using Wicket version 1.4 all this time, and the current version is 7. We’ve tried to address this activity at two previous single-day code sprints, which were aborted due to insufficient time and resources. And the longer we’ve waited, the more difficult it has become.

Without an upgrade, we were starting to see less compatibility with modern browsers, which would eventually lead to the UI not being usable. Something needed to be done.

Enter the code sprint

This was not a small task. The problem is neatly summed up by a graphic created by Jody Garnett explaining the Wicket upgrade:

Can you see the difference? Neither can we.

As you can see, when properly implemented, the visual change for users will be…nothing at all.

So I was very impressed when we got the go-ahead (and funding!) to meet in Victoria, BC, at the Boundless Canadian office.

What we did

Developers from the US, Canada, Italy, and Belgium descended upon the diminutive capital of British Columbia to spend a week doing the upgrade.

Since we held off this work for so long, it wasn’t as simple as a single upgrade, as we had to negotiate several API changes in one go. And GeoServer, being highly extensible software, has dozens of modules and extensions that needed to be tested too:

And on and on…

Developer experience

Here is the team and their primary accomplishments:

Andrea Aime (GeoSolutions): Really focused on fixing the build and crushing bugs as they popped up in manual testing. Spent a lot of time migrating the security modules.

More exciting were the visual documentation improvements. I updated the theme of the documentation to increase readability and fix some visual bugs (for example step 10 and higher being cut off).

Documentation Theme and Content Update

Visual Changes and Blue-sky thinking

With so many experienced GeoServer users in the room, we had a short breakout session discussing high-level improvements to the UI and its workflow, in an attempt to answer the question, “what have you always wished the GeoServer UI would do?” It didn’t take too long to fill up a spreadsheet full of more than two dozen ideas for the next co de sprint- and the team was able to make a few of the easier ones on Thursday and Friday.

The rest of the team decided to follow suit and made a few small visual changes, such as:

Updating the JAI page (now called “Image Processing”)

Updating the Coverage Access page (now called “Raster Access”)

“Add a new resource” is now called “Add a new layer”. (Minuscule change, but this has bugged me for years.)