mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-12 14:30:09 +01:00
bootstrapit updates
This commit is contained in:
parent
e70c45403c
commit
f1e17562b8
5 changed files with 251 additions and 26 deletions
144
.gitignore
vendored
144
.gitignore
vendored
|
|
@ -73,3 +73,147 @@ envs.txt
|
||||||
test_build_logs/*.log
|
test_build_logs/*.log
|
||||||
build/miniconda3.sh
|
build/miniconda3.sh
|
||||||
compat_test/
|
compat_test/
|
||||||
|
|
||||||
|
# https://github.com/github/gitignore/blob/master/Global/Linux.gitignore
|
||||||
|
*~
|
||||||
|
|
||||||
|
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||||
|
.fuse_hidden*
|
||||||
|
|
||||||
|
# KDE directory preferences
|
||||||
|
.directory
|
||||||
|
|
||||||
|
# Linux trash folder which might appear on any partition or disk
|
||||||
|
.Trash-*
|
||||||
|
|
||||||
|
# .nfs files are created when an open file is removed but is still being accessed
|
||||||
|
.nfs*
|
||||||
|
|
||||||
|
# https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
|
||||||
|
# Windows thumbnail cache files
|
||||||
|
Thumbs.db
|
||||||
|
Thumbs.db:encryptable
|
||||||
|
ehthumbs.db
|
||||||
|
ehthumbs_vista.db
|
||||||
|
|
||||||
|
# Dump file
|
||||||
|
*.stackdump
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
[Dd]esktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Windows Installer files
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# Windows shortcuts
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
# https://raw.githubusercontent.com/github/gitignore/master/Global/macOS.gitignore
|
||||||
|
# General
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Icon must end with two \r
|
||||||
|
Icon
|
||||||
|
|
||||||
|
|
||||||
|
# Thumbnails
|
||||||
|
._*
|
||||||
|
|
||||||
|
# Files that might appear in the root of a volume
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.com.apple.timemachine.donotpresent
|
||||||
|
|
||||||
|
# Directories potentially created on remote AFP share
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
.apdisk
|
||||||
|
|
||||||
|
|
||||||
|
# https://raw.githubusercontent.com/github/gitignore/master/Global/JetBrains.gitignore
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/artifacts
|
||||||
|
# .idea/compiler.xml
|
||||||
|
# .idea/jarRepositories.xml
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
@ -13,9 +13,13 @@ unit:
|
||||||
- make test_compat
|
- make test_compat
|
||||||
coverage: '/^(TOTAL|src).*?(\d+\%)$/'
|
coverage: '/^(TOTAL|src).*?(\d+\%)$/'
|
||||||
artifacts:
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit:
|
||||||
|
- reports/flake8.xml
|
||||||
|
- reports/pytest.xml
|
||||||
paths:
|
paths:
|
||||||
- htmlcov/
|
- reports/htmlcov/
|
||||||
- mypycov/
|
- reports/mypycov/
|
||||||
allow_failure: false
|
allow_failure: false
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -24,8 +28,8 @@ pages:
|
||||||
script:
|
script:
|
||||||
- mkdir -p public/cov
|
- mkdir -p public/cov
|
||||||
- mkdir -p public/mypycov
|
- mkdir -p public/mypycov
|
||||||
- cp -r htmlcov/* public/cov/
|
- cp -r reports/htmlcov/* public/cov/
|
||||||
- cp -r mypycov/* public/mypycov/
|
- cp -r reports/mypycov/* public/mypycov/
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- public
|
- public
|
||||||
|
|
|
||||||
|
|
@ -300,9 +300,9 @@ git_hooks:
|
||||||
## -- Integration --
|
## -- Integration --
|
||||||
|
|
||||||
|
|
||||||
## Run flake8 linter and check for fmt
|
## Run isort with --check-only
|
||||||
.PHONY: lint
|
.PHONY: lint_isort
|
||||||
lint:
|
lint_isort:
|
||||||
@printf "isort ..\n"
|
@printf "isort ..\n"
|
||||||
@$(DEV_ENV)/bin/isort \
|
@$(DEV_ENV)/bin/isort \
|
||||||
--check-only \
|
--check-only \
|
||||||
|
|
@ -314,6 +314,10 @@ lint:
|
||||||
src/ test/
|
src/ test/
|
||||||
@printf "\e[1F\e[9C ok\n"
|
@printf "\e[1F\e[9C ok\n"
|
||||||
|
|
||||||
|
|
||||||
|
## Run sjfmt with --check
|
||||||
|
.PHONY: lint_sjfmt
|
||||||
|
lint_sjfmt:
|
||||||
@printf "sjfmt ..\n"
|
@printf "sjfmt ..\n"
|
||||||
@$(DEV_ENV)/bin/sjfmt \
|
@$(DEV_ENV)/bin/sjfmt \
|
||||||
--target-version=py36 \
|
--target-version=py36 \
|
||||||
|
|
@ -323,19 +327,36 @@ lint:
|
||||||
src/ test/ 2>&1 | sed "/All done/d" | sed "/left unchanged/d"
|
src/ test/ 2>&1 | sed "/All done/d" | sed "/left unchanged/d"
|
||||||
@printf "\e[1F\e[9C ok\n"
|
@printf "\e[1F\e[9C ok\n"
|
||||||
|
|
||||||
|
|
||||||
|
## Run flake8
|
||||||
|
.PHONY: lint_flake8
|
||||||
|
lint_flake8:
|
||||||
|
@rm -f reports/flake8*;
|
||||||
|
@mkdir -p "reports/";
|
||||||
|
|
||||||
@printf "flake8 ..\n"
|
@printf "flake8 ..\n"
|
||||||
@$(DEV_ENV)/bin/flake8 src/
|
@$(DEV_ENV)/bin/flake8 src/ --tee --output-file reports/flake8.txt || exit 0;
|
||||||
|
@$(DEV_ENV)/bin/flake8_junit reports/flake8.txt reports/flake8.xml >> /dev/null;
|
||||||
|
@$(DEV_ENV_PY) scripts/exit_0_if_empty.py reports/flake8.txt;
|
||||||
|
|
||||||
@printf "\e[1F\e[9C ok\n"
|
@printf "\e[1F\e[9C ok\n"
|
||||||
|
|
||||||
|
|
||||||
|
## Run flake8 linter and check for fmt
|
||||||
|
.PHONY: lint
|
||||||
|
lint: lint_isort lint_sjfmt lint_flake8
|
||||||
|
|
||||||
|
|
||||||
## Run mypy type checker
|
## Run mypy type checker
|
||||||
.PHONY: mypy
|
.PHONY: mypy
|
||||||
mypy:
|
mypy:
|
||||||
@rm -rf ".mypy_cache";
|
@rm -rf ".mypy_cache";
|
||||||
|
@rm -rf "reports/mypycov";
|
||||||
|
@mkdir -p "reports/";
|
||||||
|
|
||||||
@printf "mypy ....\n"
|
@printf "mypy ....\n"
|
||||||
@MYPYPATH=stubs/:vendor/ $(DEV_ENV_PY) -m mypy \
|
@MYPYPATH=stubs/:vendor/ $(DEV_ENV_PY) -m mypy \
|
||||||
--html-report mypycov \
|
--html-report reports/mypycov \
|
||||||
--no-error-summary \
|
--no-error-summary \
|
||||||
src/ | sed "/Generated HTML report/d"
|
src/ | sed "/Generated HTML report/d"
|
||||||
@printf "\e[1F\e[9C ok\n"
|
@printf "\e[1F\e[9C ok\n"
|
||||||
|
|
@ -344,16 +365,10 @@ mypy:
|
||||||
## Run pylint. Should not break the build yet
|
## Run pylint. Should not break the build yet
|
||||||
.PHONY: pylint
|
.PHONY: pylint
|
||||||
pylint:
|
pylint:
|
||||||
@printf "pylint ..\n";
|
@mkdir -p "reports/";
|
||||||
@$(DEV_ENV)/bin/pylint --jobs=4 --output-format=colorized --score=no \
|
|
||||||
--disable=C0103,C0301,C0330,C0326,C0330,C0411,R0903,W1619,W1618,W1203 \
|
|
||||||
--extension-pkg-whitelist=ujson,lxml,PIL,numpy,pandas,sklearn,pyblake2 \
|
|
||||||
src/
|
|
||||||
@$(DEV_ENV)/bin/pylint --jobs=4 --output-format=colorized --score=no \
|
|
||||||
--disable=C0103,C0111,C0301,C0330,C0326,C0330,C0411,R0903,W1619,W1618,W1203 \
|
|
||||||
--extension-pkg-whitelist=ujson,lxml,PIL,numpy,pandas,sklearn,pyblake2 \
|
|
||||||
test/
|
|
||||||
|
|
||||||
|
@printf "pylint ..\n";
|
||||||
|
@$(DEV_ENV)/bin/pylint --rcfile=setup.cfg src/ test/
|
||||||
@printf "\e[1F\e[9C ok\n"
|
@printf "\e[1F\e[9C ok\n"
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -363,6 +378,9 @@ test:
|
||||||
@rm -rf ".pytest_cache";
|
@rm -rf ".pytest_cache";
|
||||||
@rm -rf "src/__pycache__";
|
@rm -rf "src/__pycache__";
|
||||||
@rm -rf "test/__pycache__";
|
@rm -rf "test/__pycache__";
|
||||||
|
@rm -rf "reports/testcov/";
|
||||||
|
@rm -f "reports/pytest*";
|
||||||
|
@mkdir -p "reports/";
|
||||||
|
|
||||||
# First we test the local source tree using the dev environment
|
# First we test the local source tree using the dev environment
|
||||||
ENV=$${ENV-dev} \
|
ENV=$${ENV-dev} \
|
||||||
|
|
@ -371,8 +389,10 @@ test:
|
||||||
$(DEV_ENV_PY) -m pytest -v \
|
$(DEV_ENV_PY) -m pytest -v \
|
||||||
--doctest-modules \
|
--doctest-modules \
|
||||||
--verbose \
|
--verbose \
|
||||||
--cov-report html \
|
--cov-report "html:reports/testcov/" \
|
||||||
--cov-report term \
|
--cov-report term \
|
||||||
|
--html=reports/pytest/index.html \
|
||||||
|
--junitxml reports/pytest.xml \
|
||||||
-k "$${PYTEST_FILTER}" \
|
-k "$${PYTEST_FILTER}" \
|
||||||
$(shell cd src/ && ls -1 */__init__.py | awk '{ sub(/\/__init__.py/, "", $$1); print "--cov "$$1 }') \
|
$(shell cd src/ && ls -1 */__init__.py | awk '{ sub(/\/__init__.py/, "", $$1); print "--cov "$$1 }') \
|
||||||
test/ src/;
|
test/ src/;
|
||||||
|
|
@ -394,9 +414,9 @@ test:
|
||||||
## -- Helpers --
|
## -- Helpers --
|
||||||
|
|
||||||
|
|
||||||
## Run code formatter on src/ and test/
|
## Run import sorting on src/ and test/
|
||||||
.PHONY: fmt
|
.PHONY: fmt_isort
|
||||||
fmt:
|
fmt_isort:
|
||||||
@$(DEV_ENV)/bin/isort \
|
@$(DEV_ENV)/bin/isort \
|
||||||
--force-single-line-imports \
|
--force-single-line-imports \
|
||||||
--length-sort \
|
--length-sort \
|
||||||
|
|
@ -405,6 +425,10 @@ fmt:
|
||||||
--project $(PKG_NAME) \
|
--project $(PKG_NAME) \
|
||||||
src/ test/;
|
src/ test/;
|
||||||
|
|
||||||
|
|
||||||
|
## Run code formatter on src/ and test/
|
||||||
|
.PHONY: fmt_sjfmt
|
||||||
|
fmt_sjfmt:
|
||||||
@$(DEV_ENV)/bin/sjfmt \
|
@$(DEV_ENV)/bin/sjfmt \
|
||||||
--target-version=py36 \
|
--target-version=py36 \
|
||||||
--skip-string-normalization \
|
--skip-string-normalization \
|
||||||
|
|
@ -412,10 +436,14 @@ fmt:
|
||||||
src/ test/;
|
src/ test/;
|
||||||
|
|
||||||
|
|
||||||
|
## Run code formatters
|
||||||
|
.PHONY: fmt
|
||||||
|
fmt: fmt_isort fmt_sjfmt
|
||||||
|
|
||||||
## Shortcut for make fmt lint mypy test
|
|
||||||
|
## Shortcut for make fmt lint mypy devtest test
|
||||||
.PHONY: check
|
.PHONY: check
|
||||||
check: fmt lint mypy test
|
check: fmt lint mypy devtest test
|
||||||
|
|
||||||
|
|
||||||
## Start subshell with environ variables set.
|
## Start subshell with environ variables set.
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,9 @@ flake8-comprehensions
|
||||||
flake8-junit-report
|
flake8-junit-report
|
||||||
pylint
|
pylint
|
||||||
mypy
|
mypy
|
||||||
isort
|
# pylint doesn't support isort>=5 for now
|
||||||
|
# https://github.com/PyCQA/pylint/issues/3722
|
||||||
|
isort<5
|
||||||
|
|
||||||
# http://doc.pytest.org/en/latest/py27-py34-deprecation.html
|
# http://doc.pytest.org/en/latest/py27-py34-deprecation.html
|
||||||
# The pytest 4.6 series will be the last to support Python 2.7
|
# The pytest 4.6 series will be the last to support Python 2.7
|
||||||
|
|
@ -28,7 +30,9 @@ isort
|
||||||
# pytest 5.0 and onwards will support only Python 3.5+.
|
# pytest 5.0 and onwards will support only Python 3.5+.
|
||||||
pytest<5.0
|
pytest<5.0
|
||||||
pytest-cov
|
pytest-cov
|
||||||
pytest-html
|
# https://github.com/pytest-dev/pytest-html/blob/master/CHANGES.rst
|
||||||
|
# pytest-html 2.0+ doesn't support python2.7
|
||||||
|
pytest-html<2.0
|
||||||
|
|
||||||
readme_renderer[md]
|
readme_renderer[md]
|
||||||
twine
|
twine
|
||||||
|
|
|
||||||
45
setup.cfg
45
setup.cfg
|
|
@ -12,6 +12,13 @@ strict_optional = True
|
||||||
ignore_missing_imports = True
|
ignore_missing_imports = True
|
||||||
show_error_codes = True
|
show_error_codes = True
|
||||||
|
|
||||||
|
[tool:isort]
|
||||||
|
known_third_party = pathlib2
|
||||||
|
force_single_line = True
|
||||||
|
length_sort = True
|
||||||
|
line_length = 100
|
||||||
|
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
max-line-length = 100
|
max-line-length = 100
|
||||||
max-complexity = 10
|
max-complexity = 10
|
||||||
|
|
@ -48,6 +55,8 @@ ignore =
|
||||||
D102
|
D102
|
||||||
# Missing docstring in public function
|
# Missing docstring in public function
|
||||||
D103
|
D103
|
||||||
|
# Missing docstring in public package
|
||||||
|
# D104
|
||||||
# Missing docstring in magic method
|
# Missing docstring in magic method
|
||||||
# D105
|
# D105
|
||||||
# Missing docstring on __init__
|
# Missing docstring on __init__
|
||||||
|
|
@ -97,3 +106,39 @@ README.md =
|
||||||
img.shields.io/static/v1.svg?label=PyCalVer&message={version}&color=blue
|
img.shields.io/static/v1.svg?label=PyCalVer&message={version}&color=blue
|
||||||
Successfully installed pycalver-{pep440_version}
|
Successfully installed pycalver-{pep440_version}
|
||||||
pycalver, version {version}
|
pycalver, version {version}
|
||||||
|
|
||||||
|
|
||||||
|
[tool:pylint]
|
||||||
|
score = yes
|
||||||
|
|
||||||
|
# pylint-ignore only works with jobs = 1
|
||||||
|
jobs = 1
|
||||||
|
|
||||||
|
# Set the output format. Available formats are text, parseable, colorized,
|
||||||
|
# msvs (visual studio) and html. You can also give a reporter class, eg
|
||||||
|
# mypackage.mymodule.MyReporterClass.
|
||||||
|
output-format = colorized
|
||||||
|
|
||||||
|
# Maximum number of locals for function / method body
|
||||||
|
max-locals = 20
|
||||||
|
|
||||||
|
# Maximum number of arguments for function / method
|
||||||
|
max-args = 8
|
||||||
|
|
||||||
|
good-names = logger,i,ex
|
||||||
|
|
||||||
|
# These are packages that are implemented as c extensions and
|
||||||
|
# which pylint cannot do introspection on.
|
||||||
|
extension-pkg-whitelist = numpy,pandas,lxml,PIL,sklearn,pyblake2
|
||||||
|
|
||||||
|
notes=TODO,FIXME,XXX,SLOW,BUG
|
||||||
|
|
||||||
|
# https://pylint.pycqa.org/en/stable/technical_reference/features.html
|
||||||
|
disable =
|
||||||
|
bad-continuation,
|
||||||
|
bad-whitespace,
|
||||||
|
logging-fstring-interpolation,
|
||||||
|
missing-docstring,
|
||||||
|
missing-module-docstring,
|
||||||
|
missing-class-docstring,
|
||||||
|
missing-function-docstring,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue