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

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 upgrades or…

FOSS4GUK 2018 Musings

A look back at FOSS4GUK 2018


Dan The whole event was great and I'm really glad I managed to go.  One person I was chatting to during one of the coffee breaks told me they were just so struck by what a friendly event it was compared to conferences they had attended - and I couldn't agree more! For me though, that manifested itself in the open and transparent way that the speakers and delegates shared their knowledge and expertise, with a real willingness to help others.  It really brings it home that the thing that is as amazing as the technology aspect of FOSS, is the real community of people who are working on it and with it.

In terms of talks and workshops (aside from all the fantastic Astun-led sessions 😊 which were great), other highlights for me were the sessions by Ross McDonald (@mixedbredie) and Tom Armitage (@MapNav_Tom), both of whom did great workshops and presentations around routing and cartographic visualisation; I used our QGIS in the Cloud environment for bot…

Astun Conference 2018

In late September and October Astun hosted two regional conferences in Bristol and Leeds. In the current environment it isn’t easy to persuade people in Local and Central Government to take a day out of their schedules and travel to to a conference, so getting over 70 delegates over the two days was a strong indication of the value that Astun brings to its clients. After a brief welcome from Steven Feldman (Bristol) or Dan Ormsby (Leeds) Mike Saunt, Astun’s founder and MD, gave a keynote entitled “Much ado about Mapping” Mike talked about Astun as a passionate company, passionate about geo, passionate about open, passionate about the cloud and fanatical about support. He ran through the way Astun’s offer had evolved in the last year with new features, an improved user experience, simplified administration, more automation of cloud deployment and most importantly major investments in testing, quality enhancement and reducing technical debt. Then Mike moved on to the direction of travel for…