Skip to content
Snippets Groups Projects
CONTRIBUTING.rst 3.56 KiB
Newer Older
Malte Nyhuis's avatar
Malte Nyhuis committed
============
Contributing
============

Contributions are welcome, and they are greatly appreciated! Every little bit
helps, and credit will always be given.

You can contribute in many ways:

Types of Contributions
----------------------

Report Bugs
~~~~~~~~~~~

Malte Nyhuis's avatar
Malte Nyhuis committed
Report bugs at  https://gitlab.uni-hannover.de/tfd_public/tools/NTRfC/-/issues
Malte Nyhuis's avatar
Malte Nyhuis committed

If you are reporting a bug, please include:

* Your operating system name and version.
* Any details about your local setup that might be helpful in troubleshooting.
* Detailed steps to reproduce the bug.

Fix Bugs
~~~~~~~~

Malte Nyhuis's avatar
Malte Nyhuis committed
Look through the issues for bugs. Anything tagged with "bug" and "help
Malte Nyhuis's avatar
Malte Nyhuis committed
wanted" is open to whoever wants to implement it.

Implement Features
~~~~~~~~~~~~~~~~~~

Malte Nyhuis's avatar
Malte Nyhuis committed
Start your own feature development or look through the gitlab issues for feature-developments.
Feel free to create feature branches and merge requests.
Before a merge request, run the whole test-library.
If you can't figure out why tests are not running through, write an issue.
Malte Nyhuis's avatar
Malte Nyhuis committed

Write Documentation
~~~~~~~~~~~~~~~~~~~

Malte Nyhuis's avatar
Malte Nyhuis committed
NTRfC could always use more documentation, whether as part of the official NTRfC docs, in docstrings, or even on the web in blog posts, articles, and such.
Malte Nyhuis's avatar
Malte Nyhuis committed

Submit Feedback
~~~~~~~~~~~~~~~

Malte Nyhuis's avatar
Malte Nyhuis committed
The best way to send feedback is to file an issue at https://gitlab.uni-hannover.de/tfd_public/tools/NTRfC/-/issues .
Malte Nyhuis's avatar
Malte Nyhuis committed

If you are proposing a feature:

* Explain in detail how it would work.
* Keep the scope as narrow as possible, to make it easier to implement.
* Remember that this is a volunteer-driven project, and that contributions
  are welcome :)

Get Started!
------------

Ready to contribute? Here's how to set up `ntrfc` for local development.

Malte Nyhuis's avatar
Malte Nyhuis committed
1. Fork the `ntrfc` repo on a gitlab instance.
Malte Nyhuis's avatar
Malte Nyhuis committed
2. Clone your fork locally::

Malte Nyhuis's avatar
Malte Nyhuis committed
    $ git clone https://gitlab.uni-hannover.de/your_name_here/ntrfc.git
Malte Nyhuis's avatar
Malte Nyhuis committed

3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development::

    $ mkvirtualenv ntrfc
    $ cd ntrfc/
    $ python setup.py develop

4. Create a branch for local development::

    $ git checkout -b name-of-your-bugfix-or-feature

   Now you can make your changes locally.

5. When you're done making changes, check that your changes pass flake8 and the
   tests, including testing other Python versions with tox::

    $ flake8 ntrfc tests
    $ python setup.py test or pytest
    $ tox

   To get flake8 and tox, just pip install them into your virtualenv.

Malte Nyhuis's avatar
Malte Nyhuis committed
6. Commit your changes and push your branch to GitLab::
Malte Nyhuis's avatar
Malte Nyhuis committed

    $ git add .
    $ git commit -m "Your detailed description of your changes."
    $ git push origin name-of-your-bugfix-or-feature

Malte Nyhuis's avatar
Malte Nyhuis committed
7. Submit a pull request through the GitLab website.
Malte Nyhuis's avatar
Malte Nyhuis committed

Pull Request Guidelines
-----------------------

Before you submit a pull request, check that it meets these guidelines:

1. The pull request should include tests.
2. If the pull request adds functionality, the docs should be updated. Put
   your new functionality into a function with a docstring, and add the
   feature to the list in README.rst.
Malte Nyhuis's avatar
Malte Nyhuis committed
3. The pull request should work for Python 3.10, and for PyPy. Check
Malte Nyhuis's avatar
Malte Nyhuis committed
   https://travis-ci.com/MaNyh/ntrfc/pull_requests
   and make sure that the tests pass for all supported Python versions.

Tips
----

To run a subset of tests::

$ pytest tests.test_ntrfc


Deploying
---------

A reminder for the maintainers on how to deploy.
Make sure all your changes are committed (including an entry in HISTORY.rst).
Then run::

$ bump2version patch # possible: major / minor / patch
$ git push
$ git push --tags

Travis will then deploy to PyPI if tests pass.