Open Source Geospatial Software Development

Helena Mitasova, Vaclav Petras, Anna Petrasova

GIS714 Geosimulations NCSU

Learning objectives

FOGSS projects origins: examples

  • single developer, projects attracts more developers and builds formal contributor structures
  • government funded project
  • industry releases existing proprietary software as open source (e.g. MAXENT by IBM)

Mature FOGSS projects

  • Maintainers and core developers
  • Project steering committee
  • Broad community of developers
  • Broad community of users

Close collaboration between developers and users

Development Management Tools

  • Version control systems and source code hosting: Git, GitHub, GitLab
  • Quality control, testing, and reviews: static code analysis tools, linters, automated and manual testing
  • Latest development versions are publicly available: any user can evaluate new version before a release is made.
  • Results of the tests and reviews are also publicly available.

Release, packaging, and distribution

  • new release is tagged in the version control system
  • building binaries and executables from the source code
  • packaging compile-time and runtime dependencies, integration with other software or operating systems, creation of installers
  • containerization (operating-system-level virtualization): Docker
  • distribution of software for specific domains or operating systems such as Anaconda

Documentation, manuals, and tutorials

  • Wiki, Doxygen

Extensions, addons, modules, packages, and plugins

  • code from broader community

Collaboration and communication

  • github, historically mailing lists

OSGeo

Open Source Geospatial Foundation: umbrella organization for open source geospatial projects - - you are almost for sure using software from the OSGeo Software Ecosystem:

  • Graduated OSGeo projects which passed the incubation process
  • OSGeo Community Projects

Resources