Browse Source

Adding pre-commit

Introduced changes:
- pre-commit config and rules
- Add pre-commit to pep8 gate, Flake8 is covered in the pre-commit hooks.
- Applying fixes for pre-commit compliance in all code.

Also commit hash will be used instead of version tags in pre-commit to
prevend arbitrary code from running in developer's machines.

pre-commit will be used to:
- trailing whitespace;
- Replaces or checks mixed line ending (mixed-line-ending);
- Forbid files which have a UTF-8 byte-order marker
  (check-byte-order-marker);
- Checks that non-binary executables have a proper
  shebang (check-executables-have-shebangs);
- Check for files that contain merge conflict strings
  (check-merge-conflict);
- Check for debugger imports and py37+ breakpoint()
  calls in python source (debug-statements);
- Attempts to load all yaml files to verify syntax (check-yaml);
- Run flake8 checks (flake8) (local)

For further details about tests please refer to:
https://github.com/pre-commit/pre-commit-hooks

Change-Id: Ib18f38dbec90c62e870307bf22a8b4f193237bce
Signed-off-by: Moisés Guimarães de Medeiros <moguimar@redhat.com>
changes/44/742144/2
Hervé Beraud 11 months ago
parent
commit
10ce88ed2b
6 changed files with 44 additions and 6 deletions
  1. +35
    -0
      .pre-commit-config.yaml
  2. +2
    -3
      doc/source/conf.py
  3. +2
    -2
      oslo_service/tests/test_service.py
  4. +2
    -0
      releasenotes/source/conf.py
  5. +2
    -0
      test-requirements.txt
  6. +1
    -1
      tox.ini

+ 35
- 0
.pre-commit-config.yaml View File

@ -0,0 +1,35 @@
# We from the Oslo project decided to pin repos based on the
# commit hash instead of the version tag to prevend arbitrary
# code from running in developer's machines. To update to a
# newer version, run `pre-commit autoupdate` and then replace
# the newer versions with their commit hash.
default_language_version:
python: python3
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: ebc15addedad713c86ef18ae9632c88e187dd0af # v3.1.0
hooks:
- id: trailing-whitespace
# Replaces or checks mixed line ending
- id: mixed-line-ending
args: ['--fix', 'lf']
exclude: '.*\.(svg)$'
# Forbid files which have a UTF-8 byte-order marker
- id: check-byte-order-marker
# Checks that non-binary executables have a proper shebang
- id: check-executables-have-shebangs
# Check for files that contain merge conflict strings.
- id: check-merge-conflict
# Check for debugger imports and py37+ breakpoint()
# calls in python source
- id: debug-statements
- id: check-yaml
files: .*\.(yaml|yml)$
- repo: https://gitlab.com/pycqa/flake8
rev: 181bb46098dddf7e2d45319ea654b4b4d58c2840 # 3.8.3
hooks:
- id: flake8
additional_dependencies:
- hacking>=3.0.1,<3.1.0

+ 2
- 3
doc/source/conf.py View File

@ -1,4 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright (C) 2020 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
@ -77,6 +79,3 @@ latex_documents = [
u'%s Documentation' % project,
u'OpenStack Foundation', 'manual'),
]
# Example configuration for intersphinx: refer to the Python standard library.
#intersphinx_mapping = {'http://docs.python.org/': None}

+ 2
- 2
oslo_service/tests/test_service.py View File

@ -164,8 +164,8 @@ class ServiceLauncherTest(ServiceTestBase):
# Skip ps header
f.readline()
processes = [tuple(int(p) for p in l.strip().split()[:2])
for l in f]
processes = [tuple(int(p) for p in line.strip().split()[:2])
for line in f]
return [p for p, pp in processes if pp == self.pid]
def test_killed_worker_recover(self):


+ 2
- 0
releasenotes/source/conf.py View File

@ -1,4 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright (C) 2020 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at


+ 2
- 0
test-requirements.txt View File

@ -14,3 +14,5 @@ coverage!=4.4,>=4.0 # Apache-2.0
# Bandit security code scanner
bandit>=1.6.0,<1.7.0 # Apache-2.0
pre-commit>=2.6.0 # MIT

+ 1
- 1
tox.ini View File

@ -21,7 +21,7 @@ commands =
[testenv:pep8]
commands =
flake8
pre-commit run -a
bandit -r oslo_service -n5 -x tests
doc8 --ignore-path "doc/source/history.rst" doc/source


Loading…
Cancel
Save