tqdm/CONTRIBUTE

95 lines
2.5 KiB
Plaintext

HOW TO CONTRIBUTE TO TQDM
=========================
This file describes how to contribute changes to the project, and how to
upload to the pypi repository.
Most of the management commands have been directly placed inside the
Makefile: `python setup.py make [alias]`, (or simply `make [alias]` in
UNIX-like environments).
Note: to use the Makefile on Windows, you need to install make.exe,
for example by installing [MinGW MSYS](http://www.mingw.org/wiki/msys).
HOW TO COMMIT YOUR CONTRIBUTIONS
--------------------------------
Contributions to the project are made using the "Fork & Pull" model. The
typical steps would be:
- create an account on [github](https://github.com)
- fork [tqdm](https://github.com/tqdm/tqdm)
- make a local clone: `git clone https://github.com/your_account/tqdm.git`
- make your changes on your local copy
- commit your changes `git commit -a -m "my message"`
- TEST YOUR CHANGES (see below)
- `push` to your github account: `git push origin`
- finally, create a Pull Request (PR) from your github fork
(go to your fork's webpage and click on "Pull Request."
You can then add a message to describe your proposal.)
TESTING
-------
To test functionality on your machine (such as before submitting a Pull
Request), there are a number of unit tests.
Standard unit testing
~~~~~~~~~~~~~~~~~~~~~
The standard way to run the tests:
- install `tox`
- `cd` to the root of the `tqdm` directory (in the same folder as this file)
- run the following command:
```
python setup.py make test
```
or
```
make test
```
or
```
tox --skip-missing-interpreters
```
This will build the module and run the tests in a virtual environment.
Errors and coverage rates will be output to the console/log. (Ignore missing
interpreters errors - these are due to the local machine missing certain
versions of Python.)
Note: to install all versions of the Python interpreter that are specified
in [tox.ini](https://raw.githubusercontent.com/tqdm/tqdm/master/tox.ini),
you can use `MiniConda` to install a minimal setup. You must also make sure
that each distribution has an alias to call the Python interpreter:
`python27` for Python 2.7's interpreter, `python32` for Python 3.2's, etc.
Alternative unit testing with Nose
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Alternatively, use `nose` to run the tests just for your Python version:
- install `nose` and `flake8`
- run the following command:
```
python setup.py make alltests
```
or
```
nosetests --with-coverage --cover-package=tqdm -v tqdm/
python -m flake8 tqdm/_tqdm.py
```