Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add/update release and contributor howtos and adapt to how pytest does stuff #636

Merged
merged 58 commits into from
Sep 29, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
d755133
pyproject: categories and fine tuning
obestwalter Sep 15, 2017
e4214c1
add own towncrier template and changelog dir
obestwalter Sep 15, 2017
78a3cb0
repair changelog and add preamble about versioning, compat and projects
obestwalter Sep 15, 2017
8dd7bf1
make sure h1 is h1 in changelog
obestwalter Sep 15, 2017
03a1926
towncrier changes
obestwalter Sep 15, 2017
5d5f107
remove old formatters
obestwalter Sep 15, 2017
6d1f008
add towncrier readme
obestwalter Sep 15, 2017
0f4ce06
example
obestwalter Sep 15, 2017
93afb81
add little script to render user name links in news
obestwalter Sep 15, 2017
d23645e
don't rerender
obestwalter Sep 15, 2017
6b53ba3
remove trailing whitespace
obestwalter Sep 15, 2017
757b8ba
add filename
obestwalter Sep 15, 2017
efb86be
formatting
obestwalter Sep 15, 2017
16d924a
add wip release helper
obestwalter Sep 15, 2017
6eb0022
replace user, issues and prs with links
obestwalter Sep 15, 2017
c373e4b
add a rudimentary readme for contrib
obestwalter Sep 15, 2017
70fb1d7
add a rudimentary readme for contrib
obestwalter Sep 15, 2017
9bb2405
Merge remote-tracking branch 'origin/towncrier-fixes' into towncrier-…
obestwalter Sep 15, 2017
f879994
working on release script
obestwalter Sep 15, 2017
5979412
fix up release helpers
obestwalter Sep 15, 2017
025c713
fix link in readme
obestwalter Sep 15, 2017
e840bc8
nming things, remove unused variable
obestwalter Sep 15, 2017
97eee4b
fix version param
obestwalter Sep 15, 2017
6f13229
add tox env for release
obestwalter Sep 15, 2017
7a847b8
remove installation - done in tox env
obestwalter Sep 15, 2017
edce441
fix running release-helper in toxenv
obestwalter Sep 15, 2017
f853959
re-add 2.8.2 entry that has gone missing
obestwalter Sep 17, 2017
3b8e9c5
scripts and docs for release process
obestwalter Sep 17, 2017
e75d21d
remove unnecessary devpi adjustments
obestwalter Sep 17, 2017
49c7cb7
fix towncrier draft check as part of sphinx build
obestwalter Sep 17, 2017
3eb465d
trim description
obestwalter Sep 17, 2017
aab3457
fix formatting
obestwalter Sep 17, 2017
29b26e9
fix link
obestwalter Sep 17, 2017
27f6104
Merge branch 'master' into towncrier-fixes
obestwalter Sep 17, 2017
1be43e6
docs fixes
obestwalter Sep 18, 2017
be2a772
docs fixes
obestwalter Sep 18, 2017
70c53b0
Merge remote-tracking branch 'origin/towncrier-fixes' into towncrier-…
obestwalter Sep 18, 2017
cac5a2e
remove obsolete fragments inclusion
obestwalter Sep 18, 2017
649806b
remove unnecessary readme
obestwalter Sep 18, 2017
94b45c4
remove unnecessary distinction between issue and pr
obestwalter Sep 18, 2017
f5bec2b
shamelessly steal contributing from pytest to adapt for tox
obestwalter Sep 19, 2017
c02d1d0
s/pytest/tox
obestwalter Sep 19, 2017
5914743
remove branching info - does not apply to tox
obestwalter Sep 19, 2017
eca3241
fix line endings
obestwalter Sep 19, 2017
61fa107
fix changelog location (like in pytest project)
obestwalter Sep 19, 2017
eb78266
contributor docs, templates, towncrier fixes, adjust envname to pytest
obestwalter Sep 19, 2017
d81bb2d
Sort contributors alphabetically like pytest does it
obestwalter Sep 19, 2017
e827081
prune, refine and reorder contributor docs
obestwalter Sep 19, 2017
7b817a2
refine towncrier docs
obestwalter Sep 19, 2017
7d58da5
fix typo in contributor name
obestwalter Sep 19, 2017
ef92169
fix grammar
obestwalter Sep 20, 2017
1e6fed4
fix code block declaration
obestwalter Sep 20, 2017
0eb3f43
removed one colon too much
obestwalter Sep 20, 2017
926fdb4
revert unnecessary assignment
obestwalter Sep 20, 2017
8f99b1d
fix env name for style checks
obestwalter Sep 20, 2017
f521c84
fix typo in pre-commit hint
obestwalter Sep 20, 2017
a873eaf
just alias main until (if ever) more functions grow here.
obestwalter Sep 20, 2017
b773726
Merge branch 'master' into towncrier-fixes
obestwalter Sep 29, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 20 additions & 6 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,22 @@
Thanks for contributing a PR!
## Thanks for contributing a pull request!

Here's a quick checklist of what we'd like you to think off:
If you are contributing for the first time or provide a trivial fix don't worry too
much about the checklist - we will help you get started.

- [ ] Make sure to include one or more tests for your change;
- [ ] if an enhancement PR please create docs and at best an example
- [ ] Add yourself to `CONTRIBUTORS`;
- [ ] make a descriptive Pull Request text (it will be used for changelog)
## Contribution checklist:

(also see [CONTRIBUTING.rst](https://github.com/tox-dev/tox/tree/master/CONTRIBUTING.rst) for details)

- [ ] wrote descriptive pull request text
- [ ] added/updated test(s)
- [ ] updated/extended the documentation
- [ ] added relevant [issue keyword](https://help.github.com/articles/closing-issues-using-keywords/)
in message body
- [ ] added news fragment in [changelog folder](https://github.com/tox-dev/tox/tree/master/changelog)
* fragment name: `<issue number>.<type>.rst` for example (588.bugfix.rst)
* `<type>` is must be one of `bugfix`, `feature`, `deprecation`,`breaking`, `doc`, `misc`
* if pr has no issue: consider creating one first or change it to the pr number after creating the pr
* "sign" fragment with "by @<your username>"
* please use full sentences with correct case and punctuation, for example: "Fix issue with non-ascii contents in doctest text files - by @superuser."
* also see [examples](https://github.com/tox-dev/tox/tree/master/changelog/examples.rst)
- [ ] added yourself to `CONTRIBUTORS` (preserving alphabetical order)
412 changes: 209 additions & 203 deletions CHANGELOG.rst

Large diffs are not rendered by default.

238 changes: 238 additions & 0 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
Contribution getting started
============================

Contributions are highly welcomed and appreciated. Every little help counts,
so do not hesitate! If you like tox, also share some love on Twitter or in your blog posts.

.. contents:: Contribution links
:depth: 2

.. _submitfeedback:

Feature requests and feedback
-----------------------------

We'd also like to hear about your propositions and suggestions. Feel free to
`submit them as issues <https://github.com/tox-dev/tox/issues>`_ and:

* Explain in detail how they should work.
* Keep the scope as narrow as possible. This will make it easier to implement.

.. _reportbugs:

Report bugs
-----------

Report bugs for tox in the `issue tracker <https://github.com/tox-dev/tox/issues>`_.

If you are reporting a bug, please include:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe point out here that tox -v contains most of this information, so they don't have to come up with it from the top of their head


* Your operating system name and version.
* Any details about your local setup that might be helpful in troubleshooting,
specifically the Python interpreter version, installed libraries, and tox
version.
* Detailed steps to reproduce the bug, or - even better, a n xfaling test reproduces the bug

If you can write a demonstration test that currently fails but should pass
(xfail), that is a very useful commit to make as well, even if you cannot
fix the bug itself (e.g. something like this in
`test_config <https://github.com/tox-dev/tox/blob/2.8.2/tests/test_config.py#L2206>)`_

.. _fixbugs:

Fix bugs
--------

Look through the GitHub issues for bugs. Here is a filter you can use:
https://github.com/tox-dev/tox/labels/bug

Don't forget to check the issue trackers of your favourite plugins, too!

.. _writeplugins:

Implement features
------------------

Look through the GitHub issues for enhancements. Here is a filter you can use:
https://github.com/tox-dev/tox/labels/enhancement

Write documentation
-------------------

tox could always use more documentation. What exactly is needed?

* More complementary documentation. Have you perhaps found something unclear?
* Docstrings. There can never be too many of them.
* Blog posts, articles and such -- they're all very appreciated.

You can also edit documentation files directly in the GitHub web interface,
without using a local copy. This can be convenient for small fixes.

.. note::
Build the documentation locally with the following command:

.. code:: bash

$ tox -e docs

The built documentation should be available in the ``doc/_build/``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

have we changed this, I would but it under the env, so it gets cleaned up together; aka under .tox/doc. I prefer to keep the working directory clean, and have a single temporary/building directory, which already is .tox


.. _submitplugin:

.. _`pull requests`:
.. _pull-requests:

Preparing Pull Requests
-----------------------

Short version
^^^^^^^^^^^^^

#. `Fork the repository<https://help.github.com/articles/fork-a-repo/>`_
#. Make your changes.
#. open a `pull request <https://help.github.com/articles/about-pull-requests/>`_ targeting the ``master`` branch.
#. Follow **PEP-8**. There's a ``tox`` command to help fixing it: ``tox -e fix-lint``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably also mention that we have a style check tox environment that warn about non fixes, e.g. flake8

You can also add a pre commit hook to your local clone to run the style checks and fixes
(see hint after running ``tox -e fix-lint``)
#. Tests for tox are (obvioulsy) run using ``tox``::

tox -e fix-lint,py27,py36

The test environments above are usually enough to cover most cases locally.

#. Consider the
`checklist <https://github.com/Avira/tox/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_
in the pull request form

Long version
^^^^^^^^^^^^

What is a "pull request"? It informs the project's core developers about the
changes you want to review and merge. Pull requests are stored on
`GitHub servers <https://github.com/tox-dev/tox/pulls>`_.
Once you send a pull request, we can discuss its potential modifications and
even add more commits to it later on. There's an excellent tutorial on how Pull
Requests work in the
`GitHub Help Center <https://help.github.com/articles/using-pull-requests/>`_.

Here is a simple overview, with tox-specific bits:

#. Fork the
`tox GitHub repository <https://github.com/tox-dev/tox>`__. It's
fine to use ``tox`` as your fork repository name because it will live
under your user.

#. Clone your fork locally using `git <https://git-scm.com/>`_ and create a branch::

$ git clone [email protected]:YOUR_GITHUB_USERNAME/tox.git
$ cd tox
# now, to fix a bug create your own branch off "master":

$ git checkout -b your-bugfix-branch-name master

# or to instead add a feature create your own branch off "features":

$ git checkout -b your-feature-branch-name features

If you need some help with Git, follow this quick start
guide: https://git.wiki.kernel.org/index.php/QuickStart

#. Install tox

Of course tox is used to run all the tests of itself::

$ cd </path/to/your/tox/clone>
$ pip install [-e] .

#. Run all the tests

You need to have Python 2.7 and 3.6 available in your system. Now
running tests is as simple as issuing this command::

$ tox -e fix-lint,py27,py36

This command will run tests via the "tox" tool against Python 2.7 and 3.6
and also perform style checks with some automatic fixes.

#. You can now edit your local working copy. Please follow PEP-8.

You can now make the changes you want and run the tests again as necessary.

$ tox -e py27 -- --pdb

Or to only run tests in a particular test module on Python 3.6::

$ tox -e py36 -- testing/test_config.py

You can also use the dev environment:

$ tox -e dev

To get information about all environements, type:

$ tox -av

#. Commit and push once your tests pass and you are happy with your change(s)::

$ git commit -a -m "<commit message>"
$ git push -u


#. submit a pull request through the GitHub website and and consider the `checklist <https://github.com/Avira/tox/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_ in the pull request form::

head-fork: YOUR_GITHUB_USERNAME/tox
compare: your-branch-name

base-fork: tox-dev/tox
base: master

Submitting plugins to tox-dev
-----------------------------

tox development of the core, some plugins and support code happens
in repositories living under the ``tox-dev`` organisation:

- `tox-dev on GitHub <https://github.com/tox-dev>`_

All tox-dev team members have write access to all contained
repositories. tox core and plugins are generally developed
using `pull requests`_ to respective repositories.

The objectives of the ``tox-dev`` organisation are:

* Having a central location for popular tox plugins
* Sharing some of the maintenance responsibility (in case a maintainer no
longer wishes to maintain a plugin)

You can submit your plugin by opening an `issue <https://github.com/tox-dev/tox/issues/new>`_
requesting to add you as a member of tox-dev to be able to integrate the plugin.
As a member of the or you can then transfer the plugin yourself.

The plugin must have the following:

- PyPI presence with a ``setup.py`` that contains a license, ``tox-``
prefixed name, version number, authors, short and long description.

- a ``tox.ini`` for running tests using `tox <http://tox.testrun.org>`_.

- a ``README.txt`` describing how to use the plugin and on which
platforms it runs.

- a ``LICENSE.txt`` file or equivalent containing the licensing
information, with matching info in ``setup.py``.

- an issue tracker for bug reports and enhancement requests.

- a `changelog <http://keepachangelog.com/>`_

If no contributor strongly objects, the repository can then be
transferred to the ``tox-dev`` organisation. For details see
`about repository transfers <https://help.github.com/articles/about-repository-transfers/>`_

Memebrs of the tox organization have write access to all projects.
We recommend that each plugin has at least three people who have the right to release to PyPI.

Repository owners can rest assured that no ``tox-dev`` administrator will ever make
releases of your repository or take ownership in any way, except in rare cases
where someone becomes unresponsive after months of contact attempts.
As stated, the objective is to share maintenance and avoid "plugin-abandon".
83 changes: 40 additions & 43 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
@@ -1,54 +1,51 @@

contributions:

Bernat Gabor
Krisztian Fekete
Marc Abramowitz
Aleaxner Schepanovski
Sridhar Ratnakumar
Alexander Schepanovski
Alex Grönholm
Alexander Loechel
Alexandre Conrad
Allan Feldman
Andrii Soldatenko
Anthon van der Neuth
Asmund Grammeltwedt
Barry Warsaw
Chris Rose
Jannis Leidel
Ronny Pfannschmidt
Lukasz Balcerzak
Philip Thiem
Monty Taylor
Bartolome Sanchez Salado
Bernat Gabor
Bruno Oliveira
Ionel Maries Cristian
anatoly techtonik
Matt Jeffery
Chris Jerdonek
Ronald Evers
Carl Meyer
Anthon van der Neuth
Matt Good
Mattieu Agopian
Mikhail Kyshtymov
Asmund Grammeltwedt
Ionel Maries Cristian
Julian Krause
Alexandre Conrad
Morgan Fainberg
Marc Schlaich
Chris Jerdonek
Chris Rose
Clark Boylan
Cyril Roelandt
Eli Collins
Eugene Yunak
Mark Hirota
Fernando L. Pereira
Igor Duarte Cardoso
Ionel Maries Cristian
Ionel Maries Cristian
Itxaka Serrano
Alex Grönholm
Jannis Leidel
Josh Smeaton
Julian Krause
Krisztian Fekete
Laszlo Vasko
Lukasz Balcerzak
Lukasz Rogalski
Manuel Jacob
Eli Collins
Andrii Soldatenko
Igor Duarte Cardoso
Allan Feldman
Josh Smeaton
Paweł Adamczak
Marc Abramowitz
Marc Schlaich
Mark Hirota
Matt Good
Matt Jeffery
Mattieu Agopian
Mikhail Kyshtymov
Monty Taylor
Morgan Fainberg
Nick Douma
Oliver Bestwalter
Paweł Adamczak
Philip Thiem
Ronald Evers
Ronny Pfannschmidt
Selim Belhaouane
Nick Douma
Cyril Roelandt
Bartolome Sanchez Salado
Laszlo Vasko
Fernando L. Pereira
Alexander Loechel
Sridhar Ratnakumar
Ville Skyttä
anatoly techtonik
Loading