Skip to content

Latest commit

 

History

History
143 lines (98 loc) · 4.68 KB

CONTRIBUTING.md

File metadata and controls

143 lines (98 loc) · 4.68 KB

Contributing to NiaPy

👍🎉 First off, thanks for taking the time to contribute! 🎉👍

Code of Conduct

This project and everyone participating in it is governed by the NiaPy Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].

How Can I Contribute?

Reporting Bugs

Before creating bug reports, please check existing issues list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible. Fill out the required template, the information it asks for helps us resolve issues faster.

Suggesting Enhancements

  • Open new issue
  • Write in details what enhancement would you like to see in the future
  • If you have technical knowledge, propose solution on how to implement enhancement

Pull requests

If you are not so familiar with Git or/and GitHub, we suggest you take a look at our beginner's guide.

  • Fill in the required template
  • Document new code
  • Make sure all the code goes through Flake8 without problems (run make check command)
  • Make sure PR builds goes through

Setup development environment

Requirements

Development dependencies

List of NiaPy's dependencies:

Package Version Platform
numpy 1.17.0 All
matplotlib 2.2.4 All
pandas 0.24.2 All
openpyxl 3.0.3 All

List of development dependencies:

Package Version Platform
flake8 Any Any
pycodestyle Any Any
pydocstyle Any Any
pytest ~=3.3 Any
pytest-describe Any Any
pytest-expecter Any Any
pytest-random Any Any
pytest-cov Any Any
freezegun Any Any
coverage-space Any Any
docutils Any Any
Pygments Any Any
wheel Any Any
twine Any Any
sniffer Any Any
sphinx Any Any
autopep8 Any Any
sphinx-autobuild Any Any

To confirm these system dependencies are configured correctly:

$ make doctor

Installation

Install project dependencies into a virtual environment:

$ make install

To enter created virtual environment with all installed dependencies run:

$ pipenv shell

Development Tasks

Testing

Manually run the tests:

$ make test

or keep them running on change:

$ make watch

In order to have OS X notifications, brew install terminal-notifier.

Documentation

Build the documentation:

$ make docs

Static Analysis

Run linters and static analyzers:

$ make flake8
$ make pycodestyle
$ make pydocstyle
$ make check  # includes all checks

Support

Usage Questions

If you have questions about how to use Niapy, or have an issue that isn’t related to a bug, you can place a question on StackOverflow.

You can also join us at our Slack Channel or seek support via email

NiaPy is a community supported package, nobody is paid to develop package nor to handle NiaPy support.

All people answering your questions are doing it with their own time, so please be kind and provide as much information as possible.