Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-devpi-process for
openSUSE:Factory checked in at 2023-10-03 20:15:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-devpi-process (Old)
and /work/SRC/openSUSE:Factory/.python-devpi-process.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-devpi-process"
Tue Oct 3 20:15:27 2023 rev:2 rq:1114346 version:1.0.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-devpi-process/python-devpi-process.changes
2023-05-11 12:34:18.126943668 +0200
+++
/work/SRC/openSUSE:Factory/.python-devpi-process.new.28202/python-devpi-process.changes
2023-10-03 20:17:11.074655839 +0200
@@ -1,0 +2,13 @@
+Tue Sep 26 19:22:07 UTC 2023 - Torsten Gruner <[email protected]>
+
+- update to version 1.0.0
+ * Exclude dependabot and pre-commit ci from release notes
+- version 0.3.1
+ * Add pyproject-fmt
+ * [pre-commit.ci] pre-commit autoupdate
+ * Bump deps and tools
+ * Bump pypa/gh-action-pypi-publish 1.8.6
+ * Add ruff
+- split package to prevent build dependency (multibuild)
+
+-------------------------------------------------------------------
Old:
----
devpi_process-0.3.0.tar.gz
New:
----
_multibuild
devpi_process-1.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-devpi-process.spec ++++++
--- /var/tmp/diff_new_pack.x5Dp76/_old 2023-10-03 20:17:12.382703015 +0200
+++ /var/tmp/diff_new_pack.x5Dp76/_new 2023-10-03 20:17:12.382703015 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package python-devpi-process
+# spec file
#
# Copyright (c) 2023 SUSE LLC
#
@@ -16,27 +16,43 @@
#
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "test"
+%define psuffix -test
+%bcond_without test
+%else
+%define psuffix %{nil}
+%bcond_with test
+%endif
%{?sle15_python_module_pythons}
-Name: python-devpi-process
-Version: 0.3.0
+%define skip_python39 1
+Name: python-devpi-process%{psuffix}
+Version: 1.0.0
Release: 0
Summary: Programmatic API to create and use a devpi server process
License: MIT
URL: https://github.com/tox-dev/devpi-process
-Source:
https://files.pythonhosted.org/packages/source/d/devpi_process/devpi_process-0.3.0.tar.gz
+Source:
https://files.pythonhosted.org/packages/source/d/devpi_process/devpi_process-%{version}.tar.gz
+BuildRequires: %{python_module hatch-vcs >= 0.3}
+BuildRequires: %{python_module hatchling >= 1.18}
BuildRequires: %{python_module pip}
+BuildRequires: %{python_module typing-extensions >= 4.7.1 if %python-base <
3.11}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-devpi-client >= 6.0.2
-Requires: python-devpi-server >= 6.7
-Suggests: python-httpx >= 0.23.1
+Requires: python-devpi-client >= 6.0.5
+Requires: python-devpi-server >= 6.9.2
+Suggests: python-httpx >= 0.24.1
BuildArch: noarch
# SECTION test requirements
-BuildRequires: %{python_module devpi-client >= 6.0.2}
-BuildRequires: %{python_module devpi-server >= 6.7}
-BuildRequires: %{python_module httpx}
-BuildRequires: %{python_module pytest >= 7.2}
+%if %{with test}
+BuildRequires: %{python_module covdefaults >= 2.3}
+BuildRequires: %{python_module devpi-client >= 6.0.5}
+BuildRequires: %{python_module devpi-server >= 6.8}
+BuildRequires: %{python_module httpx >= 0.24.1}
+BuildRequires: %{python_module pytest >= 7.4}
+BuildRequires: %{python_module pytest-cov}
+%endif
# /SECTION
%python_subpackages
@@ -46,10 +62,10 @@
%prep
%autosetup -p1 -n devpi_process-%{version}
-
-# Both of these issues are resolved in the upstream master
-sed -i -e '/^license_file =/s/ =/s =/' \
- -e '/^name/aversion = %{version}' setup.cfg
+# Fix version check for pytest
+sed -i -e '/import devpi_process/a\ \ \ \ from importlib import metadata'
tests/test_devpi_process.py
+sed -i "s/^.*assert devpi_process.__version__/ assert
metadata.version('devpi_process')/" tests/test_devpi_process.py
+sed -i "s/from ._version import __version__/from ._version import version/"
src/devpi_process/__init__.py
%build
%pyproject_wheel
@@ -59,11 +75,16 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
+%if %{with test}
%pytest
+%python_expand rm -r -f %{buildroot}/usr
+%endif
+%if !%{with test}
%files %{python_files}
%doc CHANGELOG.md README.md
%license LICENSE.txt
%{python_sitelib}/devpi_process
%{python_sitelib}/devpi_process-%{version}*-info
+%endif
++++++ _multibuild ++++++
<multibuild>
<package>test</package>
</multibuild>
++++++ devpi_process-0.3.0.tar.gz -> devpi_process-1.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/.github/release.yml
new/devpi_process-1.0.0/.github/release.yml
--- old/devpi_process-0.3.0/.github/release.yml 1970-01-01 01:00:00.000000000
+0100
+++ new/devpi_process-1.0.0/.github/release.yml 2020-02-02 01:00:00.000000000
+0100
@@ -0,0 +1,5 @@
+changelog:
+ exclude:
+ authors:
+ - dependabot
+ - pre-commit-ci
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/.github/workflows/check.yml
new/devpi_process-1.0.0/.github/workflows/check.yml
--- old/devpi_process-0.3.0/.github/workflows/check.yml 2022-12-03
23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/.github/workflows/check.yml 2020-02-02
01:00:00.000000000 +0100
@@ -1,6 +1,7 @@
name: check
on:
push:
+ tags-ignore: ["**"]
pull_request:
schedule:
- cron: "0 8 * * *"
@@ -19,12 +20,10 @@
py:
- "3.11"
- "3.10"
- - "pypy-3.7-v7.3.7" # ahead to start it earlier because takes longer
- "3.9"
- "3.8"
- - "3.7"
os:
- - ubuntu-22.04
+ - ubuntu-latest
- windows-2022
- macos-12
@@ -65,7 +64,7 @@
fail-fast: false
matrix:
os:
- - ubuntu-22.04
+ - ubuntu-latest
- windows-2022
tox_env:
- dev
@@ -87,26 +86,3 @@
run: tox -vv --notest -e ${{ matrix.tox_env }}
- name: Run test suite
run: tox --skip-pkg-install -e ${{ matrix.tox_env }}
-
- publish:
- if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
- needs: [check, test]
- runs-on: ubuntu-latest
- steps:
- - name: Setup python to build package
- uses: actions/setup-python@v4
- with:
- python-version: "3.11"
- - name: Install build
- run: python -m pip install build
- - uses: actions/checkout@v3
- with:
- fetch-depth: 0
- - name: Build sdist and wheel
- run: python -m build -s -w . -o dist
- - name: Publish to PyPi
- uses: pypa/[email protected]
- with:
- skip_existing: true
- user: __token__
- password: ${{ secrets.pypi_password }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/.github/workflows/release.yml
new/devpi_process-1.0.0/.github/workflows/release.yml
--- old/devpi_process-0.3.0/.github/workflows/release.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/devpi_process-1.0.0/.github/workflows/release.yml 2020-02-02
01:00:00.000000000 +0100
@@ -0,0 +1,27 @@
+name: Release to PyPI
+on:
+ push:
+ tags: ["*"]
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ environment:
+ name: release
+ url: https://pypi.org/p/devpi-process
+ permissions:
+ id-token: write
+ steps:
+ - name: Setup python to build package
+ uses: actions/setup-python@v4
+ with:
+ python-version: "3.11"
+ - name: Install build
+ run: python -m pip install build
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: Build package
+ run: pyproject-build -s -w . -o dist
+ - name: Publish to PyPI
+ uses: pypa/[email protected]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/.gitignore
new/devpi_process-1.0.0/.gitignore
--- old/devpi_process-0.3.0/.gitignore 2022-12-03 23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/.gitignore 2020-02-02 01:00:00.000000000 +0100
@@ -1,11 +1,7 @@
-.idea
-*.egg-info/
-.tox/
+/.tox
.coverage*
coverage.xml
.*_cache
__pycache__
**.pyc
-build
-dist
-src/devpi_process/version.py
+src/devpi_process/_version.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/.pre-commit-config.yaml
new/devpi_process-1.0.0/.pre-commit-config.yaml
--- old/devpi_process-0.3.0/.pre-commit-config.yaml 2022-12-03
23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/.pre-commit-config.yaml 2020-02-02
01:00:00.000000000 +0100
@@ -2,68 +2,32 @@
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- - id: check-ast
- - id: check-builtin-literals
- - id: check-docstring-first
- - id: check-merge-conflict
- - id: check-yaml
- - id: check-toml
- - id: debug-statements
- id: end-of-file-fixer
- id: trailing-whitespace
- - repo: https://github.com/asottile/pyupgrade
- rev: v3.3.0
+ - repo: https://github.com/astral-sh/ruff-pre-commit
+ rev: "v0.0.285"
hooks:
- - id: pyupgrade
- args: ["--py36-plus"]
- - repo: https://github.com/PyCQA/isort
- rev: 5.10.1
- hooks:
- - id: isort
+ - id: ruff
+ args: [--fix, --exit-non-zero-on-fix]
- repo: https://github.com/psf/black
- rev: 22.10.0
+ rev: 23.7.0
hooks:
- id: black
- args: [--safe]
- - repo: https://github.com/asottile/blacken-docs
- rev: v1.12.1
- hooks:
- - id: blacken-docs
- additional_dependencies: [black==22.10]
- - repo: https://github.com/asottile/setup-cfg-fmt
- rev: v2.2.0
- hooks:
- - id: setup-cfg-fmt
- repo: https://github.com/tox-dev/tox-ini-fmt
- rev: "0.5.2"
+ rev: "1.3.1"
hooks:
- id: tox-ini-fmt
args: ["-p", "fix"]
- - repo: https://github.com/PyCQA/flake8
- rev: 6.0.0
+ - repo: https://github.com/tox-dev/pyproject-fmt
+ rev: "0.13.1"
hooks:
- - id: flake8
- additional_dependencies:
- - flake8-bugbear==22.10.27
- - flake8-comprehensions==3.10.1
- - flake8-pytest-style==1.6
- - flake8-spellcheck==0.28
- - flake8-unused-arguments==0.0.12
- - flake8-noqa==1.3
- - pep8-naming==0.13.2
- - flake8-pyproject==1.2.1
+ - id: pyproject-fmt
+ additional_dependencies: ["tox>=4.8"]
- repo: https://github.com/pre-commit/mirrors-prettier
- rev: "v2.7.1"
+ rev: "v3.0.2"
hooks:
- id: prettier
- additional_dependencies:
- - [email protected]
- - "@prettier/[email protected]"
args: ["--print-width=120", "--prose-wrap=always"]
- - repo: https://github.com/igorshubovych/markdownlint-cli
- rev: v0.32.2
- hooks:
- - id: markdownlint
- repo: meta
hooks:
- id: check-hooks-apply
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/CODE_OF_CONDUCT.md
new/devpi_process-1.0.0/CODE_OF_CONDUCT.md
--- old/devpi_process-0.3.0/CODE_OF_CONDUCT.md 2022-12-03 23:52:08.000000000
+0100
+++ new/devpi_process-1.0.0/CODE_OF_CONDUCT.md 2020-02-02 01:00:00.000000000
+0100
@@ -44,9 +44,9 @@
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at
[email protected]. The project team will review and investigate all
complaints, and will respond in a way that it deems
-appropriate to the circumstances. The project team is obligated to maintain
confidentiality with regard to the reporter
-of an incident. Further details of specific enforcement policies may be posted
separately.
+`[email protected]`. The project team will review and investigate all
complaints, and will respond in a way that it
+deems appropriate to the circumstances. The project team is obligated to
maintain confidentiality with regard to the
+reporter of an incident. Further details of specific enforcement policies may
be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent
repercussions as determined by other members of the project's leadership.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/PKG-INFO
new/devpi_process-1.0.0/PKG-INFO
--- old/devpi_process-0.3.0/PKG-INFO 2022-12-03 23:52:15.693089700 +0100
+++ new/devpi_process-1.0.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,36 +1,47 @@
Metadata-Version: 2.1
-Name: devpi_process
-Version: 0.3.0
+Name: devpi-process
+Version: 1.0.0
Summary: devpi process provides a programmatic API to create and use a devpi
server process
-Home-page: https://github.com/tox-dev/devpi-process
-Maintainer: Bernat Gabor
-Maintainer-email: [email protected]
-License: MIT
+Project-URL: Homepage, https://github.com/tox-dev/devpi-process#readme
Project-URL: Source, https://github.com/tox-dev/devpi-process
-Project-URL: Tracker, https://github.com/tox-dev/devpi-process
-Keywords: devpi,programmatic
-Platform: any
+Project-URL: Tracker, https://github.com/tox-dev/devpi-process/issues
+Author-email: Bernát Gábor <[email protected]>
+Maintainer-email: Bernát Gábor <[email protected]>
+License-Expression: MIT
+License-File: LICENSE.txt
+Keywords: environments,isolated,testing,virtual
Classifier: Development Status :: 5 - Production/Stable
+Classifier: Framework :: tox
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
-Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries
+Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Utilities
-Requires-Python: >=3.7
-Description-Content-Type: text/markdown
+Requires-Python: >=3.8
+Requires-Dist: devpi-client>=6.0.5
+Requires-Dist: devpi-server>=6.9.2
+Requires-Dist: typing-extensions>=4.7.1; python_version < '3.11'
Provides-Extra: test
-License-File: LICENSE.txt
+Requires-Dist: covdefaults>=2.3; extra == 'test'
+Requires-Dist: httpx>=0.24.1; extra == 'test'
+Requires-Dist: pytest-cov>=4.1; extra == 'test'
+Requires-Dist: pytest>=7.4; extra == 'test'
+Description-Content-Type: text/markdown
# devpi-process
[](https://pypi.org/project/devpi-process)
[](https://pypi.org/project/devpi-process)
[](https://pypi.org/project/devpi-process)
-[](https://pypistats.org/packages/devpi-process)
+[](https://pepy.tech/project/devpi-process)
[](https://opensource.org/licenses/MIT)
[](https://github.com/tox-dev/devpi-process/actions?query=workflow%3Acheck)
[](https://pypi.org/project/devpi-process)
[](https://pypi.org/project/devpi-process)
[](https://pypi.org/project/devpi-process)
-[](https://pypistats.org/packages/devpi-process)
+[](https://pepy.tech/project/devpi-process)
[](https://opensource.org/licenses/MIT)
[](https://github.com/tox-dev/devpi-process/actions?query=workflow%3Acheck)
[![Code style:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/codecov.yml
new/devpi_process-1.0.0/codecov.yml
--- old/devpi_process-0.3.0/codecov.yml 2022-12-03 23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/codecov.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-coverage:
- status:
- patch:
- default:
- informational: true
-comment: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/pyproject.toml
new/devpi_process-1.0.0/pyproject.toml
--- old/devpi_process-0.3.0/pyproject.toml 2022-12-03 23:52:08.000000000
+0100
+++ new/devpi_process-1.0.0/pyproject.toml 2020-02-02 01:00:00.000000000
+0100
@@ -1,31 +1,106 @@
[build-system]
-requires = ["setuptools>=65.6.3", "setuptools_scm>=7.0.5"]
-build-backend = 'setuptools.build_meta'
+build-backend = "hatchling.build"
+requires = [
+ "hatch-vcs>=0.3",
+ "hatchling>=1.18",
+]
+
+[project]
+name = "devpi-process"
+description = "devpi process provides a programmatic API to create and use a
devpi server process"
+readme.content-type = "text/markdown"
+readme.file = "README.md"
+keywords = [
+ "environments",
+ "isolated",
+ "testing",
+ "virtual",
+]
+license = "MIT"
+maintainers = [{ name = "Bernát Gábor", email = "[email protected]" }]
+authors = [{ name = "Bernát Gábor", email = "[email protected]" }]
+requires-python = ">=3.8"
+classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "Framework :: tox",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: MIT License",
+ "Operating System :: MacOS :: MacOS X",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX",
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
+ "Topic :: Software Development :: Libraries",
+ "Topic :: Software Development :: Testing",
+ "Topic :: Utilities",
+]
+dynamic = [
+ "version",
+]
+dependencies = [
+ "devpi-client>=6.0.5",
+ "devpi-server>=6.9.2",
+ 'typing-extensions>=4.7.1; python_version < "3.11"',
+]
+optional-dependencies.test = [
+ "covdefaults>=2.3",
+ "httpx>=0.24.1",
+ "pytest>=7.4",
+ "pytest-cov>=4.1",
+]
+urls.Homepage = "https://github.com/tox-dev/devpi-process#readme"
+urls.Source = "https://github.com/tox-dev/devpi-process"
+urls.Tracker = "https://github.com/tox-dev/devpi-process/issues"
+
+[tool.hatch]
+build.hooks.vcs.version-file = "src/devpi_process/_version.py"
+version.source = "vcs"
[tool.black]
line-length = 120
-[tool.isort]
-profile = "black"
-known_first_party = ["devpi_process"]
-
-[tool.setuptools_scm]
-write_to = "src/devpi_process/version.py"
-write_to_template = """
-\"\"\" Version information \"\"\"
-
-__version__ = "{version}"
-"""
-
-[tool.pep8]
-max-line-length = "120"
-
-[tool.flake8]
-max-complexity = 22
-max-line-length = 120
-unused-arguments-ignore-abstract-functions = true
-noqa-require-code = true
-dictionaries = ["en_US", "python", "technical", "django"]
+[tool.ruff]
+select = ["ALL"]
+line-length = 120
+target-version = "py38"
+isort = {known-first-party = ["devpi_process"], required-imports = ["from
__future__ import annotations"]}
ignore = [
- "E203", # whitespace before ':'
+ "ANN101", # no typoe annotation for self
+ "ANN401", # allow Any as type annotation
+ "D203", # `one-blank-line-before-class` (D203) and
`no-blank-line-before-class` (D211) are incompatible
+ "D212", # `multi-line-summary-first-line` (D212) and
`multi-line-summary-second-line` (D213) are incompatible
+ "S104", # Possible binding to all interface
+]
+[tool.ruff.per-file-ignores]
+"tests/**/*.py" = [
+ "S101", # asserts allowed in tests...
+ "FBT", # don"t care about booleans as positional arguments in tests
+ "INP001", # no implicit namespace
+ "D", # don"t care about documentation in tests
+ "S603", # `subprocess` call: check for execution of untrusted input
+ "PLR2004", # Magic value used in comparison, consider replacing with a
constant variable
+]
+
+[tool.coverage]
+html.show_contexts = true
+html.skip_covered = false
+paths.source = [
+ "src",
+ ".tox*/*/lib/python*/site-packages",
+ ".tox*/pypy*/site-packages",
+ ".tox*\\*\\Lib\\site-packages",
+ "*/src",
+ "*\\src",
]
+report.fail_under = 98
+report.omit = []
+run.parallel = true
+run.plugins = ["covdefaults"]
+
+[tool.mypy]
+python_version = "3.11"
+show_error_codes = true
+strict = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/setup.cfg
new/devpi_process-1.0.0/setup.cfg
--- old/devpi_process-0.3.0/setup.cfg 2022-12-03 23:52:15.693089700 +0100
+++ new/devpi_process-1.0.0/setup.cfg 1970-01-01 01:00:00.000000000 +0100
@@ -1,82 +0,0 @@
-[metadata]
-name = devpi_process
-description = devpi process provides a programmatic API to create and use a
devpi server process
-long_description = file: README.md
-long_description_content_type = text/markdown
-url = https://github.com/tox-dev/devpi-process
-maintainer = Bernat Gabor
-maintainer_email = [email protected]
-license = MIT
-license_file = LICENSE.txt
-platforms = any
-classifiers =
- Development Status :: 5 - Production/Stable
- Intended Audience :: Developers
- License :: OSI Approved :: MIT License
- Operating System :: MacOS :: MacOS X
- Operating System :: Microsoft :: Windows
- Operating System :: POSIX
- Programming Language :: Python :: 3
- Programming Language :: Python :: 3 :: Only
- Topic :: Software Development :: Libraries
- Topic :: Utilities
-keywords = devpi, programmatic
-project_urls =
- Source=https://github.com/tox-dev/devpi-process
- Tracker=https://github.com/tox-dev/devpi-process
-
-[options]
-packages = find:
-install_requires =
- devpi-client>=6.0.2
- devpi-server>=6.7
-python_requires = >=3.7
-include_package_data = True
-package_dir =
- =src
-zip_safe = True
-
-[options.packages.find]
-where = src
-
-[options.extras_require]
-test =
- covdefaults>=2.2.2
- httpx>=0.23.1
- pytest>=7.2
- pytest-cov>=4
-
-[options.package_data]
-devpi_process = py.typed
-
-[sdist]
-formats = gztar
-
-[coverage:run]
-plugins = covdefaults
-parallel = true
-
-[coverage:paths]
-src =
- src
- .tox/*/lib/python*/site-packages
- .tox/pypy*/site-packages
- .tox\*\Lib\site-packages\
- */src
- *\src
-other =
- .
- */devpi-process
- *\devpi-process
-
-[coverage:report]
-fail_under = 100
-
-[coverage:html]
-show_contexts = true
-skip_covered = false
-
-[egg_info]
-tag_build =
-tag_date = 0
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/setup.py
new/devpi_process-1.0.0/setup.py
--- old/devpi_process-0.3.0/setup.py 2022-12-03 23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/setup.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-from __future__ import annotations
-
-from setuptools import setup
-
-setup()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/src/devpi_process/__init__.py
new/devpi_process-1.0.0/src/devpi_process/__init__.py
--- old/devpi_process-0.3.0/src/devpi_process/__init__.py 2022-12-03
23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/src/devpi_process/__init__.py 2020-02-02
01:00:00.000000000 +0100
@@ -1,3 +1,4 @@
+"""Devpi PyPI to test with."""
from __future__ import annotations
import random
@@ -9,18 +10,35 @@
from pathlib import Path
from subprocess import PIPE, Popen, run
from threading import Thread
-from types import TracebackType
-from typing import IO, Iterator, Sequence, cast
+from typing import IO, TYPE_CHECKING, Iterator, Sequence, cast
-from .version import __version__
+from ._version import __version__
+
+if TYPE_CHECKING:
+ from types import TracebackType
+
+ if sys.version_info >= (3, 11): # pragma: no cover (py311+)
+ from typing import Self
+ else: # pragma: no cover (<py311)
+ from typing_extensions import Self
def _check_call(cmd: list[str]) -> None:
- run(cmd, check=True, stdout=PIPE, stderr=PIPE)
+ run(cmd, check=True, capture_output=True) # noqa: S603
class Index:
+ """Index."""
+
def __init__(self, base_url: str, name: str, user: str, client_cmd_base:
list[str]) -> None:
+ """
+ Create index.
+
+ :param base_url: base url
+ :param name: name for the index server
+ :param user: the username to use
+ :param client_cmd_base:
+ """
self._client_cmd_base = client_cmd_base
self._server_url = base_url
self.name = name
@@ -28,31 +46,54 @@
@property
def url(self) -> str:
+ """:return: the URL to the index server"""
return f"{self._server_url}/{self.name}/+simple/"
def use(self) -> None:
- _check_call(self._client_cmd_base + ["use",
f"{self.user}/{self.name}"])
+ """Use this index server."""
+ _check_call([*self._client_cmd_base, "use",
f"{self.user}/{self.name}"])
def upload(self, *files: Path) -> None:
+ """
+ Upload packages to the index.
+
+ :param files: the files to upload
+ """
cmd = self._client_cmd_base + ["upload", "--index", self.name] +
[str(i) for i in files]
_check_call(cmd)
def __repr__(self) -> str:
+ """:return: repr of the index"""
return f"{self.__class__.__name__}(url={self.url})"
class IndexServer:
- def __init__(self, path: Path, with_root_pypi: bool = False, start_args:
Sequence[str] | None = None) -> None:
+ """A PyPI index server locally."""
+
+ def __init__(
+ self,
+ path: Path,
+ with_root_pypi: bool = False, # noqa: FBT001, FBT002
+ start_args: Sequence[str] | None = None,
+ ) -> None:
+ """
+ Create the local index server.
+
+ :param path: the path where to host files
+ :param with_root_pypi: access to upstream PyPI
+ :param start_args: additional arguments to start the server
+ """
self.path = path
self._with_root_pypi = with_root_pypi
self._start_args: Sequence[str] = [] if start_args is None else
start_args
self.host, self.port = "localhost", _find_free_port()
- self._passwd = "".join(random.choices(string.ascii_letters, k=8))
+ self._passwd = "".join(random.choices(string.ascii_letters, k=8)) #
noqa: S311
scripts_dir = sysconfig.get_path("scripts")
if scripts_dir is None:
- raise RuntimeError("could not get scripts folder of host
interpreter") # pragma: no cover
+ msg = "could not get scripts folder of host interpreter" #
pragma: no cover
+ raise RuntimeError(msg) # pragma: no cover
def _exe(name: str) -> str:
return str(Path(scripts_dir) / f"{name}{'.exe' if sys.platform ==
'win32' else ''}")
@@ -70,9 +111,11 @@
@property
def user(self) -> str:
+ """:return: username of the index server"""
return "root"
- def __enter__(self) -> IndexServer:
+ def __enter__(self) -> Self:
+ """:return: start the index server"""
self._create_and_start_server()
self._setup_client()
return self
@@ -89,7 +132,7 @@
# 2. start the server
cmd = [self._server, "--serverdir", server_at, "--port",
str(self.port)]
cmd.extend(self._start_args)
- self._process = Popen(cmd, stdout=PIPE, universal_newlines=True)
+ self._process = Popen(cmd, stdout=PIPE, universal_newlines=True) #
noqa: S603
stdout = self._drain_stdout()
for line in stdout: # pragma: no branch # will always loop at least
once
if "serving at url" in line:
@@ -108,32 +151,47 @@
stdout = cast(IO[str], process.stdout)
while True:
if process.poll() is not None: # pragma: no cover
- print(f"devpi server with pid {process.pid} at
{self._server_dir} died")
+ print(f"devpi server with pid {process.pid} at
{self._server_dir} died") # noqa: T201
break
yield stdout.readline()
def _setup_client(self) -> None:
- """create a user on the server and authenticate it"""
+ """Create a user on the server and authenticate it."""
self._client_dir.mkdir(exist_ok=True)
base = ["--clientdir", str(self._client_dir)]
- _check_call([self._client, "use"] + base + [self.url])
- _check_call([self._client, "login"] + base + [self.user, "--password",
self._passwd])
+ _check_call([self._client, "use", *base, self.url])
+ _check_call([self._client, "login", *base, self.user, "--password",
self._passwd])
def create_index(self, name: str, *args: str) -> Index:
+ """
+ Create an index on the server.
+
+ :param name: with name
+ :param args: additional arguments
+ :return: the created index
+ """
if name in self._indexes: # pragma: no cover
- raise ValueError(f"index {name} already exists")
+ msg = f"index {name} already exists"
+ raise ValueError(msg)
base = [self._client, "--clientdir", str(self._client_dir)]
- _check_call(base + ["index", "-c", name, *args])
+ _check_call([*base, "index", "-c", name, *args])
index = Index(f"{self.url}/{self.user}", name, self.user, base)
self._indexes[name] = index
return index
def __exit__(
self,
- exc_type: type[BaseException] | None, # noqa: U100
- exc_val: BaseException | None, # noqa: U100
- exc_tb: TracebackType | None, # noqa: U100
+ exc_type: type[BaseException] | None,
+ exc_val: BaseException | None,
+ exc_tb: TracebackType | None,
) -> None:
+ """
+ Stop the index server.
+
+ :param exc_type:
+ :param exc_val:
+ :param exc_tb:
+ """
if self._process is not None: # pragma: no cover # defend against
devpi startup fail
self._process.terminate()
if self._stdout_drain is not None and self._stdout_drain.is_alive():
# pragma: no cover # devpi startup fail
@@ -141,9 +199,11 @@
@property
def url(self) -> str:
+ """:return: url to the index server"""
return f"http://{self.host}:{self.port}"
def __repr__(self) -> str:
+ """:return: repr of the index server"""
return f"{self.__class__.__name__}(url={self.url},
indexes={list(self._indexes)})"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/src/devpi_process/_version.py
new/devpi_process-1.0.0/src/devpi_process/_version.py
--- old/devpi_process-0.3.0/src/devpi_process/_version.py 1970-01-01
01:00:00.000000000 +0100
+++ new/devpi_process-1.0.0/src/devpi_process/_version.py 2020-02-02
01:00:00.000000000 +0100
@@ -0,0 +1,4 @@
+# file generated by setuptools_scm
+# don't change, don't track in version control
+__version__ = version = '1.0.0'
+__version_tuple__ = version_tuple = (1, 0, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/src/devpi_process/version.py
new/devpi_process-1.0.0/src/devpi_process/version.py
--- old/devpi_process-0.3.0/src/devpi_process/version.py 2022-12-03
23:52:15.000000000 +0100
+++ new/devpi_process-1.0.0/src/devpi_process/version.py 1970-01-01
01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-""" Version information """
-
-__version__ = "0.3.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/devpi_process-0.3.0/src/devpi_process.egg-info/PKG-INFO
new/devpi_process-1.0.0/src/devpi_process.egg-info/PKG-INFO
--- old/devpi_process-0.3.0/src/devpi_process.egg-info/PKG-INFO 2022-12-03
23:52:15.000000000 +0100
+++ new/devpi_process-1.0.0/src/devpi_process.egg-info/PKG-INFO 1970-01-01
01:00:00.000000000 +0100
@@ -1,66 +0,0 @@
-Metadata-Version: 2.1
-Name: devpi-process
-Version: 0.3.0
-Summary: devpi process provides a programmatic API to create and use a devpi
server process
-Home-page: https://github.com/tox-dev/devpi-process
-Maintainer: Bernat Gabor
-Maintainer-email: [email protected]
-License: MIT
-Project-URL: Source, https://github.com/tox-dev/devpi-process
-Project-URL: Tracker, https://github.com/tox-dev/devpi-process
-Keywords: devpi,programmatic
-Platform: any
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: MacOS :: MacOS X
-Classifier: Operating System :: Microsoft :: Windows
-Classifier: Operating System :: POSIX
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Topic :: Software Development :: Libraries
-Classifier: Topic :: Utilities
-Requires-Python: >=3.7
-Description-Content-Type: text/markdown
-Provides-Extra: test
-License-File: LICENSE.txt
-
-# devpi-process
-
-[](https://pypi.org/project/devpi-process)
-[](https://pypi.org/project/devpi-process)
-[](https://pypi.org/project/devpi-process)
-[](https://pypistats.org/packages/devpi-process)
-[](https://opensource.org/licenses/MIT)
-[](https://github.com/tox-dev/devpi-process/actions?query=workflow%3Acheck)
-[](https://github.com/psf/black)
-
-Allows you to create
[devpi](https://devpi.net/docs/devpi/devpi/stable/+d/index.html) server process
with indexes, and
-upload artifacts to that programmatically.
-
-## install
-
-```sh
-pip install devpi-process
-```
-
-## use
-
-```python
-from pathlib import Path
-
-from devpi_process import Index, IndexServer
-
-with IndexServer(Path("server-dir")) as server:
- # create an index mirroring an Artifactory instance
- magic_index_url =
"https://magic.com/artifactory/api/pypi/magic-pypi/simple"
- base_name = "magic"
- server.create_index(base_name, "type=mirror",
f"mirror_url={magic_index_url}")
-
- # create a dev index server that bases of magic PyPI, and upload a wheel
to it
- dev: Index = server.create_index("dev", f"bases={server.user}/{base_name}")
- dev.upload("magic-2.24.0-py3-none-any.whl")
-
- assert dev.url # point the tool consuming the index server to this
-```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/devpi_process-0.3.0/src/devpi_process.egg-info/SOURCES.txt
new/devpi_process-1.0.0/src/devpi_process.egg-info/SOURCES.txt
--- old/devpi_process-0.3.0/src/devpi_process.egg-info/SOURCES.txt
2022-12-03 23:52:15.000000000 +0100
+++ new/devpi_process-1.0.0/src/devpi_process.egg-info/SOURCES.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-.gitignore
-.markdownlint.yaml
-.pre-commit-config.yaml
-CHANGELOG.md
-CODE_OF_CONDUCT.md
-LICENSE.txt
-README.md
-codecov.yml
-pyproject.toml
-setup.cfg
-setup.py
-tox.ini
-whitelist.txt
-.github/dependabot.yml
-.github/workflows/check.yml
-src/devpi_process/__init__.py
-src/devpi_process/py.typed
-src/devpi_process/version.py
-src/devpi_process.egg-info/PKG-INFO
-src/devpi_process.egg-info/SOURCES.txt
-src/devpi_process.egg-info/dependency_links.txt
-src/devpi_process.egg-info/requires.txt
-src/devpi_process.egg-info/top_level.txt
-src/devpi_process.egg-info/zip-safe
-src/pytest_devpi/version.py
-tests/test_devpi_process.py
-tests/demo_pkg_inline/build.py
-tests/demo_pkg_inline/pyproject.toml
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/devpi_process-0.3.0/src/devpi_process.egg-info/dependency_links.txt
new/devpi_process-1.0.0/src/devpi_process.egg-info/dependency_links.txt
--- old/devpi_process-0.3.0/src/devpi_process.egg-info/dependency_links.txt
2022-12-03 23:52:15.000000000 +0100
+++ new/devpi_process-1.0.0/src/devpi_process.egg-info/dependency_links.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/devpi_process-0.3.0/src/devpi_process.egg-info/requires.txt
new/devpi_process-1.0.0/src/devpi_process.egg-info/requires.txt
--- old/devpi_process-0.3.0/src/devpi_process.egg-info/requires.txt
2022-12-03 23:52:15.000000000 +0100
+++ new/devpi_process-1.0.0/src/devpi_process.egg-info/requires.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-devpi-client>=6.0.2
-devpi-server>=6.7
-
-[test]
-covdefaults>=2.2.2
-httpx>=0.23.1
-pytest>=7.2
-pytest-cov>=4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/devpi_process-0.3.0/src/devpi_process.egg-info/top_level.txt
new/devpi_process-1.0.0/src/devpi_process.egg-info/top_level.txt
--- old/devpi_process-0.3.0/src/devpi_process.egg-info/top_level.txt
2022-12-03 23:52:15.000000000 +0100
+++ new/devpi_process-1.0.0/src/devpi_process.egg-info/top_level.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-devpi_process
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/devpi_process-0.3.0/src/devpi_process.egg-info/zip-safe
new/devpi_process-1.0.0/src/devpi_process.egg-info/zip-safe
--- old/devpi_process-0.3.0/src/devpi_process.egg-info/zip-safe 2022-12-03
23:52:15.000000000 +0100
+++ new/devpi_process-1.0.0/src/devpi_process.egg-info/zip-safe 1970-01-01
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/src/pytest_devpi/version.py
new/devpi_process-1.0.0/src/pytest_devpi/version.py
--- old/devpi_process-0.3.0/src/pytest_devpi/version.py 2022-12-03
23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/src/pytest_devpi/version.py 1970-01-01
01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-""" Version information """
-from __future__ import annotations
-
-__version__ = "0.1.dev1+gc78a9e3.d20210617"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/tests/demo_pkg_inline/build.py
new/devpi_process-1.0.0/tests/demo_pkg_inline/build.py
--- old/devpi_process-0.3.0/tests/demo_pkg_inline/build.py 2022-12-03
23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/tests/demo_pkg_inline/build.py 2020-02-02
01:00:00.000000000 +0100
@@ -1,9 +1,9 @@
from __future__ import annotations
-import os
import sys
import tarfile
from io import BytesIO
+from pathlib import Path
from textwrap import dedent
from zipfile import ZipFile
@@ -18,10 +18,10 @@
record = f"{dist_info}/RECORD"
content = {
logic: f"def do():\n print('greetings from {name}')",
- metadata: """
+ metadata: f"""
Metadata-Version: 2.1
- Name: {}
- Version: {}
+ Name: {pkg_name}
+ Version: {version}
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
@@ -30,58 +30,52 @@
Platform: UNKNOWN
UNKNOWN
- """.format(
- pkg_name, version
- ),
- wheel: """
+ """,
+ wheel: f"""
Wheel-Version: 1.0
- Generator: {}-{}
+ Generator: {name}-{version}
Root-Is-Purelib: true
- Tag: py{}-none-any
- """.format(
- name, version, sys.version_info[0]
- ),
+ Tag: py{sys.version_info[0]}-none-any
+ """,
f"{dist_info}/top_level.txt": name,
- record: """
- {0}/__init__.py,,
- {1}/METADATA,,
- {1}/WHEEL,,
- {1}/top_level.txt,,
- {1}/RECORD,,
- """.format(
- name, dist_info
- ),
+ record: f"""
+ {name}/__init__.py,,
+ {dist_info}/METADATA,,
+ {dist_info}/WHEEL,,
+ {dist_info}/top_level.txt,,
+ {dist_info}/RECORD,,
+ """,
}
def build_wheel(
wheel_directory: str,
- metadata_directory: str | None = None, # noqa: U100
- config_settings: None = None, # noqa: U100
+ metadata_directory: str | None = None, # noqa: ARG001
+ config_settings: None = None, # noqa: ARG001
) -> str:
base_name = f"{name}-{version}-py{sys.version_info[0]}-none-any.whl"
- path = os.path.join(wheel_directory, base_name)
- with ZipFile(path, "w") as zip_file_handler:
+ path = Path(wheel_directory) / base_name
+ with ZipFile(str(path), "w") as zip_file_handler:
for arc_name, data in content.items(): # pragma: no branch
zip_file_handler.writestr(arc_name, dedent(data).strip())
return base_name
def get_requires_for_build_wheel(
- config_settings: None = None, # noqa: U100
+ config_settings: None = None, # noqa: ARG001
) -> list[str]:
return [] # pragma: no cover # only executed in non-host pythons
def build_sdist(
sdist_directory: str,
- config_settings: None = None, # noqa: U100
+ config_settings: None = None, # noqa: ARG001
) -> str:
result = f"{name}-{version}.tar.gz"
- with tarfile.open(os.path.join(sdist_directory, result), "w:gz") as tar:
- root = os.path.dirname(os.path.abspath(__file__))
- tar.add(os.path.join(root, "build.py"), "build.py")
- tar.add(os.path.join(root, "pyproject.toml"), "pyproject.toml")
+ with tarfile.open(str(Path(sdist_directory) / result), "w:gz") as tar:
+ root = Path(__file__).parent
+ tar.add(str(root / "build.py"), "build.py")
+ tar.add(str(root / "pyproject.toml"), "pyproject.toml")
pkg_info = dedent(content[metadata]).strip().encode("utf-8")
info = tarfile.TarInfo("PKG-INFO")
@@ -92,6 +86,6 @@
def get_requires_for_build_sdist(
- config_settings: None = None, # noqa: U100
+ config_settings: None = None, # noqa: ARG001
) -> list[str]:
return [] # pragma: no cover # only executed in non-host pythons
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/devpi_process-0.3.0/tests/demo_pkg_inline/pyproject.toml
new/devpi_process-1.0.0/tests/demo_pkg_inline/pyproject.toml
--- old/devpi_process-0.3.0/tests/demo_pkg_inline/pyproject.toml
2022-12-03 23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/tests/demo_pkg_inline/pyproject.toml
2020-02-02 01:00:00.000000000 +0100
@@ -1,4 +1,7 @@
[build-system]
-requires = []
build-backend = "build"
-backend-path = ["."]
+requires = [
+]
+backend-path = [
+ ".",
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/tests/test_devpi_process.py
new/devpi_process-1.0.0/tests/test_devpi_process.py
--- old/devpi_process-0.3.0/tests/test_devpi_process.py 2022-12-03
23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/tests/test_devpi_process.py 2020-02-02
01:00:00.000000000 +0100
@@ -2,13 +2,16 @@
from importlib.util import module_from_spec, spec_from_file_location
from pathlib import Path
+from typing import TYPE_CHECKING
import pytest
-from _pytest.tmpdir import TempPathFactory
from httpx import get
from devpi_process import IndexServer
+if TYPE_CHECKING:
+ from _pytest.tmpdir import TempPathFactory
+
def test_version() -> None:
import devpi_process
@@ -66,5 +69,5 @@
def test_create_server_start_args(tmp_path: Path) -> None:
with IndexServer(tmp_path, start_args=["--offline-mode"]) as server:
- assert server._process is not None
- assert server._process.args[-1] == "--offline-mode" # type: ignore
+ assert server._process is not None # noqa: SLF001
+ assert server._process.args[-1] == "--offline-mode" # type:
ignore[index] # noqa: SLF001
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/tox.ini
new/devpi_process-1.0.0/tox.ini
--- old/devpi_process-0.3.0/tox.ini 2022-12-03 23:52:08.000000000 +0100
+++ new/devpi_process-1.0.0/tox.ini 2020-02-02 01:00:00.000000000 +0100
@@ -1,60 +1,61 @@
[tox]
-envlist =
+requires =
+ tox>=4.2
+env_list =
fix
+ py311
py310
py39
py38
py37
type
readme
-isolated_build = true
skip_missing_interpreters = true
-minversion = 3.14
[testenv]
description = run the unit tests with pytest under {basepython}
-setenv =
- COVERAGE_FILE = {toxworkdir}/.coverage.{envname}
- COVERAGE_PROCESS_START = {toxinidir}/setup.cfg
- _COVERAGE_SRC = {envsitepackagesdir}/sphinx_argparse_cli
+package = wheel
+wheel_build_env = .pkg
extras =
test
+set_env =
+ COVERAGE_FILE = {toxworkdir}/.coverage.{envname}
+ COVERAGE_PROCESS_START = {toxinidir}/pyproject.toml
+ _COVERAGE_SRC = {envsitepackagesdir}/devpi_process
commands =
pytest {tty:--color=yes} {posargs: \
--junitxml {toxworkdir}{/}junit.{envname}.xml --cov
{envsitepackagesdir}{/}devpi_process \
--cov {toxinidir}{/}tests --cov-fail-under=100 \
- --cov-config=setup.cfg --no-cov-on-fail --cov-report
term-missing:skip-covered --cov-context=test \
+ --cov-config=pyproject.toml --no-cov-on-fail --cov-report
term-missing:skip-covered --cov-context=test \
--cov-report html:{envtmpdir}{/}htmlcov --cov-report
xml:{toxworkdir}{/}coverage.{envname}.xml \
tests}
-package = wheel
-wheel_build_env = .pkg
[testenv:fix]
description = run static analysis and style check using flake8
-passenv =
- HOMEPATH
- PROGRAMDATA
skip_install = true
deps =
- pre-commit>=2.20
+ pre-commit>=3.3.3
+pass_env =
+ HOMEPATH
+ PROGRAMDATA
commands =
pre-commit run --all-files --show-diff-on-failure
[testenv:type]
description = run type check on code base
-setenv =
- {tty:MYPY_FORCE_COLOR = 1}
deps =
- mypy==0.991
+ mypy==1.5
+set_env =
+ {tty:MYPY_FORCE_COLOR = 1}
commands =
- mypy --strict --python-version 3.10 src
- mypy --strict --python-version 3.10 tests
+ mypy src
+ mypy tests
[testenv:readme]
description = check that the long description is valid
skip_install = true
deps =
- build[virtualenv]>=0.9
+ build[virtualenv]>=0.10
twine>=4.0.2
commands =
python -m build --sdist --wheel -o {envtmpdir} .
@@ -62,18 +63,10 @@
[testenv:dev]
description = generate a DEV environment
-usedevelop = true
+package = editable
extras =
docs
test
commands =
python -m pip list --format=columns
python -c 'import sys; print(sys.executable)'
-
-[testenv:py311]
-setenv =
- {[testenv]setenv}
- AIOHTTP_NO_EXTENSIONS = 1
-
-[pytest]
-junit_family = xunit2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/devpi_process-0.3.0/whitelist.txt
new/devpi_process-1.0.0/whitelist.txt
--- old/devpi_process-0.3.0/whitelist.txt 2022-12-03 23:52:08.000000000
+0100
+++ new/devpi_process-1.0.0/whitelist.txt 1970-01-01 01:00:00.000000000
+0100
@@ -1,10 +0,0 @@
-addfile
-devpi
-exe
-getsockname
-inet
-mktemp
-readline
-sdist
-sysconfig
-tmpdir