Contributor’s Guide#

If you’re reading this, you’re probably interested in contributing to Cybsi Cloud. Thank you very much!

Code Contributions#

Contributions will not be merged until they’ve been reviewed.

Please follow PEP-20 if you’re in doubt.

Formatting is performed using make lint. There are no compromises.

Documentation Contributions#

We publish documentation to ReadTheDocs. ReadTheDocs builds docs using python3.11 (so are we).

The documentation files live in the docs/ directory. Docs are written in reStructuredText, and use Sphinx to generate the full suite of documentation.

Documentation tools update#

To update documentation tools do:

  1. install docs dependencies make docs-tools;

  2. update dependencies at docs/requirements.in;

  3. use make update-docs-dependencies to update dependencies.

make update-docs-dependencies packs packages docs/requirements.in with its transitive dependencies to docs/requirements.txt. docs/requirements.txt contains complete list of packages with specific versions used to reproduce same documentation build environment.

See ReadTheDocs: Reproducible Builds for details.

Developer Environment Setup#

Run the following command:

$ make tools

This will create a virtualenv with all dependencies installed including documentation development tools.

After that you have to install isort’s plugin for your preferred text editor.

Releases#

We bump SDK version on every merge request.

The exceptions are changes not affecting API in any way (tests, small changes to documentation, and similar).

An author of a merge request must to the following:

  1. Bump version using rules. Use make bump-version $NEW_VERSION.

  2. Ensure everything builds nicely (make lint test build-docs)

Stable versions are published to PyPI using GitHub release workflow or manually.

To do manually, run this once:

$ poetry config repositories (TODO add repository)

And then use the following commands:

$ git checkout master && git pull
$ git tag v1.2.3a4  # See the actual version in pyproject.toml
$ poetry publish --build -r (TODO add repo name)
$ git push origin v1.2.3a4

Bug Reports & Feature Requests#

Please send them to Cybsi Cloud developers over github issues.