Point documentation to http: instead of https:
The certificate at that URL is for `readthedocs.io`, so if you want to use https, it's best to use `flake8.readthedocs.io` and not `flake8.pycqa.org`. As it is currently, you get a certificate error.
Note also that the `Code of Conduct` and `Getting Started Contributing` links are using `http` and pointing to the insecure domain, so if you do want https, you should change those as well.
See merge request !118
The certificate at that URL is for `readthedocs.io`, so if you want to use https, it's best to use `flake8.readthedocs.io` and not `flake8.pycqa.org`. As it is currently, you get a certificate error.
Note also that the `Code of Conduct` and `Getting Started Contributing` links are using `http` and pointing to the insecure domain, so if you do want https, you should change those as well.
Add --bug-report flag to help bug reporters
When invoked it will print out JSON that has all of the debugging
information needed by the maintainers to diagnose or reproduce a bug.
Closes#207
See merge request !117
Replace list of violation codes
*Description of changes*
Replace the list of violation codes in the documentation.
*Related to:* #206
See merge request !115
Handle SyntaxErrors when tokenizing a file
*Description of changes*
This handles the SyntaxErrors raised by tokenize.generate_tokens.
*Related to:* #205
See merge request !114
Serialize Checkers PluginTypeManager to a dict
*Description of changes*
Try to side-step issues with attributes not being set/updated on plugins when used with multiprocessing and Queues.
*Related to:* #179, #164
See merge request !98
Document how it determines when the plugin is run
*Description of changes*
If a plugin's target (constructor or function) doesn't satisfy specific parameters, it'll never be called. This documents what the parameters must contain to be run at all.
*Related to:* #159
See merge request !110
It seems likely that the multiprocessing module on Windows is not
capable of serializing an object with the structure that we have and
preserving the attributes we dynamically set on plugins (like the
FlakesChecker). To avoid issues like this with all plugins (although
we have only found this on Windows with the FlakesChecker), let's try
serializing the Checkers PluginTypeManager to a dictionary so that the
only object that a Queue is really trying to serialize/deserialize is
the FlakesChecker itself.
Related to #179
Update GitLab CI configuration
*Description of changes*
Update GitLab CI. After reading [GitLab's blog post](https://about.gitlab.com/2016/07/29/the-basics-of-gitlab-ci/) about their CI system, it seems that we can easily start generating build artifacts for PRs and regular pushes.
*Related to:* N/A
See merge request !111
If a plugin's target (constructor or function) doesn't satisfy specific
parameters, it'll never be called. This documents what the parameters must
contain to be run at all.
Related to: #159
Re-allow for relative paths for exclude
*Description of changes*
Use the directory that the configuration file is found in as the parent (instead of the current working directory) when normalizing paths.
*Related to:* #194
See merge request !109
Previously, all testing was done from the directory in which the
configuration file lived, so this bug went unnoticed. However, if you
run Flake8 against its own source from a directory above, you would
notice that the patterns in the exclude config value in tox.ini were
ignored. This is because we (like any reasonable person) are using
relative paths. The path is relative, however, to the directory in
which the configuration file was located. So we keep track of which
directory that is and use that to normalize the paths in the config
file.
Yes, there is an unrelated change to our tox.ini in this commit as
well. ;-)
Closes#194
Test loading non-callable plugins
*Description of changes*
This is just a simple addition to prevent a regression regarding bug #164 and merge request !101.
*Related to:* #164, !101
See merge request !106
Diable multiprocessing behaviour on Windows
*Description of changes*
Due to https://bugs.python.org/issue27649, while Flake8 can *run* with multiprocessing on Windows, it does not behave as we expect it to behave. To provide the best experience that is in agreement with our documentation, we must disable multiprocessing until https://bugs.python.org/issue27649 is fixed and released.
Closes#184
See merge request !105
Due to https://bugs.python.org/issue27649, we cannot continue to
expect multiprocessing to work as we expect and document it on Windows.
As such, we are going to revert back to our previous behaviour of
disabling it across all versions of Python on Windows to provide the
default expected behaviour of Flake8 on that Operating System.
Allow plugins that are on by default to be ignored
*Description of changes*
Previously, users were unable to ignore the error code of a plugin that was on by default. This adds a tiny bit of extra logic to re-enable that behaviour.
*Related to:* #195
See merge request !104
Previously, to ensure that plugins on by default were reported, we
added them to the select list. This means that ignoring them became
impossible. To accomodate our reporting logic and a user's ability
to ignore, we need to keep our select and extended select lists
separated.
This allows us to have a better understanding of who is selecting what,
where, and how and make our decision as to whether or not an error
should be reported more wisely.
Closes#195