Contributing#
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given. The following helps you to start contributing specifically to sofar. Please also consider the general contributing guidelines for example regarding the style of code and documentation and some helpful hints.
Types of Contributions#
Report Bugs or Suggest Features#
The best place for this is pyfar/sofar#issues.
Fix Bugs or Implement Features#
Look through pyfar/sofar#issues for bugs or feature request and contact us or comment if you are interested in implementing.
Write Documentation#
sofar could always use more documentation, whether as part of the official sofar docs, in docstrings, or even on the web in blog posts, articles, and such.
Get Started!#
Ready to contribute? Here’s how to set up sofar for local development using the command-line interface. Note that several alternative user interfaces exist, e.g., the Git GUI, GitHub Desktop, extensions in Visual Studio Code …
Fork the sofar repo on GitHub.
Clone your fork locally and cd into the sofar directory:
$ git clone --recursive https://github.com/YOUR_USERNAME/sofar.git $ cd sofar
Note that some graphical Git interfaces can not do the recursive clone. If the folder sofar/sofa_conventions is empty try:
$ git submodule update --init
Install your local copy into a virtualenv. Assuming you have Anaconda or Miniconda installed, this is how you set up your fork for local development:
$ conda create --name sofar python $ conda activate sofar $ conda install pip $ pip install -e . $ pip install -r requirements_dev.txt
Create a branch for local development. Indicate the intention of your branch in its respective name (i.e. feature/branch-name or bugfix/branch-name):
$ git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
When you’re done making changes, check that your changes pass ruff and the tests:
$ ruff check $ pytest
ruff must pass without any warnings for ./sofar and ./tests using the default or a stricter configuration. Ruff ignores a couple of PEP Errors (see ./pyproject.toml). If necessary, adjust your linting configuration in your IDE accordingly.
Commit your changes and push your branch to GitHub:
$ git add . $ git commit -m "Your detailed description of your changes." $ git push origin name-of-your-bugfix-or-feature
Submit a pull request on the develop branch through the GitHub website.
Submodules#
To update the submodule containing the conventions and verification rules run
$ git submodule update --init --recursive
$ git submodule update --recursive --remote
and then commit the changes