mirror of
https://github.com/secynic/ipwhois.git
synced 2025-12-10 00:40:57 -06:00
128 lines
3.8 KiB
ReStructuredText
128 lines
3.8 KiB
ReStructuredText
============
|
|
Contributing
|
|
============
|
|
|
|
.. note::
|
|
|
|
If you are looking for items to contribute, start by looking at current
|
|
open `issues <https://github.com/secynic/ipwhois/issues>`_ and search the
|
|
source code for "TODO" items.
|
|
|
|
****************
|
|
Issue submission
|
|
****************
|
|
|
|
| Issues are tracked on GitHub:
|
|
| https://github.com/secynic/ipwhois/issues
|
|
|
|
|
|
Follow the guidelines detailed in the appropriate section below. As a general
|
|
rule of thumb, provide as much information as possible when submitting issues.
|
|
|
|
Bug reports
|
|
===========
|
|
|
|
- Title should be a short, descriptive summary of the bug
|
|
- Include the Python and ipwhois versions affected
|
|
- Provide a context (with code example) in the description of your issue. What
|
|
are you attempting to do?
|
|
- Include the full obfuscated output. Make sure to set DEBUG logging:
|
|
::
|
|
|
|
import logging
|
|
LOG_FORMAT = ('[%(asctime)s] [%(levelname)s] [%(filename)s:%(lineno)s] '
|
|
'[%(funcName)s()] %(message)s')
|
|
logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT)
|
|
|
|
- Include sources of information with links or screenshots
|
|
- Do you have a suggestion on how to fix the bug?
|
|
|
|
Feature Requests
|
|
================
|
|
|
|
- Title should be a short, descriptive summary of the feature requested
|
|
- Provide use case examples
|
|
- Include sources of information with links or screenshots
|
|
- Do you have a suggestion on how to implement the feature?
|
|
|
|
Testing
|
|
=======
|
|
|
|
You may have noticed that CI tests are taking longer to complete.
|
|
This is due to the enabling of online lookup tests (network tests in the
|
|
ipwhois/tests/online directory).
|
|
|
|
When running local tests, you may include these tests by adding the
|
|
--include=online flag to your nosetests command.
|
|
|
|
Example::
|
|
|
|
nosetests -v -w ipwhois --include=online --exclude=stress --with-coverage
|
|
--cover-package=ipwhois
|
|
|
|
Questions
|
|
=========
|
|
|
|
I am happy to answer any questions and provide assistance where possible.
|
|
Please be clear and concise. Provide examples when possible. Check the
|
|
ipwhois `documentation <https://ipwhois.readthedocs.io/en/latest>`_ and the
|
|
`issue tracker <https://github.com/secynic/ipwhois/issues>`_ before asking a
|
|
question.
|
|
|
|
Questions can be submitted as issues. Past questions can be searched by
|
|
filtering the label "question".
|
|
|
|
You can also message me on IRC. I am usually idle on freenode in the
|
|
`Python channels <https://www.python.org/community/irc/>`_
|
|
|
|
*************
|
|
Pull Requests
|
|
*************
|
|
|
|
What to include
|
|
===============
|
|
|
|
Aside from the core code changes, it is helpful to provide the following
|
|
(where applicable):
|
|
|
|
- Unit tests
|
|
- Examples
|
|
- Sphinx configuration changes in /docs
|
|
- Requirements (python2.txt, python3.txt, docs/requirements.txt)
|
|
|
|
GitFlow Model
|
|
=============
|
|
|
|
This library follows the GitFlow model. As a contributor, this is simply
|
|
accomplished by the following steps:
|
|
|
|
1. Create an issue (if there isn't one already)
|
|
2. Branch from dev (not master), try to name your branch to reference the issue
|
|
(e.g., issue_123_feature, issue_123_bugfix).
|
|
3. Merge pull requests to dev (not master). Hotfix merges to master will
|
|
only be allowed under extreme/time sensitive circumstances.
|
|
|
|
Guidelines
|
|
==========
|
|
|
|
- Title should be a short, descriptive summary of the changes
|
|
- Follow `PEP 8 <https://www.python.org/dev/peps/pep-0008/>`_ where possible.
|
|
- Follow the `Google docstring style guide
|
|
<https://google.github.io/styleguide/pyguide.html#Comments>`_ for
|
|
comments
|
|
- Must be compatible with Python 2.7 and 3.4+
|
|
- Break out reusable code to functions
|
|
- Make your code easy to read and comment where necessary
|
|
- Reference the GitHub issue number in the description (e.g., Issue #01)
|
|
- When running nosetests, make sure to add the following arguments:
|
|
::
|
|
|
|
--verbosity=3 --nologcapture --include=online --cover-erase
|
|
|
|
If you would like to exclude the aggressive online stress tests, add to the
|
|
above:
|
|
::
|
|
|
|
--exclude stress
|
|
|