diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100644 index ba6c980bb..000000000 --- a/.appveyor.yml +++ /dev/null @@ -1,49 +0,0 @@ -environment: - matrix: - - PYTHON: "C:\\Python37-x64" - - PYTHON: "C:\\Python36-x64" - - PYTHON: "C:\\Python35-x64" - -init: -- "chcp 65001" -- ps: >- - if($env:APPVEYOR_RDP_DEBUG -eq 'True') { - iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) - } - -install: -# symlink python from a directory with a space -- "mklink /d \"C:\\Program Files\\Python\" %PYTHON%" -- "SET PYTHON=\"C:\\Program Files\\Python\"" -- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" -- "python -m pip install tox" -- "python -m tox --notest" - - -before_build: -- "python -m pip install wheel" - -build_script: -- python -m setup bdist_wheel - -test_script: -- tox - -on_finish: -- ps: >- - if($env:APPVEYOR_RDP_DEBUG -eq 'True') { - $blockRdp = $true - iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) - } -- ps: | - $wc = New-Object 'System.Net.WebClient' - $wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\.test-results\pytest\results.xml)) - -#deploy_script: -#- ps: >- -# if($env:appveyor_repo_tag -eq 'True') { -# Invoke-Expression "python -m twine upload dist/* --username $env:PYPI_USERNAME --password $env:PYPI_PASSWORD" -# } - -artifacts: -- path: dist\* diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 9a3a8b380..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,52 +0,0 @@ -version: 2 -jobs: - macos-build: - macos: - xcode: "12.2.0" - - steps: - - run: brew install pyenv readline xz - - - run: |- - # https://circleci.com/docs/2.0/env-vars/#interpolating-environment-variables-to-set-other-environment-variables - echo ' - export PYENV_ROOT="$HOME/.pyenv" - export PATH="$PYENV_ROOT/bin:$PATH" - ' >> $BASH_ENV - - - run: |- - for py_ver in 3.7.0 3.6.4 3.5.4 pypy3.5-6.0.0 - do - pyenv install "$py_ver" & - done - wait - - run: pyenv global 3.7.0 3.6.4 3.5.4 pypy3.5-6.0.0 - - - run: python3 -m pip install --upgrade pip wheel - - run: python3 -m pip install tox tox-pyenv - - checkout - - run: tox -e py35,py36,py37 -- -p no:sugar # , pypy3 - - store_test_results: - path: .test-results - - store_artifacts: - path: .test-results - - linux-build: - docker: - - image: randomknowledge/docker-pyenv-tox - - steps: - - checkout - - run: pip install tox - - run: tox -e py35,py36,py37 - - store_test_results: - path: .test-results - - store_artifacts: - path: .test-results - -workflows: - version: 2 - test-linux-and-macos: - jobs: - - macos-build - - linux-build diff --git a/.codecov.yml b/.codecov.yml index 9fff0529b..9dc7af4a9 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -1,8 +1,13 @@ +--- + codecov: bot: codecov notify: require_ci_to_pass: yes + token: >- # notsecret # repo-scoped, upload-only, stability in fork PRs + 88c87da1-0386-456d-aca6-7cf0580b3f51 + coverage: precision: 2 round: down @@ -26,3 +31,5 @@ comment: layout: "header, diff" behavior: default require_changes: no + +... diff --git a/.flake8 b/.flake8 index 469fed682..cb2364b37 100644 --- a/.flake8 +++ b/.flake8 @@ -1,6 +1,8 @@ [flake8] ignore = - # W503 violates spec https://github.com/PyCQA/pycodestyle/issues/513 - W503 - # W504 has issues https://github.com/OCA/maintainer-quality-tools/issues/545 - W504 + # E203: whitespace before ':', conflicts with `ruff format` + E203, + # W503 violates spec https://github.com/PyCQA/pycodestyle/issues/513 + W503 + # W504 has issues https://github.com/OCA/maintainer-quality-tools/issues/545 + W504 diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 000000000..b650caa02 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,85 @@ +# `git blame` master ignore list. +# +# This file contains a list of git hashes of revisions to be ignored +# by `git blame`. These revisions are considered "unimportant" in +# that they are unlikely to be what you are interested in when blaming. +# They are typically expected to be formatting-only changes. +# +# It can be used for `git blame` using `--ignore-revs-file` or by +# setting `blame.ignoreRevsFile` in the `git config`[1]. +# +# Ignore these commits when reporting with blame. Calling +# +# git blame --ignore-revs-file .git-blame-ignore-revs +# +# will tell `git blame` to ignore changes made by these revisions when +# assigning blame, as if the change never happened. +# +# You can enable this as a default for your local repository by +# running +# +# git config blame.ignoreRevsFile .git-blame-ignore-revs +# +# This will probably be automatically picked by your IDE +# (VSCode+GitLens and JetBrains products are confirmed to do this). +# +# Important: if you are switching to a branch without this file, +# `git blame` will fail with an error. +# +# GitHub also excludes the commits listed below from its "Blame" +# views[2][3]. +# +# [1]: https://git-scm.com/docs/git-blame#Documentation/git-blame.txt-blameignoreRevsFile +# [2]: https://github.blog/changelog/2022-03-24-ignore-commits-in-the-blame-view-beta/ +# [3]: https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view +# +# Guidelines: +# - Only large (generally automated) reformatting or renaming PRs +# should be added to this list. Do not put things here just because +# you feel they are trivial or unimportant. If in doubt, do not put +# it on this list. +# - When adding a single revision, use a comment on top of the line +# to link relevant issue/PR. Alternatively, paste the commit title +# instead. +# Example: +# # https://github.com/sanitizers/octomachinery/issues/1 +# d4a8b7307acc2dc8a8833ccfa65426ad28b3ffc9 +# - When adding multiple revisions (like a bulk of work over many +# commits), organize them in blocks. Precede each such block with a +# comment starting with the word "START", followed by a link to the +# relevant issue or PR. Add a similar comment after the last block +# line but use the word "END", followed by the same link. +# Alternatively, add or augment the link with a text motivation and +# description of work performed in each commit. +# Before each individual commit in the block, add an inline comment +# with the commit title line. +# Example: +# # START https://github.com/sanitizers/octomachinery/issues/1 +# # Bulk-replace smile emojis with unicorns +# 6f0bd2d8a1e6cd2e794cd39976e9756e0c85ac66 +# # Replace double with single quotes +# d53974df11dbc22cbea9dc7dcbc9896c25979a27 +# ... +# # END https://github.com/sanitizers/octomachinery/issues/1 +# - Only put full 40-character hashes on this list (not short hashes +# or any other revision reference). +# - Append to the bottom of the file, regardless of the chronological +# order of the revisions. Revisions within blocks should be in +# chronological order from oldest to newest. +# - Because you must use a hash, you need to append to this list in a +# follow-up PR to the actual reformatting PR that you are trying to +# ignore. This approach helps avoid issues with arbitrary rebases +# and squashes while the pull request is in progress. + + +# πŸ€– Process docstrings with docformatter +deeb3ae64c8039d136dbe958b2301049d8dfae72 + +# πŸ‘Ή Feed the hobgoblins (delint). +5fe3dcef35d44ab60e32e5130d2e37089820bc4a + +# Revert "πŸ‘Ή Feed the hobgoblins (delint)." +d968aaf8043a81ce4a636268ba8a42cb717ca316 + +# πŸ€– Apply Ruff formatting +925123b66b5a42e36dc2fe08aae6dd27c8c4bc5b diff --git a/.git_archival.txt b/.git_archival.txt new file mode 100644 index 000000000..6acb3b415 --- /dev/null +++ b/.git_archival.txt @@ -0,0 +1,3 @@ +node: $Format:%H$ +node-date: $Format:%cI$ +describe-name: $Format:%(describe:tags=true,match=v[0-9]*)$ diff --git a/.gitattributes b/.gitattributes index 00e5815fd..84cc7a593 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,7 @@ +# Needed for setuptools-scm-git-archive +.git_archival.txt export-subst + +# Blame ignore list entries are expected to always be appended, never edited +.git-blame-ignore-revs merge=union + /CHANGES.rst merge=union diff --git a/.github/CONTRIBUTING.rst b/.github/CONTRIBUTING.rst index dd21f7538..999f1af68 100644 --- a/.github/CONTRIBUTING.rst +++ b/.github/CONTRIBUTING.rst @@ -28,5 +28,5 @@ python version, and any other related software versions. Also ---- -See `Contributing `_ in +See `Contributing `_ in the docs. diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 6955eab7e..5ce8b9bd4 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,14 +1,12 @@ -# These are supported funding model platforms +--- -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +github: - jaraco - webknjaz -# patreon: # Replace with a single Patreon username # open_collective: # Replace with a single Open Collective username # ko_fi: # Replace with a single Ko-fi username -tidelift: pypi/CherryPy # A single Tidelift platform-name/package-name e.g., npm/babel -# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +tidelift: pypi/CherryPy # liberapay: # Replace with a single Liberapay username -# issuehunt: # Replace with a single IssueHunt username -# otechie: # Replace with a single Otechie username -# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] +# custom: # Replace with up to 4 custom sponsorship URLs + +... diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index ee3e4b860..af86b79f9 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,7 +1,7 @@