baseline: integrate into a huge project¶
Baseline allows you to remember the current project state and then show only new errors, ignoring old ones.
First of all, let’s create baseline.
flakehell baseline > baseline.txt
Then specify path to the baseline file:
[tool.flakehell]
baseline = "baseline.txt"
Now, flakehell lint
command will ignore all your current errors. It will report only about new errors, all errors in a new code, or if old line of code was modified.
Running flakehell against diff¶
Flake8 has --diff
option to run checks only against specified diff. FlakeHell also supports it but additionally allows you to mix it with explicitly specified paths. For example:
git diff | flakehell lint --diff my_project/
Example of running flake8-annotations on GitLab CI only against changed code in my_project/
:
flake8-annotations:
image: "python:3.7-buster"
stage: test
rules:
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_SHA
changes:
- "my_project/**/*.py"
script:
- pip install flakehell flake8-annotations
- git diff $CI_MERGE_REQUEST_TARGET_BRANCH_SHA | flakehell lint --diff my_project/
This option also can be mixed with baseline.