devpi-process 1.3.0__tar.gz → 1.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. devpi_process-1.3.2/.github/dependabot.yaml +27 -0
  2. {devpi_process-1.3.0 → devpi_process-1.3.2}/.github/workflows/check.yaml +30 -11
  3. devpi_process-1.3.2/.github/workflows/codeql.yaml +41 -0
  4. devpi_process-1.3.2/.github/workflows/news.yaml +32 -0
  5. devpi_process-1.3.2/.github/workflows/prepare-release.yaml +25 -0
  6. devpi_process-1.3.2/.github/workflows/release.yaml +157 -0
  7. devpi_process-1.3.2/.github/workflows/upgrade-release-tools.yaml +22 -0
  8. {devpi_process-1.3.0 → devpi_process-1.3.2}/.gitignore +1 -0
  9. {devpi_process-1.3.0 → devpi_process-1.3.2}/.pre-commit-config.yaml +16 -16
  10. devpi_process-1.3.2/CHANGELOG.md +128 -0
  11. devpi_process-1.3.2/CONTRIBUTING.md +36 -0
  12. {devpi_process-1.3.0 → devpi_process-1.3.2}/PKG-INFO +6 -4
  13. {devpi_process-1.3.0 → devpi_process-1.3.2}/README.md +2 -0
  14. devpi_process-1.3.2/pylock.toml +3153 -0
  15. {devpi_process-1.3.0 → devpi_process-1.3.2}/pyproject.toml +69 -7
  16. {devpi_process-1.3.0 → devpi_process-1.3.2}/src/devpi_process/_version.py +2 -2
  17. devpi_process-1.3.2/src/devpi_process/py.typed +0 -0
  18. devpi_process-1.3.0/.github/dependabot.yaml +0 -13
  19. devpi_process-1.3.0/.github/workflows/release.yaml +0 -49
  20. devpi_process-1.3.0/CHANGELOG.md +0 -14
  21. {devpi_process-1.3.0 → devpi_process-1.3.2}/.github/FUNDING.yaml +0 -0
  22. {devpi_process-1.3.0 → devpi_process-1.3.2}/.github/SECURITY.md +0 -0
  23. {devpi_process-1.3.0 → devpi_process-1.3.2}/.github/release.yaml +0 -0
  24. {devpi_process-1.3.0 → devpi_process-1.3.2}/.markdownlint.yaml +0 -0
  25. {devpi_process-1.3.0 → devpi_process-1.3.2}/CODE_OF_CONDUCT.md +0 -0
  26. {devpi_process-1.3.0 → devpi_process-1.3.2}/LICENSE.txt +0 -0
  27. /devpi_process-1.3.0/src/devpi_process/py.typed → /devpi_process-1.3.2/changelog.d/.gitkeep +0 -0
  28. {devpi_process-1.3.0 → devpi_process-1.3.2}/src/devpi_process/__init__.py +0 -0
  29. {devpi_process-1.3.0 → devpi_process-1.3.2}/tests/demo_pkg_inline/build.py +0 -0
  30. {devpi_process-1.3.0 → devpi_process-1.3.2}/tests/demo_pkg_inline/pyproject.toml +0 -0
  31. {devpi_process-1.3.0 → devpi_process-1.3.2}/tests/test_devpi_process.py +0 -0
  32. {devpi_process-1.3.0 → devpi_process-1.3.2}/tox.toml +0 -0
@@ -0,0 +1,27 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ labels:
6
+ - dependencies
7
+ - github_actions
8
+ - skip news
9
+ schedule:
10
+ interval: "weekly"
11
+ day: "tuesday"
12
+ groups:
13
+ github-actions:
14
+ patterns:
15
+ - "*"
16
+ cooldown:
17
+ default-days: 7
18
+ - package-ecosystem: "pre-commit"
19
+ directory: "/"
20
+ labels:
21
+ - dependencies
22
+ - skip news
23
+ schedule:
24
+ interval: "weekly"
25
+ day: "tuesday"
26
+ cooldown:
27
+ default-days: 7
@@ -1,10 +1,11 @@
1
- name: check
1
+ name: 🧪 check
2
2
  on:
3
3
  workflow_dispatch:
4
4
  push:
5
5
  branches: ["main"]
6
6
  tags-ignore: ["**"]
7
7
  pull_request:
8
+ types: [opened, synchronize, reopened]
8
9
  schedule:
9
10
  - cron: "0 8 * * *"
10
11
  concurrency:
@@ -14,6 +15,7 @@ permissions:
14
15
  contents: read
15
16
  jobs:
16
17
  test:
18
+ name: 🧪 Test
17
19
  runs-on: ubuntu-26.04
18
20
  strategy:
19
21
  fail-fast: false
@@ -29,25 +31,42 @@ jobs:
29
31
  - dev
30
32
  - pkg_meta
31
33
  steps:
32
- - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
34
+ - name: 📥 Check out code
35
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
33
36
  with:
34
37
  fetch-depth: 0
35
38
  persist-credentials: false
36
- - name: Install the latest version of uv
37
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
39
+ - name: 🐍 Install uv
40
+ uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
38
41
  with:
42
+ version: latest-known
39
43
  python-version: "3.15"
40
44
  enable-cache: false
41
45
  cache-dependency-glob: "pyproject.toml"
42
46
  github-token: ${{ secrets.GITHUB_TOKEN }}
43
- - name: Install tox
47
+ - name: 📦 Install tox
44
48
  run: uv tool install --python-preference only-managed --python 3.15 tox --with tox-uv
45
- - name: Install Python
49
+ - name: 🐍 Install Python
46
50
  if: startsWith(matrix.env, '3.') && matrix.env != '3.15'
47
- run: uv python install --python-preference only-managed ${{ matrix.env }}
48
- - name: Setup test suite
49
- run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.env }}
50
- - name: Run test suite
51
- run: tox run --skip-pkg-install -e ${{ matrix.env }}
52
51
  env:
52
+ MATRIX_ENV: ${{ matrix.env }}
53
+ run: uv python install --python-preference only-managed "$MATRIX_ENV"
54
+ - name: 📦 Set up test suite
55
+ env:
56
+ MATRIX_ENV: ${{ matrix.env }}
57
+ run: tox run -vv --notest --skip-missing-interpreters false -e "$MATRIX_ENV"
58
+ - name: 🧪 Run test suite
59
+ run: tox run --skip-pkg-install -e "$MATRIX_ENV"
60
+ env:
61
+ MATRIX_ENV: ${{ matrix.env }}
53
62
  PYTEST_ADDOPTS: "-vv --durations=5"
63
+ gate:
64
+ name: 🚦 Required checks pass
65
+ if: ${{ !cancelled() }} # codespell:ignore cancelled
66
+ needs: [test]
67
+ runs-on: ubuntu-26.04
68
+ steps:
69
+ - name: 🚦 Require all needed jobs to pass
70
+ env:
71
+ NEEDS_JSON: ${{ toJSON(needs) }}
72
+ run: jq -e 'all(to_entries[]; .value.result == "success")' <<<"$NEEDS_JSON"
@@ -0,0 +1,41 @@
1
+ name: 🛡️ CodeQL
2
+ on:
3
+ workflow_dispatch:
4
+ push:
5
+ branches: ["main"]
6
+ pull_request:
7
+ schedule:
8
+ - cron: "0 9 * * 2"
9
+ concurrency:
10
+ group: codeql-${{ github.ref }}
11
+ cancel-in-progress: true
12
+ permissions: {}
13
+ jobs:
14
+ analyze:
15
+ name: 🛡️ Analyze ${{ matrix.language }}
16
+ runs-on: ubuntu-26.04
17
+ permissions:
18
+ contents: read
19
+ security-events: write
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ language: [actions, python]
24
+ steps:
25
+ - name: 📥 Check out code
26
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
27
+ with:
28
+ persist-credentials: false
29
+ - name: 🛡️ Initialize CodeQL
30
+ uses: github/codeql-action/init@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0
31
+ with:
32
+ languages: ${{ matrix.language }}
33
+ build-mode: none
34
+ queries: security-extended
35
+ config: |
36
+ paths-ignore:
37
+ - tests
38
+ - name: 🛡️ Analyze
39
+ uses: github/codeql-action/analyze@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0
40
+ with:
41
+ category: "/language:${{ matrix.language }}"
@@ -0,0 +1,32 @@
1
+ name: 📝 Changelog
2
+ on:
3
+ pull_request:
4
+ types: [opened, reopened, synchronize, labeled, unlabeled]
5
+ concurrency:
6
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
7
+ cancel-in-progress: true
8
+ permissions:
9
+ contents: read
10
+ jobs:
11
+ changelog:
12
+ name: 📝 News fragment
13
+ runs-on: ubuntu-26.04
14
+ steps:
15
+ - name: 📥 Check out code
16
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
17
+ with:
18
+ fetch-depth: 0
19
+ persist-credentials: false
20
+ - name: 🐍 Install uv
21
+ uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
22
+ with:
23
+ version: latest-known
24
+ python-version: "3.15"
25
+ enable-cache: false
26
+ - name: 📦 Install locked release tools
27
+ uses: tox-dev/github-workflows/install-locked-tools@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
28
+ with:
29
+ groups: release-news
30
+ venv: ${{ runner.temp }}/release-tools
31
+ - name: 🔍 Validate news fragments
32
+ uses: tox-dev/github-workflows/validate-news@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
@@ -0,0 +1,25 @@
1
+ name: 🏷️ Prepare release
2
+ on:
3
+ workflow_dispatch:
4
+ inputs:
5
+ bump:
6
+ description: Version bump type
7
+ required: true
8
+ type: choice
9
+ options:
10
+ - auto
11
+ - major
12
+ - minor
13
+ - patch
14
+ default: auto
15
+ permissions:
16
+ contents: read
17
+ pull-requests: read
18
+ jobs:
19
+ prepare:
20
+ name: 🏷️ Prepare Towncrier release
21
+ uses: tox-dev/github-workflows/.github/workflows/prepare-towncrier-release.yaml@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
22
+ with:
23
+ bump: ${{ inputs.bump }}
24
+ secrets:
25
+ RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
@@ -0,0 +1,157 @@
1
+ name: 🚀 Release to PyPI
2
+ on:
3
+ push:
4
+ tags: ["*"]
5
+ permissions:
6
+ contents: read
7
+ concurrency:
8
+ group: release-${{ github.ref }}
9
+ cancel-in-progress: false
10
+ jobs:
11
+ build:
12
+ name: 🏗️ Build
13
+ uses: tox-dev/github-workflows/.github/workflows/validate-python-release.yaml@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
14
+ permissions:
15
+ contents: read
16
+ previous-tag:
17
+ name: 🏷️ Select previous tag
18
+ runs-on: ubuntu-26.04
19
+ permissions:
20
+ contents: read
21
+ outputs:
22
+ previous: ${{ steps.select.outputs.previous }}
23
+ steps:
24
+ - name: 📥 Check out code
25
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
26
+ with:
27
+ fetch-depth: 0
28
+ persist-credentials: false
29
+ - name: 🐍 Install uv
30
+ uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
31
+ with:
32
+ version: latest-known
33
+ python-version: "3.15"
34
+ enable-cache: false
35
+ - name: 📦 Install locked release tools
36
+ uses: tox-dev/github-workflows/install-locked-tools@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
37
+ with:
38
+ groups: release-notes
39
+ venv: ${{ runner.temp }}/release-tools
40
+ - name: 🏷️ Select previous tag
41
+ id: select
42
+ uses: tox-dev/github-workflows/select-previous-tag@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
43
+ with:
44
+ tag: ${{ github.ref_name }}
45
+ github-notes:
46
+ name: 📝 Render GitHub Release notes
47
+ needs: previous-tag
48
+ runs-on: ubuntu-26.04
49
+ permissions:
50
+ contents: read
51
+ outputs:
52
+ artifact-id: ${{ steps.upload.outputs.artifact-id }}
53
+ steps:
54
+ - name: 📥 Check out code
55
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
56
+ with:
57
+ fetch-depth: 0
58
+ persist-credentials: false
59
+ - name: 🐍 Install uv
60
+ uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
61
+ with:
62
+ version: latest-known
63
+ python-version: "3.15"
64
+ enable-cache: false
65
+ - name: 📦 Install locked release tools
66
+ uses: tox-dev/github-workflows/install-locked-tools@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
67
+ with:
68
+ groups: release-notes
69
+ venv: ${{ runner.temp }}/release-tools
70
+ - name: 📝 Render release notes
71
+ uses: tox-dev/github-workflows/render-release-notes@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
72
+ with:
73
+ tag: ${{ github.ref_name }}
74
+ previous: ${{ needs.previous-tag.outputs.previous }}
75
+ changelog: CHANGELOG.md
76
+ artifact-url: https://pypi.org/project/devpi-process/${{ github.ref_name }}/
77
+ - name: 📤 Upload release notes
78
+ id: upload
79
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
80
+ with:
81
+ name: github-release-notes
82
+ path: ${{ runner.temp }}/release-notes.md
83
+ if-no-files-found: error
84
+ release:
85
+ name: 🚀 Publish to PyPI
86
+ needs:
87
+ - build
88
+ - github-notes
89
+ runs-on: ubuntu-26.04
90
+ environment:
91
+ name: release
92
+ url: https://pypi.org/project/devpi-process/${{ github.ref_name }}
93
+ permissions:
94
+ id-token: write # PyPI verifies this workflow through OIDC.
95
+ steps:
96
+ - name: 📩 Download distributions
97
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
98
+ with:
99
+ artifact-ids: ${{ needs.build.outputs.distributions-artifact-id }}
100
+ path: dist/
101
+ - name: 🚀 Publish to PyPI
102
+ uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
103
+ with:
104
+ packages-dir: dist
105
+ verify-pypi:
106
+ name: 🔍 Verify PyPI distributions
107
+ needs:
108
+ - build
109
+ - github-notes
110
+ - release
111
+ runs-on: ubuntu-26.04
112
+ permissions:
113
+ contents: read
114
+ steps:
115
+ - name: 📥 Check out code
116
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
117
+ with:
118
+ persist-credentials: false
119
+ - name: 📩 Download distributions
120
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
121
+ with:
122
+ artifact-ids: ${{ needs.build.outputs.distributions-artifact-id }}
123
+ path: dist/
124
+ - name: 🐍 Install uv
125
+ uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
126
+ with:
127
+ version: latest-known
128
+ python-version: "3.15"
129
+ enable-cache: false
130
+ - name: 🔍 Verify PyPI artifacts
131
+ uses: tox-dev/github-workflows/reconcile-pypi-artifacts@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
132
+ with:
133
+ project: devpi-process
134
+ version: ${{ github.ref_name }}
135
+ dist: dist
136
+ github-release:
137
+ name: 🚀 Publish GitHub Release
138
+ needs: [verify-pypi, github-notes]
139
+ runs-on: ubuntu-26.04
140
+ environment: release
141
+ permissions:
142
+ contents: write # GitHub Release creation and edits require this permission.
143
+ steps:
144
+ - name: 📩 Download release notes
145
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
146
+ with:
147
+ artifact-ids: ${{ needs.github-notes.outputs.artifact-id }}
148
+ path: ${{ runner.temp }}
149
+ - name: 🚀 Publish GitHub release
150
+ uses: tox-dev/github-workflows/publish-github-release@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
151
+ env:
152
+ GH_TOKEN: ${{ github.token }}
153
+ with:
154
+ tag: ${{ github.ref_name }}
155
+ commit: ${{ github.sha }}
156
+ title: ${{ github.ref_name }}
157
+ notes-file: ${{ runner.temp }}/release-notes.md
@@ -0,0 +1,22 @@
1
+ name: 🔒 Upgrade release tools
2
+ on:
3
+ workflow_dispatch:
4
+ schedule:
5
+ - cron: "0 8 * * 2"
6
+ permissions: {}
7
+ concurrency:
8
+ group: upgrade-release-tools
9
+ cancel-in-progress: false
10
+ jobs:
11
+ upgrade:
12
+ name: 🔀 Upgrade release tools
13
+ uses: tox-dev/github-workflows/.github/workflows/upgrade-release-tools.yaml@259a3d3fb578d00517ffb73341fdd463259b0b2f # 6.0.1
14
+ permissions:
15
+ contents: read
16
+ secrets:
17
+ RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
18
+ with:
19
+ commit-message: "build(deps): refresh release lock"
20
+ pull-request-title: "build(deps): refresh project lock"
21
+ pull-request-body: |-
22
+ Relock `pylock.toml` with Nab after the seven-day cooldown.
@@ -5,3 +5,4 @@ coverage.xml
5
5
  __pycache__
6
6
  **.pyc
7
7
  src/devpi_process/_version.py
8
+ /uv.lock
@@ -1,50 +1,50 @@
1
+ ci:
2
+ autoupdate_schedule: quarterly
1
3
  default_language_version:
2
4
  python: python3.15
3
5
  repos:
4
6
  - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v6.0.0
7
+ rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0
6
8
  hooks:
7
9
  - id: end-of-file-fixer
8
10
  - id: trailing-whitespace
9
11
  - repo: https://github.com/python-jsonschema/check-jsonschema
10
- rev: 0.38.2
12
+ rev: 0494aa7fa1314e98913a41227d8f0a515b2c1049 # frozen: 0.38.2
11
13
  hooks:
12
14
  - id: check-github-workflows
13
15
  args: ["--verbose"]
14
16
  - repo: https://github.com/codespell-project/codespell
15
- rev: v2.4.3
17
+ rev: 57b21406f092110c18776e39b0bda50d37c945c8 # frozen: v2.4.3
16
18
  hooks:
17
19
  - id: codespell
18
20
  - repo: https://github.com/tox-dev/tox-toml-fmt
19
- rev: "v1.11.0"
21
+ rev: 5125f601c3e134347288c3d42f3b34298b7cf1be # frozen: v1.11.1
20
22
  hooks:
21
23
  - id: tox-toml-fmt
22
24
  - repo: https://github.com/tox-dev/pyproject-fmt
23
- rev: "v2.30.1"
25
+ rev: 50e0f3aee9dc5747a5f173f79a7417403c18dda6 # frozen: v2.30.3
24
26
  hooks:
25
27
  - id: pyproject-fmt
26
28
  - repo: https://github.com/astral-sh/ruff-pre-commit
27
- rev: "v0.16.10"
29
+ rev: 38bfb07c0c64c304f47eb52090f8288150c77730 # frozen: v0.17.1
28
30
  hooks:
29
31
  - id: ruff-format
30
- - id: ruff
32
+ - id: ruff-check
31
33
  args: ["--fix", "--unsafe-fixes", "--exit-non-zero-on-fix"]
32
34
  - repo: https://github.com/google/yamlfmt
33
- rev: "v0.21.0"
35
+ rev: 21ca5323a9c87ee37a434e0ca908efc0a89daa07 # frozen: v0.21.0
34
36
  hooks:
35
37
  - id: yamlfmt
36
- - repo: local
38
+ - repo: https://github.com/executablebooks/mdformat
39
+ rev: 82912cdaea4fb830f751504486a7879c70526547 # frozen: 1.0.0
37
40
  hooks:
38
41
  - id: mdformat
39
- name: mdformat
40
- entry: mdformat --wrap 120
41
- language: python
42
- types: [markdown]
42
+ args: ["--wrap", "120"]
43
43
  additional_dependencies:
44
- - mdformat-gfm>=1
45
- - mdformat-ruff>=0.1.3
44
+ - mdformat-gfm==1.0.0
45
+ - mdformat-ruff==0.1.3
46
46
  - repo: https://github.com/zizmorcore/zizmor-pre-commit
47
- rev: v1.30.1
47
+ rev: c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f # frozen: v1.31.1
48
48
  hooks:
49
49
  - id: zizmor
50
50
  - repo: meta
@@ -0,0 +1,128 @@
1
+ # Changelog
2
+
3
+ <!-- towncrier release notes start -->
4
+
5
+ <a name="release-1-3-2"></a>
6
+
7
+ ## 1.3.2 (2026-10-27)
8
+
9
+ <a name="release-1-3-2-fixed"></a>
10
+
11
+ ### Fixed
12
+
13
+ - Fix repository links in the PyPI project description ([#292](https://github.com/tox-dev/devpi-process/pull/292)) by
14
+ [@gaborbernat](https://github.com/gaborbernat).
15
+
16
+ <a name="release-1-3-1"></a>
17
+
18
+ ## 1.3.1 (2026-10-19)
19
+
20
+ <a name="release-1-3-1-documentation"></a> <a name="release-1-3-1-packaging"></a>
21
+
22
+ ### Packaging
23
+
24
+ - Publish a GitHub Release with the tagged changelog after each PyPI upload
25
+ ([#290](https://github.com/tox-dev/devpi-process/pull/290)) by [@gaborbernat](https://github.com/gaborbernat).
26
+
27
+ <a name="release-1-3-0"></a>
28
+
29
+ ## 1.3.0 (2026-10-10)
30
+
31
+ <a name="release-1-3-0-changes"></a> <a name="release-1-3-0-added"></a>
32
+
33
+ ### Added
34
+
35
+ - Require Python 3.11 ([#284](https://github.com/tox-dev/devpi-process/pull/284)) by
36
+ [@gaborbernat](https://github.com/gaborbernat).
37
+
38
+ <a name="release-1-2-0"></a>
39
+
40
+ ## 1.2.0 (2026-07-21)
41
+
42
+ <a name="release-1-2-0-other-changes"></a> <a name="release-1-2-0-added"></a>
43
+
44
+ ### Added
45
+
46
+ - Add Python 3.15 support ([#262](https://github.com/tox-dev/devpi-process/pull/262)) by
47
+ [@gaborbernat](https://github.com/gaborbernat).
48
+
49
+ <a name="release-1-1-1"></a>
50
+
51
+ ## 1.1.1 (2026-02-23)
52
+
53
+ <a name="release-1-1-0"></a>
54
+
55
+ ## 1.1.0 (2025-10-09)
56
+
57
+ <a name="release-1-1-0-added"></a>
58
+
59
+ ### Added
60
+
61
+ - Add Python 3.14 support and end support for Python 3.8 and 3.9
62
+ ([#196](https://github.com/tox-dev/devpi-process/pull/196)) by [@gaborbernat](https://github.com/gaborbernat).
63
+
64
+ <a name="release-1-0-2"></a>
65
+
66
+ ## 1.0.2 (2024-09-18)
67
+
68
+ <a name="release-1-0-1"></a>
69
+
70
+ ## 1.0.1 (2024-09-08)
71
+
72
+ <a name="release-1-0-1-added"></a>
73
+
74
+ ### Added
75
+
76
+ - Declare Python 3.13 support ([#130](https://github.com/tox-dev/devpi-process/pull/130)) by
77
+ [@gaborbernat](https://github.com/gaborbernat).
78
+
79
+ <a name="release-1-0-0"></a>
80
+
81
+ ## 1.0.0 (2023-08-22)
82
+
83
+ <a name="release-0-3-1"></a>
84
+
85
+ ## 0.3.1 (2023-06-15)
86
+
87
+ <a name="release-0-3-0"></a>
88
+
89
+ ## 0.3.0 (2022-12-03)
90
+
91
+ <a name="release-0-3-0-changes"></a> <a name="release-0-3-0-added"></a>
92
+
93
+ ### Added
94
+
95
+ - Declare Python 3.11 support ([#31](https://github.com/tox-dev/devpi-process/pull/31)) by
96
+ [@gaborbernat](https://github.com/gaborbernat).
97
+
98
+ <a name="release-0-3-0-fixed"></a>
99
+
100
+ ### Fixed
101
+
102
+ - Show stdout/stderr details if a command fails by [@gaborbernat](https://github.com/gaborbernat).
103
+
104
+ <a name="release-0-2"></a>
105
+
106
+ ## 0.2 (2021-12-29)
107
+
108
+ <a name="release-0-2-other-changes"></a> <a name="release-0-2-added"></a>
109
+
110
+ ### Added
111
+
112
+ - Drop Python 3.6 support by [@gaborbernat](https://github.com/gaborbernat).
113
+
114
+ <a name="release-0-2-fixed"></a>
115
+
116
+ ### Fixed
117
+
118
+ - Index URL now ends with `/` to avoid redirect when sending a GET by [@gaborbernat](https://github.com/gaborbernat).
119
+
120
+ <a name="release-0-1"></a>
121
+
122
+ ## 0.1 (2021-06-17)
123
+
124
+ <a name="release-0-1-added"></a>
125
+
126
+ ### Added
127
+
128
+ - First release by [@gaborbernat](https://github.com/gaborbernat).
@@ -0,0 +1,36 @@
1
+ # Contributing
2
+
3
+ Run the tests and type checker with `tox -e 3.15,type`. Run `prek run --all-files` before pushing a pull request.
4
+
5
+ ## Release notes
6
+
7
+ Add a `changelog.d/+short-name.<type>.md` fragment when a pull request changes what package users can use or observe.
8
+ Use one fragment per user-facing change. The release workflow links each fragment to its merged squash pull request.
9
+
10
+ | Type | Changelog section | Use for |
11
+ | ------------- | ----------------- | ---------------------------------------------------------- |
12
+ | `feature` | Added | New capabilities and Python support additions or removals |
13
+ | `change` | Changes | Changed behavior that remains available |
14
+ | `bugfix` | Fixed | Corrected behavior |
15
+ | `doc` | Documentation | Documentation changes users need to know about |
16
+ | `breaking` | Breaking changes | Changes that require users to update code or configuration |
17
+ | `security` | Security | Security fixes users need to act on |
18
+ | `performance` | Performance | User-visible speed or resource improvements |
19
+ | `deprecation` | Deprecated | Supported behavior scheduled for removal |
20
+ | `removal` | Removed | Removed user-facing capabilities other than Python support |
21
+ | `packaging` | Packaging | Install, wheel, or distribution changes |
22
+
23
+ Use `skip news` for a pull request with no user-facing change. The label can be applied after the pull request opens. A
24
+ fragment still has to be valid when the label is present. Dependabot, pre-commit.ci, and repository automation receive
25
+ the label when their pull request has no fragment.
26
+
27
+ Do not write credits in fragments. The release credits come from the commit authors and `Co-authored-by` trailers, and
28
+ the prepare workflow runs `release-creator contributors` to add first-time contributors to the changelog.
29
+
30
+ Pending fragments stay in `changelog.d` until a release. The prepare workflow writes the tagged entries to
31
+ `CHANGELOG.md`; maintenance-only releases keep their version heading without a news entry. The GitHub Release uses the
32
+ same entries with unwrapped lines. The PyPI upload runs only after the notes render.
33
+
34
+ `pylock.toml` records the selectable dependency groups for supported Python versions and platforms. The weekly release
35
+ lock workflow refreshes it after a seven-day cooldown. Release jobs install the specific tool groups they need from this
36
+ lock.
@@ -1,7 +1,9 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: devpi-process
3
- Version: 1.3.0
3
+ Version: 1.3.2
4
+ Import-Name: devpi_process
4
5
  Summary: devpi process provides a programmatic API to create and use a devpi server process
6
+ Project-URL: Changelog, https://github.com/tox-dev/devpi-process/blob/main/CHANGELOG.md
5
7
  Project-URL: Homepage, https://github.com/tox-dev/devpi-process#readme
6
8
  Project-URL: Source, https://github.com/tox-dev/devpi-process
7
9
  Project-URL: Tracker, https://github.com/tox-dev/devpi-process/issues
@@ -9,11 +11,9 @@ Author-email: Bernát Gábor <gaborjbernat@gmail.com>
9
11
  Maintainer-email: Bernát Gábor <gaborjbernat@gmail.com>
10
12
  License-Expression: MIT
11
13
  License-File: LICENSE.txt
12
- Keywords: environments,isolated,testing,virtual
14
+ Keywords: devpi,process,testing
13
15
  Classifier: Development Status :: 5 - Production/Stable
14
- Classifier: Framework :: tox
15
16
  Classifier: Intended Audience :: Developers
16
- Classifier: License :: OSI Approved :: MIT License
17
17
  Classifier: Operating System :: MacOS :: MacOS X
18
18
  Classifier: Operating System :: Microsoft :: Windows
19
19
  Classifier: Operating System :: POSIX
@@ -33,6 +33,8 @@ Description-Content-Type: text/markdown
33
33
 
34
34
  # devpi-process
35
35
 
36
+ See the [changelog](https://github.com/tox-dev/devpi-process/blob/main/CHANGELOG.md) for released changes and [contributing guide](https://github.com/tox-dev/devpi-process/blob/main/CONTRIBUTING.md) for fragment rules.
37
+
36
38
  [![PyPI](https://img.shields.io/pypi/v/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
37
39
  [![PyPI - Implementation](https://img.shields.io/pypi/implementation/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
38
40
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
@@ -1,5 +1,7 @@
1
1
  # devpi-process
2
2
 
3
+ See the [changelog](CHANGELOG.md) for released changes and [contributing guide](CONTRIBUTING.md) for fragment rules.
4
+
3
5
  [![PyPI](https://img.shields.io/pypi/v/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
4
6
  [![PyPI - Implementation](https://img.shields.io/pypi/implementation/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
5
7
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)