Contributing to CyberGIS-Compute

Contributing to the SDK

First, consider if the change requires changes to the SDK (this repo), the Core (the server/backend) or both. We welcome contributions, but before you send a pull request, please check that your code meets our standards. Specifically:

Code Quality

We recommend using flake8 and you can check the Github workflow (.github/workflows/PythonQualityCheck.yml) to see any errors/warning you can safely ignore. Some resources for linting:

Code Tests

We have limited code tests to check for changes that break the SDK. Please check that your code passes our checks before submitting. If the changes you have made break our tests for a good reason, feel free submit the Pull Request and let us know!

We are also hoping to grow our test cases and welcome help on that end!

Tools for Testing Github Actions Locally

We prefer that contributions pass our Github actions, so here are some tips on checking they pass locally.

act

There are a variety of ways to install act, and once installed it offers a flexible tool for testing that your code passes Github actions. All commands should be run from the root of the repository.

  • List Github actions:

    > act -l
    Stage  Job ID       Job name             Workflow name        Workflow file            Events
    0      build        build                Python Code Test     PythonCodeTestCases.yml  push
    0      flake8-lint  Python Code Quality  Python Code Quality  PythonQualityCheck.yml   push
    
  • Run a specific action locally:

    > act -j <Jpb string>
    
  • Run all actions:

    > act
    

Contributing to the Docs

We welcome contributions to the documentation! Please ensure that any contributions are appropriate for this repository and not the many related projects: Related Projects

Our documentation is build with Sphinx and written in reStructuredText (Quick reference for RST).

After making changes, you can see what the site will look like by running make html from the docs/ folder.