pdfminer.six/CONTRIBUTING.md

77 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

2019-07-08 21:03:47 +00:00
# Contributing guidelines
Any contribution is appreciated! You might want to:
* Fix spelling errors
* Improve documentation
* Add tests for untested code
* Add new features
* Fix bugs
## How can I contribute?
* Use [issues](https://github.com/pdfminer/pdfminer.six/issues) to report bugs and features
- If you report a bug in the results for a particular pdf, include that pdf. This allows others to replicate the
issue.
2019-10-20 12:18:26 +00:00
* Fix issues by [creating pull requests](https://help.github.com/en/articles/creating-a-pull-request).
Enforce pep8 coding-style (#345) * Code Refractor: Use code-style enforcement #312 * Add flake8 to travis-ci * Remove python 2 3 comment on six library. 891 errors > 870 errors. * Remove class and functions comments that consist of just the name. 870 errors > 855 errors. * Fix flake8 errors in pdftypes.py. 855 errors > 833 errors. * Moving flake8 testing from .travis.yml to tox.ini to ensure local testing before commiting * Cleanup pdfinterp.py and add documentation from PDF Reference * Cleanup pdfpage.py * Cleanup pdffont.py * Clean psparser.py * Cleanup high_level.py * Cleanup layout.py * Cleanup pdfparser.py * Cleanup pdfcolor.py * Cleanup rijndael.py * Cleanup converter.py * Rename klass to cls if it is the class variable, to be more consistent with standard practice * Cleanup cmap.py * Cleanup pdfdevice.py * flake8 ignore fontmetrics.py * Cleanup test_pdfminer_psparser.py * Fix flake8 in pdfdocument.py; 339 errors to go * Fix flake8 utils.py; 326 errors togo * pep8 correction for few files in /tools/ 328 > 160 to go (#342) * pep8 correction for few files in /tools/ 328 > 160 to go * pep8 correction: 160 > 5 to go * Fix ascii85.py errors * Fix error in getting index from target that does not exists * Remove commented print lines * Fix flake8 error in pdfinterp.py * Fix python2 specific error by removing argument from print statement * Ignore invalid python2 syntax * Update contributing.md * Added changelog * Remove unused import Co-authored-by: Fakabbir Amin <f4amin@gmail.com>
2019-12-29 20:20:20 +00:00
* Help others by sharing your thoughs in comments on issues and pull requests.
2020-03-08 13:53:16 +00:00
* Join the chat on [gitter](https://gitter.im/pdfminer-six/Lobby)
2019-07-08 21:03:47 +00:00
2019-10-20 12:18:26 +00:00
## Guidelines for creating issues
2019-07-08 21:03:47 +00:00
* Search previous issues, as yours might be a duplicate.
* When creating a new issue for a bug, include a minimal reproducible example.
* When creating a new issue for a feature, be sure to describe the context of the problem you are trying to solve. This
will help others to see the importance of your feature request.
2019-10-20 12:18:26 +00:00
## Guideline for creating pull request
* A pull request should close an existing issue.
* Pull requests should be merged to master. Version tags are used indicate the releases.
* Include unit tests when possible. In case of bugs, this will help to prevent the same mistake in the future. In case
2019-07-08 21:03:47 +00:00
of features, this will show that your code works correctly.
* Code should work for Python 3.6+.
* Code should be formatted with [black](https://github.com/psf/black).
* New features should be well documented using docstrings.
* Check spelling and grammar.
2019-10-20 12:18:26 +00:00
* Don't forget to update the [CHANGELOG.md](CHANGELOG.md#[Unreleased])
Enforce pep8 coding-style (#345) * Code Refractor: Use code-style enforcement #312 * Add flake8 to travis-ci * Remove python 2 3 comment on six library. 891 errors > 870 errors. * Remove class and functions comments that consist of just the name. 870 errors > 855 errors. * Fix flake8 errors in pdftypes.py. 855 errors > 833 errors. * Moving flake8 testing from .travis.yml to tox.ini to ensure local testing before commiting * Cleanup pdfinterp.py and add documentation from PDF Reference * Cleanup pdfpage.py * Cleanup pdffont.py * Clean psparser.py * Cleanup high_level.py * Cleanup layout.py * Cleanup pdfparser.py * Cleanup pdfcolor.py * Cleanup rijndael.py * Cleanup converter.py * Rename klass to cls if it is the class variable, to be more consistent with standard practice * Cleanup cmap.py * Cleanup pdfdevice.py * flake8 ignore fontmetrics.py * Cleanup test_pdfminer_psparser.py * Fix flake8 in pdfdocument.py; 339 errors to go * Fix flake8 utils.py; 326 errors togo * pep8 correction for few files in /tools/ 328 > 160 to go (#342) * pep8 correction for few files in /tools/ 328 > 160 to go * pep8 correction: 160 > 5 to go * Fix ascii85.py errors * Fix error in getting index from target that does not exists * Remove commented print lines * Fix flake8 error in pdfinterp.py * Fix python2 specific error by removing argument from print statement * Ignore invalid python2 syntax * Update contributing.md * Added changelog * Remove unused import Co-authored-by: Fakabbir Amin <f4amin@gmail.com>
2019-12-29 20:20:20 +00:00
## Guidelines for posting comments
* [Be cordial and positive](https://www.kennethreitz.org/essays/be-cordial-or-be-on-your-way)
2019-10-20 12:18:26 +00:00
## Getting started
1. Clone the repository
```sh
git clone https://github.com/pdfminer/pdfminer.six
cd pdfminer.six
```
2019-10-20 12:18:26 +00:00
2. Install dev dependencies
2019-10-20 12:18:26 +00:00
```sh
pip install -e .[dev]
```
2019-10-20 12:18:26 +00:00
3. Run the tests
2019-10-20 12:18:26 +00:00
On all Python versions:
2019-10-20 12:18:26 +00:00
```sh
nox
2019-10-20 12:18:26 +00:00
```
Or on a single Python version:
```sh
nox -e py36
2019-10-20 12:18:26 +00:00
```
4. After changing the code, run the black formatter.
```sh
black .
```