For Developers

Setup

The section Getting Started will provide you with detailed guidance on how to install \(\omega radlib\) and the required dependencies for different operating systems (MS Windows, Linux, Mac OS). \(\omega radlib\) 0.10.0 has been tested with the latest Anaconda Python on linux-64, osx-64 and MS Windows 32 and 64 versions.

As a developer, though, you should rather link into \(\omega radlib\)‘s version control. This way, it will be easier for you to track changes and to contribute your changes to \(\omega radlib\)‘s main respository (see next section). Just install Git, then clone the \(\omega radlib\) repository to your local system by executing the following command in your shell: git clone https://github.com/wradlib/wradlib.git. Do not forget to set the PYTHONPATH to point to the corresponding directory.

Contributing to \(\omega radlib\)

Everyone can contribute to the developement of \(\omega radlib\) by using the Fork and Pull model. For this purpose, you need to set up Git (see section Setup). Then see section Community for further instructions on how to create a Pull Request.

Building the docs

In order to build the documentation, you need to satisfy a few more dependencies which are mainly related to Sphinx. These are specified in the requirements.txt and requirements_devel.txt.

Once these requirements are met, you can open a console window in the folder wradlib/doc and execute make html. This will give you the latest documentation under the wradlib/doc/build/html directory. Simply open the index.html file to view the documentation.

Testing

\(\omega radlib\) uses the unittest framework. New functions should come with corresponding unittests in the wradlib/wradlib/tests directory. Just have a look at available tests to get an idea. In addition, examples and docstrings are a good way to combine testing and documentation. Have a look at the notebooks in order to get an idea on how to set these up correctly. In the docstrings, the Examples section will be tested by our testing framework. This could look like this:

def foo(a):
        """Docstring to be evaluated by doctest

        Examples
        --------
        >>> from wradlib.some_module import foo
        >>> print(foo(3))
        4
        """
        return a + 1

Continuous Integration

We use Travis_CI for Continuous Integration (CI). CI means, in our case, that each commit pushed to \(\omega radlib\)‘s main repository will trigger the test suites on Travis-CI. If all tests pass successfully, a new documentation will be built and published on http://wradlib.org/wradlib-docs. In case a new release tag is associated with a commit, a new release will be distributed via PyPI. For further testing, with every bump of the version’s MICRO-part a test-release is distributed via Test-PyPI.