LIVVkit

Contributing

LIVVkit is publicly developed within the LIVVkit project on GitHub and releases are packaged and distributed on PyPI and Anaconda Cloud.

Workflow

There are two encouraged ways to contribute to the development of LIVVkit:

1. Become a core developer

If you have many contributions and are planning on being an active developer, you may request to become a core developer by opening an issue on github and briefly describ your intended contribution goals. Once approved, you will be given push access to the LIVVkit/LIVVkit repository (and any other needed repositories).

When developing the code, please follow the GitFlow workflow and make all your changes in a feature branch. Feature branches should follow the #-username-feature naming convention, where # indicates the issue being addressed (optional).

If you have any questions, concerns, requests, etc., open an issue in our issues queue, and we will help you out.

2. For outside contributions

For one-off or infrequent contributions, please use the Forking Workflow to add contributions to LIVVkit.

First, go to the LIVVkit github page and push the Fork button on the top right of the page. This will create a fork of LIVVkit in your profile page. Clone the fork, make your changes, merge them to development branch, and then submit a pull request to our public repository.

If you have any questions, concerns, requests, etc., open an issue in our public issues queue, and we will help you out.

Code Guidelines

LIVVkit 3.0+ will be developed and tested on the three latest Python versions (3.6–3.8 for LIVVkit 3.0). Additionally, We generally follow PEP 8 guidelines as presented at pep8.org, with the exception of line lengths: lines have a soft limit of 100 characters and a hard limit of 120 characters when extra length improves readability. We use the Google Style for our Docstrings. A sample code snippet below highlights most of our coding conventions.

# coding=utf-8
# LICENSE...

"""
Description of module
"""

import pymodule
import pymodule2

import livvmodule


class ClassName(object):
    """
    Class descriptions
    """


    def __init__(self):
        """ Constructor """
        self.var = "value"
        self.auto = "nalue"
        self.bagger = "salue"
        self.autocrummify = "dalue"


    @functionAnnotation
    def foo(self, bar, baz):
        """
        A description of foo.

        Args:
            bar: What is this.
            baz: What is this.
        Returns:
            a combo of bar and baz
        """
        # Some extra logic
        return bar + baz

Building the documentation

To build this documentation you will need to install some additional tools:

We recommend you use npm, a Javascript package manager, to install JSDoc:

npm install -g jsdoc

and pip to install the development version of LIVVkit:

git clone git@github.com:LIVVkit/LIVVkit.git
cd LIVVkit
pip install -e .[develop]

To build the current version of the documentation website, simply run:

make html

from within the documentation directory.

When changes are made to the LIVVkit code base, the auto-generated files will need to be regenerated. First, you can clean out the old website and remove the auto-generated files by running:

make distclean

Warning

If you run this command you will need to regenerate all the auto-generated files! make clean will only remove the old website and leave the autogenerated files in place.

Then, auto-generate the documentation of LIVVkit’s Python source code:

sphinx-apidoc -f -o source/ ../livvkit/

Now you’re ready to make the docs website again:

make html

Note

You can use the generate_docs.sh script to perform these steps.