Open Source Geospatial Software Development
Helena Mitasova, Vaclav Petras, Anna Petrasova
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
Extensions, addons, modules, packages, and plugins
- code from broader community
Collaboration and communication
- github, historically mailing lists