Stay Connected with the Boundless Blog

OpenGeo GeoGig Rebase and Tag Software Functions

In light of some recent questions, I would like to take to a moment to discuss what the GeoGig team is up to and what additional steps are being taken to prepare for GeoGig 1.0. To frame this discussion I will highlight two steps (rebase and tag) that are used to prepare a data product for release in GeoGig.

GeoGig is a distributed version control system for features (much the same way git is a distributed version control system for lines of text). This technology originated as an R&D project within Boundless and is now part of the Eclipse Foundation LocationTech working group.

For additional background on the project please see previous articles “Distributed Versioning Geospatial” (Part I, Part II, Part III) and a case study with LMN.

Getting Ready (Rebase)

Rebase is used to organise work prior to public review.

     $ geogig rebase locationtech/master

We are going through a similar step preparing the GeoGig project for release. The initial codebase has been checked over and is now available at github.com/locationtech/geogig. The second part of the review is checking all the software that is included with GeoGig.

The vast majority has been approved, or fixed and approved, and we are down to two difficult cases.

BDB JE

First up is replacing our use of Berkeley DB Java Edition, which at the time the project started was the best key/value embedded Java database we could find.

Here are some candidates for replacement:

  • MapDB
  • sqlite
  • leveldb

The architecture of GeoGig allows for different storage backends to be plugged-in. If you check the code base you can see graph databases and document databases such as mongodb are available.

The choice of a default storage technology for the local repository is difficult as we would like to balance performance (for working with large datasets) and portability (for mobile application use). Use of sqlite is especially attractive in this context as it opens the door to C/C++ use to allow easier writing of OGR drivers.

JLine

Geogig-console is currently dependent on the JLine2 library for interactive shell-like sessions, and we need to find an alternate library.

There are a number of options, such as apache-cli, but we do not expect the choice to have any impact on the use of geogig.

Release (Tag)

Tag is used to version a data product for release:

     $ geogig tag v1.0.0 -m “finally!”

GeoGig will have a short delay as the code-base is re-checked (for the changes during incubation along with any new sample data or dependencies).

Contact Us

If you are interested in the GeoGig project please sign up to geogig-dev and introduce yourself.

You can also catch Boundless directly, to discuss GeoGig or our other open source projects, at FOSS4G 2015, LocationTech Tour or EclipseCon Europe.

GeoGig1

Jody Garnett

Community Lead

Jody looks after our open source projects as a community lead here at Boundless. As a member of the engineering team he provides technical leadership and develops Boundless’ training program. He is a member of the Project Steering Committee for GeoServer and GeoTools. Jody is a board member of the Open Source Geospatial Foundation, and on the steering committee for LocationTech.