Skip to main content

Going to the Geonetwork CodeSprint in Bolsena

The week of the 4th to 8th of June 2018 was the 11th annual Geonetwork Codesprint in Bolsena, coordinated by GeoCat. As in previous years, the Geonetwork developer team took over an ex-convent, just outside the small town of Bolsena, on the side of the lake of the same name, about 135km north of Rome.


View Larger Map

At Astun we've always had a firm belief in contributing back something to the open source software that we use, be that by sponsoring or providing enhancements, fixing bugs, or getting involved with conferences and hackathons. Due to the work we've been doing supporting and extending Geonetwork for our local Government INSPIRE metadata portal, for the Scottish Spatial Data Infrastructure portal, and with DEFRA, this event seemed like a good opportunity to meet the core developers face to face, to learn something new, and perhaps assist with some development.

I went along with no fixed expectations of what would be involved, or what I could contribute. I consider myself to be a non-coder, although I know my way around the Geonetwork repository on GitHub well enough to compile and deploy the code from source and to debug issues. Furthermore, these days the Geonetwork code is only part of the story! The metadata is stored in a back-end database, generally PostgreSQL, and then the search results are indexed in ElasticSearch, with Kibana providing dashboarding capabilities (more on this later).

So what does a non-coder do at a codesprint? Plenty, as it happens!

Day one was mainly about orientation. There was a "state of the nation" talk going through the metrics of the project (the number of contributors, the number of bugs reported and fixed, and so on). This was followed by some ideas as to what might be achievable in the week. These basically broke down to the following over-arching themes:

  1. Remove the historic dependencies on Lucene for searching and move entirely over to ElasticSearch 
  2. Refactor the release and branching workflow in the Github repository so that new features were added to the correct (future) release and not to the current stable branch
  3. Test a new script for generating new metadata schemas or profiles 
  4. Squash as many bugs and merge as many pull requests as possible! 

Over the next few days we worked through these main themes, punctuated by lovely home-cooked meals sat outside in the convent garden, some multi-lingual karaoke, an afternoon wandering through the medieval streets of Bolsena, and an evening at the National Museum in Rome.


The move to ElasticSearch was a big step in Geonetwork 3.4, and has felt to me like a black art. There's a lot of new technology to learn (shards, index patterns, mappings, clusters, nodes...) and a new syntax for querying. I was concerned that end-users might struggle to reproduce queries that they had created in previous versions of the software without a lot of additional support. So while the developers were working on the code, I created some documentation on ElasticSearch for new Geonetwork admins, and also investigated a plugin that provides a more familiar SQL interface to the index. The latter needs a lot of work to be useful, I think, but it could be handy for people getting used to the new technology, like me for example!

Refactoring the release and branching workflow sounds very dull, but was a very important step in improving the quality and sustainability of releases. In a nutshell it means that new features are introduced in new major releases of the code rather than appearing unannounced in a patch. This required a lot of work on the part of the developers, and it's not something I could really help with, other than by supporting it as a Really Good Idea.

One thing I was very excited to see was the new script for generating a metadata schema or profile.
At Astun we've contributed towards the development of the Gemini 2.2 metadata profile for Geonetwork, and have also built an extended metadata profile for the Environment Agency to allow them to store some additional metadata elements, such as an Approval for Access code, and also to include additional validation rules. This process is quite time-consuming, so being able to automate at least the basic process will be extremely handy, particularly when we come to work on a Gemini 2.3 plugin later this year.

Bug squashing and pull request acceptance was fun, and rather satisfying. Many bugs had been superseded by later versions of the code (including some of my own), or had not been commented on for over a year. These could all be closed. Others needed tagging to ensure they were matched to the correct release, or needed more information before they could be reproduced. I was made a contributor to the project so I could assist with this. I have plans to start creating bugs for unfinished documentation now I can tag them as such. Documentation bugs are a really easy way for beginners to contribute to a project, as well as being extremely valuable to the developers.

All in all, it was a great week, and I would definitely argue that non-coders can contribute to, and get a lot out of codesprints. While we worked hard, there's something about being in lovely surroundings, with nice weather and good company to make it feel a lot less like work!

Comments

Popular posts from this blog

Improving project documentation with a codesprint

Background  At the end of November I was asked by Francois Prunayre at Titellus to help organise and manage a 3-day code-sprint with the aim of improving GeoNetwork documentation . Documentation can be problematic for projects, even open source, where the majority of the work is done by volunteers. Updating documentation is rarely a priority for developers, who are time-poor and have actual project issues to deal with, and efforts to widen the base of contributors so that others can help, also take time. Back to the code-sprint This code-sprint was timed very well though, as it comes on the back of work being done to update GeoNetwork documentation as part of OSGeo's participation in Google's Season of Docs . This pairs a paid technical writer with an open source project for either three or six months, with the aim of seeing a rapid improvement in that project's documentation. I'm an admin and mentor for OSGeo on Season of Docs, so was well-placed to provide inp...

Reflections on the Amazon Web Services Summit, 2018

Last month, a handful of us from 'operations' attended the AWS Summit to keep up to date with what is going on in the Amazon Web Services world.  We've shared our reflections in this Blog and linked through to videos or slides of the sessions where we can. What is the AWS Summit? Amazon run a series of global events in major cities around the world getting to each one every couple of years; 2018 was London's turn. Amazon Web Services (AWS) is a cloud hosted computing platform, that Astun use for pretty much everything.  Our own cloud products and services such as iShare in the Cloud, Astun Data Services, Geonetwork / INSPIRE are all hosted there.  Even if what you use from us is exclusively deployed on your own premises, all of software development and most of our internal IT is done in the AWS environment.  It is critical to our business.  If you think that we are putting all our eggs in one basket, it is worth remembering that AWS is a $22 billion p.a. ...

QGIS 3.0: the time has come...

QGIS 3.0 was released in February , and although it's labelled an 'early adopter' release, with the long term release (LTR) available in October, there's plenty in it to excite not just the early adopters, but the rest of us too. We've had a chance now to have a good look at it, kick the tyres a bit and see what everyone has to say about it, so here are our thoughts. There are a few big steps forward - for example 3D support and multiple map canvasses - and while many of the other changes are relatively minor on their own, put together they represent a major leap in usability and effectiveness. There's been work on consolidation, upgrades of core packages, efficiency and speed improvements, resulting in a slicker, easier to use and more tightly integrated application. You could say that the 'easier to use' bit is the best thing about QGIS 3.0 - and when you think about it, that's not a description that could be applied to most application upgrad...