Use pre-commit to streamline development (#229)
* Use pre-commit to streamline development * Specify linting stage in travis config
This commit is contained in:
parent
b69dde56a3
commit
49a36a4de7
|
@ -0,0 +1,15 @@
|
||||||
|
repos:
|
||||||
|
|
||||||
|
- repo: https://github.com/psf/black
|
||||||
|
rev: stable
|
||||||
|
hooks:
|
||||||
|
- id: black
|
||||||
|
args: [--safe, --quiet]
|
||||||
|
language_version: python3
|
||||||
|
|
||||||
|
- repo: https://gitlab.com/pycqa/flake8
|
||||||
|
rev: 3.7.7
|
||||||
|
hooks:
|
||||||
|
- id: flake8
|
||||||
|
exclude: docs
|
||||||
|
language_version: python3
|
12
.travis.yml
12
.travis.yml
|
@ -8,16 +8,14 @@ jobs:
|
||||||
script: grunt test
|
script: grunt test
|
||||||
|
|
||||||
-
|
-
|
||||||
|
name: Linting
|
||||||
python: 3.7
|
python: 3.7
|
||||||
dist: xenial
|
dist: xenial
|
||||||
sudo: required
|
sudo: required
|
||||||
env: TOXENV=flake8
|
env: TOXENV=linting
|
||||||
|
cache:
|
||||||
-
|
directories:
|
||||||
python: 3.7
|
- $HOME/.cache/pre-commit
|
||||||
dist: xenial
|
|
||||||
sudo: required
|
|
||||||
env: TOXENV=black
|
|
||||||
|
|
||||||
-
|
-
|
||||||
python: 2.7
|
python: 2.7
|
||||||
|
|
1
Pipfile
1
Pipfile
|
@ -8,6 +8,7 @@ pytest = "*"
|
||||||
tox = "*"
|
tox = "*"
|
||||||
flake8 = "*"
|
flake8 = "*"
|
||||||
black = "*"
|
black = "*"
|
||||||
|
pre-commit = "*"
|
||||||
|
|
||||||
[packages]
|
[packages]
|
||||||
pytest-html = {editable = true,path = "."}
|
pytest-html = {editable = true,path = "."}
|
||||||
|
|
23
README.rst
23
README.rst
|
@ -253,28 +253,9 @@ Screenshots
|
||||||
Contributing
|
Contributing
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Fork the repository and submit PRs with bug fixes and enhancements, contributions are very welcome.
|
We welcome contributions.
|
||||||
|
|
||||||
Tests can be run locally with `tox`_, for example to execute tests for Python 2.7 and 3.6 execute::
|
To learn more, see `Development <https://github.com/pytest-dev/pytest-html/blob/master/development.rst>`_
|
||||||
|
|
||||||
tox -e py27,py36
|
|
||||||
|
|
||||||
|
|
||||||
.. _`tox`: https://tox.readthedocs.org/en/latest/
|
|
||||||
|
|
||||||
Releasing a new version
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Follow these steps to release a new version of the project:
|
|
||||||
|
|
||||||
1. Update your local master with the upstream master (``git pull --rebase upstream master``)
|
|
||||||
2. Create a new branch and update ``CHANGES.rst`` with the new version, today's date, and all changes/new features
|
|
||||||
3. Commit and push the new branch and then create a new pull request
|
|
||||||
4. Wait for tests and reviews and then merge the branch
|
|
||||||
5. Once merged, update your local master again (``git pull --rebase upstream master``)
|
|
||||||
6. Tag the release with the new release version (``git tag v<new tag>``)
|
|
||||||
7. Push the tag (``git push upstream --tags``)
|
|
||||||
8. Done. You can monitor the progress on `Travis <https://travis-ci.org/pytest-dev/pytest-html/>`_
|
|
||||||
|
|
||||||
Resources
|
Resources
|
||||||
---------
|
---------
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
Development
|
||||||
|
===========
|
||||||
|
|
||||||
|
To contribute to `pytest-html` you can use `Pipenv`_ to manage
|
||||||
|
a python virtual environment and `pre-commit <https://pre-commit.com/>`_ to help you with
|
||||||
|
styling and formatting.
|
||||||
|
|
||||||
|
To setup the virtual environment and pre-commit, run:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ pipenv install --dev
|
||||||
|
$ pipenv run pre-commit install
|
||||||
|
|
||||||
|
If you're not using `Pipenv`_, to install `pre-commit`, run:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ pip install pre-commit
|
||||||
|
$ pre-commit install
|
||||||
|
|
||||||
|
|
||||||
|
Automated Testing
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
All pull requests and merges are tested in `Travis CI <https://travis-ci.org/>`_
|
||||||
|
based on the ``.travis.yml`` file.
|
||||||
|
|
||||||
|
Usually, a link to your specific travis build appears in pull requests, but if
|
||||||
|
not, you can find it on the
|
||||||
|
`pull requests page <https://travis-ci.org/pytest-dev/pytest-html/pull_requests>`_
|
||||||
|
|
||||||
|
The only way to trigger Travis CI to run again for a pull request, is to submit
|
||||||
|
another change to the pull branch.
|
||||||
|
|
||||||
|
You can do this with `git commit --allow-empty`
|
||||||
|
|
||||||
|
Running Tests
|
||||||
|
-------------
|
||||||
|
|
||||||
|
You will need `Tox <http://tox.testrun.org/>`_ installed to run the tests
|
||||||
|
against the supported Python versions. If you're using `Pipenv`_ it will be
|
||||||
|
installed for you.
|
||||||
|
|
||||||
|
With `Pipenv`_, run:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ pipenv run tox
|
||||||
|
|
||||||
|
Otherwise, to install and run, do:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ pip install tox
|
||||||
|
$ tox
|
||||||
|
|
||||||
|
Releasing a new version
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Follow these steps to release a new version of the project:
|
||||||
|
|
||||||
|
1. Update your local master with the upstream master (``git pull --rebase upstream master``)
|
||||||
|
2. Create a new branch and update ``CHANGES.rst`` with the new version, today's date, and all changes/new features
|
||||||
|
3. Commit and push the new branch and then create a new pull request
|
||||||
|
4. Wait for tests and reviews and then merge the branch
|
||||||
|
5. Once merged, update your local master again (``git pull --rebase upstream master``)
|
||||||
|
6. Tag the release with the new release version (``git tag v<new tag>``)
|
||||||
|
7. Push the tag (``git push upstream --tags``)
|
||||||
|
8. Done. You can monitor the progress on `Travis <https://travis-ci.org/pytest-dev/pytest-html/>`_
|
18
tox.ini
18
tox.ini
|
@ -4,7 +4,7 @@
|
||||||
# and then run "tox" from this directory.
|
# and then run "tox" from this directory.
|
||||||
|
|
||||||
[tox]
|
[tox]
|
||||||
envlist = py{27,36,37,py,py3}{,-ansi2html}, flake8, black
|
envlist = py{27,36,37,py,py3}{,-ansi2html}, linting
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
setenv = PYTHONDONTWRITEBYTECODE=1
|
setenv = PYTHONDONTWRITEBYTECODE=1
|
||||||
|
@ -15,17 +15,11 @@ deps =
|
||||||
py{27,36,py,py3}-ansi2html: ansi2html
|
py{27,36,py,py3}-ansi2html: ansi2html
|
||||||
commands = pytest -v -r a {posargs}
|
commands = pytest -v -r a {posargs}
|
||||||
|
|
||||||
[testenv:flake8]
|
[testenv:linting]
|
||||||
skip_install = true
|
skip_install = True
|
||||||
basepython = python
|
basepython = python3
|
||||||
deps = flake8
|
deps = pre-commit
|
||||||
commands = flake8 {posargs:.}
|
commands = pre-commit run --all-files --show-diff-on-failure
|
||||||
|
|
||||||
[testenv:black]
|
|
||||||
skip_install = true
|
|
||||||
basepython = python
|
|
||||||
deps = black
|
|
||||||
commands = black --check {posargs:.}
|
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
max-line-length = 88
|
max-line-length = 88
|
||||||
|
|
Loading…
Reference in New Issue