Contributing Guidelines

First off, thanks for considering contributing to this project!

This plugin is quite specific to the data generated by the RAFT (River Assessment Field Team) program, which is run by the San Diego River Park Foundation. I took part in the Geospatial Data Collection and Analysis Program December 2025 through March 2026, and found myself craving a deeper dive into QGIS. Working on this independent project was a great way to do just that!

Want to dive in too? Here are some suggestions on what to do next:

  1. If you want to develop a foundation in QGIS, consider starting with a Gentle Introduction to GIS, the official training manual, and/or this friendly QGIS tutorial site. You can also open this file the QGIS python editor, and copy the commands into the Python console for a gentle introduction to the QGIS console.

  2. If you want to know a bit about automating QGIS workflows, challenge yourself to write a Python program that is launched from your commandline/terminal to preform the RAFT “trash join” step (IYKYK). Your program won’t be adopted by SDRPF, but it’s a useful learning exercise, and you can dogfood it! Start by writing your program in the QGIS Python console and integrated editor, then figure out what changes you need to make to run your program without actually opening QGIS.

  3. If you’re interested in QGIS plugin development, but getting a new plugin bootstrapped on your own is feeling a bit daunting: A number of issues have been added as potential future additions to this plugin. You can fork the repository, get local development set up as described here, and give it a go! Depending on your level of experience with coding, there can be a lot of useful skills to learn as part of that process (Basic GIS, QGIS, Git, Python, Github workflows, PyQt user interfaces)!

  4. If you have some familiarity with a few of the skills described above, you can go about the process of generating your own QGIS plugin using the QGIS Plugin templater. While there are several different ways to get started with plugin development, I found this one to be the most modern and friendliest. You can also start with the QGIS Minimalist Plugin and build from the ground up.

You got this!

Git hooks

This repository uses git hooks through pre-commit to enforce and automatically check some “rules”. Please install them (pre-commit install) before to push any commit.

See the relevant configuration file: .pre-commit-config.yaml.

Code Style

Make sure your code roughly follows PEP-8 and keeps things consistent with the rest of the code:

  • docstrings: sphinx-style is used to write technical documentation.

  • formatting: black is used to automatically format the code without debate.

  • sorted imports: isort is used to sort imports

  • static analysis: flake8 is used to catch some dizziness and keep the source code healthy.