2016-12-06 23:09:45 +00:00
|
|
|
.. _contributors-guide:
|
2015-12-23 17:16:18 +00:00
|
|
|
|
2015-03-22 18:21:15 +00:00
|
|
|
Contributors' Guide
|
|
|
|
===================
|
|
|
|
|
2016-06-28 04:05:22 +00:00
|
|
|
Bug reports, feature requests, patches, and other contributions are warmly welcomed.
|
|
|
|
Contribution should be as easy and friendly as possible.
|
|
|
|
Below are a few guidelines contributors should follow to facilitate the process.
|
2015-03-22 18:21:15 +00:00
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
|
2015-03-22 18:21:15 +00:00
|
|
|
Getting Started
|
|
|
|
---------------
|
|
|
|
|
2016-06-28 04:05:22 +00:00
|
|
|
- `Create a GitHub account <https://github.com/join>`_ if you don't have one
|
|
|
|
already.
|
2015-03-22 18:21:15 +00:00
|
|
|
|
|
|
|
- Search through the `issue tracker <https://github.com/jab/bidict/issues>`_
|
|
|
|
to see if an issue or pull request has already been created for what you're interested in.
|
|
|
|
If so, feel free to add comments to it or just hit the "subscribe" button to follow progress.
|
|
|
|
If not, you can `join the chat room <https://gitter.im/jab/bidict>`_ to discuss there,
|
|
|
|
or go ahead and `create a new issue <https://github.com/jab/bidict/issues/new>`_:
|
|
|
|
|
|
|
|
- Clearly describe the issue giving as much relevant context as possible.
|
|
|
|
|
|
|
|
- If it is a bug, include reproduction steps,
|
|
|
|
all known environments in which the bug is exhibited,
|
|
|
|
and ideally a failing test case.
|
|
|
|
|
|
|
|
- If you would like to contribute a patch,
|
|
|
|
make sure you've `created your own fork <https://github.com/jab/bidict/fork>`_
|
2016-06-28 04:05:22 +00:00
|
|
|
and have cloned it to your computer.
|
2015-03-22 18:21:15 +00:00
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
|
2015-03-22 18:21:15 +00:00
|
|
|
Making Changes
|
|
|
|
--------------
|
|
|
|
|
|
|
|
- Before making changes, please install the extra packages required for development:
|
|
|
|
``pip install -e .[dev]``
|
|
|
|
|
|
|
|
We use `EditorConfig <http://editorconfig.org/>`_
|
2018-03-28 02:20:12 +00:00
|
|
|
and `pre-commit <https://pre-commit.com/>`_
|
2015-03-22 18:21:15 +00:00
|
|
|
to help achieve uniform style and quality standards
|
|
|
|
across a diversity of development environments.
|
|
|
|
|
|
|
|
pre-commit gets installed when you run ``pip install -e .[dev]``
|
|
|
|
and ensures that various code checks are run before every commit
|
|
|
|
(look in ``.pre-commit-config.yaml`` to see which hooks are run).
|
|
|
|
|
|
|
|
EditorConfig allows us to provide a single ``.editorconfig`` file
|
|
|
|
to configure settings like indentation consistently
|
|
|
|
across a variety of suppored editors.
|
|
|
|
See http://editorconfig.org/#download to install the plugin for your editor.
|
|
|
|
|
|
|
|
- Create a topic branch off of master for your changes:
|
|
|
|
``git checkout -b <topic> master``
|
|
|
|
|
|
|
|
- Make commits of logical units.
|
|
|
|
|
|
|
|
- Match the existing code style and quality standards.
|
|
|
|
If you're adding a feature, include accompanying tests and documentation
|
|
|
|
demonstrating its correctness and usage.
|
|
|
|
|
squashed changes for 0.13.0
- support Python 3.6, refactor CI/test setup, increase test coverage
- refactor BidirectionalMapping, BidictBase, OrderedBidictBase,
FrozenBidictBase, and subclasses
- move frozenorderedbidict into _frozen and looseorderedbidict into _loose
- register bidict as a virtual subclass of MutableMapping rather than
inheriting from it directly. This makes it clearer that it does not use any
of the concrete generic methods that MutableMapping provides.
- improve performance and flexibility of frozenbidict and
frozenorderedbidict hashing
- docs, including new type-hierarchy.png diagram
- rm unused imap, ifilter, izip_longest from compat, add PYPY
- update to latest versions of dependencies
- restore benchmarking on travis
2017-01-09 15:37:31 +00:00
|
|
|
- Run the tests locally with `tox <https://tox.readthedocs.io>`_
|
|
|
|
to make sure they pass for all supported Python versions
|
|
|
|
(see ``envlist`` in ``tox.ini`` for the complete list).
|
|
|
|
If you do not have all the referenced Python versions available locally,
|
|
|
|
you can also push the changes on your branch to GitHub
|
|
|
|
to automatically trigger a new `Travis-CI <https://travis-ci.org>`_ build,
|
|
|
|
which should run the tests for all supported Python versions.
|
|
|
|
You should be able to see the results at ``travis-ci.org/<user>/bidict``,
|
|
|
|
where ``<user>`` is the GitHub username you used to fork bidict.
|
2015-03-22 18:21:15 +00:00
|
|
|
|
|
|
|
- Create a concise but comprehensive commit message in the following style::
|
|
|
|
|
2015-04-27 22:20:03 +00:00
|
|
|
Include an example commit message in CONTRIBUTING guide #9999
|
2015-03-22 18:21:15 +00:00
|
|
|
|
|
|
|
Without this patch the CONTRIBUTING guide would contain no examples of
|
|
|
|
a model commit message. This is a problem because the contributor is left
|
|
|
|
to imagine what the commit message should look like and may not get it
|
|
|
|
right. This patch fixes the problem by providing a concrete example.
|
|
|
|
|
|
|
|
The first line is an imperative statement summarizing the changes with an
|
|
|
|
issue number from the tracker. The body describes the behavior without
|
|
|
|
the patch, why it's a problem, and how the patch fixes the problem.
|
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
|
2015-03-22 18:21:15 +00:00
|
|
|
Submitting Changes
|
|
|
|
------------------
|
|
|
|
|
|
|
|
- Push your changes to a topic branch in your fork of the repository:
|
|
|
|
``git push --set-upstream origin <topic>``
|
|
|
|
|
|
|
|
- Submit a pull request providing any additional relevant details necessary.
|
|
|
|
|
|
|
|
- Acknowledgment should typically be fast
|
|
|
|
but please allow 1-2 weeks for a full response / code review.
|
|
|
|
|
|
|
|
- The code review process often involves some back-and-forth
|
|
|
|
to get everything right before merging.
|
|
|
|
This is typical of quality software projects that accept patches.
|
|
|
|
|
|
|
|
- All communication should be supportive and appreciative of good faith efforts to contribute,
|
|
|
|
creating a welcoming and inclusive community.
|
|
|
|
Expect nothing less of any project.
|
|
|
|
|
2016-06-28 04:05:22 +00:00
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
Other Ways to Contribute
|
|
|
|
------------------------
|
2016-06-28 04:05:22 +00:00
|
|
|
|
|
|
|
Besides filing issues and pull requests, there are other ways to contribute.
|
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
.. image:: https://img.shields.io/badge/Chip%20in%20via-Gumroad-orange.svg
|
squashed changes for 0.13.0
- support Python 3.6, refactor CI/test setup, increase test coverage
- refactor BidirectionalMapping, BidictBase, OrderedBidictBase,
FrozenBidictBase, and subclasses
- move frozenorderedbidict into _frozen and looseorderedbidict into _loose
- register bidict as a virtual subclass of MutableMapping rather than
inheriting from it directly. This makes it clearer that it does not use any
of the concrete generic methods that MutableMapping provides.
- improve performance and flexibility of frozenbidict and
frozenorderedbidict hashing
- docs, including new type-hierarchy.png diagram
- rm unused imap, ifilter, izip_longest from compat, add PYPY
- update to latest versions of dependencies
- restore benchmarking on travis
2017-01-09 15:37:31 +00:00
|
|
|
:target: https://gumroad.com/l/bidict
|
2018-02-24 09:14:42 +00:00
|
|
|
:alt: Chip in via Gumroad
|
squashed changes for 0.13.0
- support Python 3.6, refactor CI/test setup, increase test coverage
- refactor BidirectionalMapping, BidictBase, OrderedBidictBase,
FrozenBidictBase, and subclasses
- move frozenorderedbidict into _frozen and looseorderedbidict into _loose
- register bidict as a virtual subclass of MutableMapping rather than
inheriting from it directly. This makes it clearer that it does not use any
of the concrete generic methods that MutableMapping provides.
- improve performance and flexibility of frozenbidict and
frozenorderedbidict hashing
- docs, including new type-hierarchy.png diagram
- rm unused imap, ifilter, izip_longest from compat, add PYPY
- update to latest versions of dependencies
- restore benchmarking on travis
2017-01-09 15:37:31 +00:00
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
.. image:: https://img.shields.io/badge/Chip%20in%20via-Bountysource-brightgreen.svg
|
squashed changes for 0.13.0
- support Python 3.6, refactor CI/test setup, increase test coverage
- refactor BidirectionalMapping, BidictBase, OrderedBidictBase,
FrozenBidictBase, and subclasses
- move frozenorderedbidict into _frozen and looseorderedbidict into _loose
- register bidict as a virtual subclass of MutableMapping rather than
inheriting from it directly. This makes it clearer that it does not use any
of the concrete generic methods that MutableMapping provides.
- improve performance and flexibility of frozenbidict and
frozenorderedbidict hashing
- docs, including new type-hierarchy.png diagram
- rm unused imap, ifilter, izip_longest from compat, add PYPY
- update to latest versions of dependencies
- restore benchmarking on travis
2017-01-09 15:37:31 +00:00
|
|
|
:target: https://www.bountysource.com/teams/bidict
|
2018-02-24 09:14:42 +00:00
|
|
|
:alt: Chip in via Bountysource
|
squashed changes for 0.13.0
- support Python 3.6, refactor CI/test setup, increase test coverage
- refactor BidirectionalMapping, BidictBase, OrderedBidictBase,
FrozenBidictBase, and subclasses
- move frozenorderedbidict into _frozen and looseorderedbidict into _loose
- register bidict as a virtual subclass of MutableMapping rather than
inheriting from it directly. This makes it clearer that it does not use any
of the concrete generic methods that MutableMapping provides.
- improve performance and flexibility of frozenbidict and
frozenorderedbidict hashing
- docs, including new type-hierarchy.png diagram
- rm unused imap, ifilter, izip_longest from compat, add PYPY
- update to latest versions of dependencies
- restore benchmarking on travis
2017-01-09 15:37:31 +00:00
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
.. image:: https://img.shields.io/badge/Chip%20in%20via-PayPal-blue.svg
|
squashed changes for 0.13.0
- support Python 3.6, refactor CI/test setup, increase test coverage
- refactor BidirectionalMapping, BidictBase, OrderedBidictBase,
FrozenBidictBase, and subclasses
- move frozenorderedbidict into _frozen and looseorderedbidict into _loose
- register bidict as a virtual subclass of MutableMapping rather than
inheriting from it directly. This makes it clearer that it does not use any
of the concrete generic methods that MutableMapping provides.
- improve performance and flexibility of frozenbidict and
frozenorderedbidict hashing
- docs, including new type-hierarchy.png diagram
- rm unused imap, ifilter, izip_longest from compat, add PYPY
- update to latest versions of dependencies
- restore benchmarking on travis
2017-01-09 15:37:31 +00:00
|
|
|
:target: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=jab%40math%2ebrown%2eedu&lc=US&item_name=Support%20bidict&button_subtype=services¤cy_code=USD&bn=PP%2dBuyNowBF%3aPaypal%2dBuy%2520a%2520Drink%2dblue%2esvg%3aNonHosted
|
2018-02-24 09:14:42 +00:00
|
|
|
:alt: Chip in via PayPal
|
2016-12-06 23:09:45 +00:00
|
|
|
|
2016-06-28 04:05:22 +00:00
|
|
|
- If you read the code and learned something new,
|
2018-02-24 09:14:42 +00:00
|
|
|
please let me know.
|
2015-03-22 18:21:15 +00:00
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
- If you're using bidict in a project you work on,
|
|
|
|
please post about your experience and send me a link.
|
2015-03-22 18:21:15 +00:00
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
- If you come across other people who could find bidict useful,
|
|
|
|
please spread the word.
|
2015-11-28 14:30:28 +00:00
|
|
|
|
2016-06-28 04:05:22 +00:00
|
|
|
- If bidict has helped you accomplish your work,
|
|
|
|
especially work you've been paid for,
|
2018-02-26 23:29:56 +00:00
|
|
|
please consider supporting bidict's continued maintenance and development
|
|
|
|
financially if possible, and/or ask your organization to do the same:
|
2015-11-28 14:30:28 +00:00
|
|
|
|
2016-12-06 23:09:45 +00:00
|
|
|
.. image:: ./_static/support-on-gumroad.png
|
|
|
|
:target: https://gumroad.com/l/bidict
|
|
|
|
:alt: Support bidict
|
2016-06-28 04:05:22 +00:00
|
|
|
|
2018-02-24 09:14:42 +00:00
|
|
|
|
2016-06-28 04:05:22 +00:00
|
|
|
Code of Conduct
|
|
|
|
---------------
|
2015-03-22 18:21:15 +00:00
|
|
|
|
2016-06-28 04:05:22 +00:00
|
|
|
All participation in this project should respect the
|
2017-11-20 03:24:08 +00:00
|
|
|
:doc:`code-of-conduct`. [#fn-coc]_
|
|
|
|
|
2016-06-28 04:05:22 +00:00
|
|
|
By participating, you are expected to honor this code.
|
2015-03-22 18:21:15 +00:00
|
|
|
|
2017-11-20 03:24:08 +00:00
|
|
|
.. [#fn-coc] `<CODE_OF_CONDUCT.rst>`_ | `<https://bidict.readthedocs.io/code-of-conduct.html>`_
|