pyproject-api 1.12.0__tar.gz → 1.12.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.
- pyproject_api-1.12.2/.github/dependabot.yaml +30 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.github/workflows/check.yaml +29 -19
- pyproject_api-1.12.2/.github/workflows/codeql.yaml +41 -0
- pyproject_api-1.12.2/.github/workflows/news.yaml +33 -0
- pyproject_api-1.12.2/.github/workflows/prepare-release.yaml +26 -0
- pyproject_api-1.12.2/.github/workflows/release.yaml +118 -0
- pyproject_api-1.12.2/.github/workflows/upgrade-release-tools.yaml +23 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.gitignore +1 -0
- pyproject_api-1.12.2/.pre-commit-config.yaml +55 -0
- pyproject_api-1.12.2/CONTRIBUTING.md +4 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/PKG-INFO +4 -6
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/docs/api.rst +6 -0
- pyproject_api-1.12.2/docs/changelog.d/template.jinja2 +23 -0
- pyproject_api-1.12.2/docs/changelog.rst +494 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/docs/conf.py +8 -0
- pyproject_api-1.12.2/docs/contributing.rst +28 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/docs/index.rst +2 -0
- pyproject_api-1.12.2/pylock.toml +2788 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/pyproject.toml +64 -10
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_backend.py +2 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_backend.pyi +0 -2
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_frontend.py +12 -8
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_version.py +2 -2
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_via_fresh_subprocess.py +8 -3
- pyproject_api-1.12.2/tests/_build_sdist.py +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_backend.py +13 -2
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_frontend.py +190 -2
- pyproject_api-1.12.0/.github/dependabot.yaml +0 -13
- pyproject_api-1.12.0/.github/workflows/release.yaml +0 -53
- pyproject_api-1.12.0/.pre-commit-config.yaml +0 -39
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.github/FUNDING.yaml +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.github/SECURITY.md +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.github/release.yaml +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.readthedocs.yml +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/CODE_OF_CONDUCT.md +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/LICENSE +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/README.md +0 -0
- /pyproject_api-1.12.0/src/pyproject_api/py.typed → /pyproject_api-1.12.2/docs/changelog.d/.gitkeep +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/__init__.py +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/__main__.py +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_util.py +0 -0
- /pyproject_api-1.12.0/tests/_build_sdist.py → /pyproject_api-1.12.2/src/pyproject_api/py.typed +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/demo_pkg_inline/build.py +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/demo_pkg_inline/pyproject.toml +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_frontend_setuptools.py +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_main.py +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_util.py +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_version.py +0 -0
- {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tox.toml +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
multi-ecosystem-groups:
|
|
3
|
+
dependencies:
|
|
4
|
+
schedule:
|
|
5
|
+
interval: weekly
|
|
6
|
+
day: tuesday
|
|
7
|
+
labels:
|
|
8
|
+
- dependencies
|
|
9
|
+
- skip news
|
|
10
|
+
updates:
|
|
11
|
+
- package-ecosystem: github-actions
|
|
12
|
+
directory: /
|
|
13
|
+
patterns:
|
|
14
|
+
- '*'
|
|
15
|
+
multi-ecosystem-group: dependencies
|
|
16
|
+
labels:
|
|
17
|
+
- dependencies
|
|
18
|
+
- skip news
|
|
19
|
+
cooldown:
|
|
20
|
+
default-days: 7
|
|
21
|
+
- package-ecosystem: pre-commit
|
|
22
|
+
directory: /
|
|
23
|
+
patterns:
|
|
24
|
+
- '*'
|
|
25
|
+
multi-ecosystem-group: dependencies
|
|
26
|
+
labels:
|
|
27
|
+
- dependencies
|
|
28
|
+
- skip news
|
|
29
|
+
cooldown:
|
|
30
|
+
default-days: 7
|
|
@@ -1,23 +1,21 @@
|
|
|
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
11
|
concurrency:
|
|
12
12
|
group: check-${{ github.ref }}
|
|
13
13
|
cancel-in-progress: true
|
|
14
|
-
|
|
15
14
|
permissions:
|
|
16
15
|
contents: read
|
|
17
|
-
|
|
18
16
|
jobs:
|
|
19
17
|
test:
|
|
20
|
-
name: test ${{ matrix.env }} - ${{ matrix.os }}
|
|
18
|
+
name: 🧪 test ${{ matrix.env }} - ${{ matrix.os }}
|
|
21
19
|
runs-on: ${{ matrix.os }}
|
|
22
20
|
strategy:
|
|
23
21
|
fail-fast: false
|
|
@@ -34,40 +32,52 @@ jobs:
|
|
|
34
32
|
- pkg_meta
|
|
35
33
|
os:
|
|
36
34
|
- ubuntu-26.04
|
|
37
|
-
- windows-
|
|
38
|
-
- macos-
|
|
35
|
+
- windows-2025-vs2026
|
|
36
|
+
- macos-26
|
|
39
37
|
exclude:
|
|
40
|
-
- {
|
|
41
|
-
- {
|
|
42
|
-
- {
|
|
38
|
+
- {os: macos-26, env: "type"}
|
|
39
|
+
- {os: macos-26, env: "dev"}
|
|
40
|
+
- {os: macos-26, env: "pkg_meta"}
|
|
43
41
|
steps:
|
|
44
|
-
-
|
|
42
|
+
- name: 📥 Check out code
|
|
43
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
45
44
|
with:
|
|
46
45
|
fetch-depth: 0
|
|
47
46
|
persist-credentials: false
|
|
48
|
-
- name: Install
|
|
49
|
-
uses: astral-sh/setup-uv@
|
|
47
|
+
- name: 🐍 Install uv
|
|
48
|
+
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
|
|
50
49
|
with:
|
|
50
|
+
version: latest-known
|
|
51
51
|
python-version: "3.15"
|
|
52
52
|
enable-cache: false
|
|
53
53
|
cache-dependency-glob: "pyproject.toml"
|
|
54
54
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
55
|
-
- name: Add .local/bin to Windows PATH
|
|
55
|
+
- name: ⚙️ Add .local/bin to Windows PATH
|
|
56
56
|
if: runner.os == 'Windows'
|
|
57
57
|
shell: bash
|
|
58
|
-
run: echo "$USERPROFILE/.local/bin" >>
|
|
59
|
-
- name: Install tox
|
|
58
|
+
run: echo "$USERPROFILE/.local/bin" >>"$GITHUB_PATH"
|
|
59
|
+
- name: 📦 Install tox
|
|
60
60
|
run: uv tool install --python-preference only-managed --python 3.15 tox --with tox-uv
|
|
61
|
-
- name: Install Python
|
|
61
|
+
- name: 🐍 Install Python
|
|
62
62
|
if: startsWith(matrix.env, '3.') && matrix.env != '3.15'
|
|
63
63
|
run: uv python install --python-preference only-managed ${{ matrix.env }}
|
|
64
|
-
- name:
|
|
64
|
+
- name: 📦 Set up test suite
|
|
65
65
|
run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.env }}
|
|
66
66
|
env:
|
|
67
67
|
UV_PYTHON_PREFERENCE: only-managed
|
|
68
|
-
- name: Run test suite
|
|
68
|
+
- name: 🧪 Run test suite
|
|
69
69
|
run: tox run --skip-pkg-install -e ${{ matrix.env }}
|
|
70
70
|
env:
|
|
71
71
|
PYTEST_ADDOPTS: "-vv --durations=20"
|
|
72
72
|
DIFF_AGAINST: HEAD
|
|
73
73
|
UV_PYTHON_PREFERENCE: only-managed
|
|
74
|
+
gate:
|
|
75
|
+
name: 🚦 ${{ github.event_name == 'pull_request' && 'Required checks pass' || 'Non-PR checks pass' }}
|
|
76
|
+
if: ${{ !cancelled() }} # codespell:ignore cancelled
|
|
77
|
+
needs: [test]
|
|
78
|
+
runs-on: ubuntu-26.04
|
|
79
|
+
steps:
|
|
80
|
+
- name: 🚦 Require all needed jobs to pass
|
|
81
|
+
env:
|
|
82
|
+
NEEDS_JSON: ${{ toJSON(needs) }}
|
|
83
|
+
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 # check out the code to analyze
|
|
19
|
+
security-events: write # upload the analysis results to code scanning
|
|
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,33 @@
|
|
|
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
|
+
pull-requests: read
|
|
11
|
+
jobs:
|
|
12
|
+
changelog:
|
|
13
|
+
name: 📝 News fragment
|
|
14
|
+
runs-on: ubuntu-26.04
|
|
15
|
+
steps:
|
|
16
|
+
- name: 📥 Check out code
|
|
17
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
18
|
+
with:
|
|
19
|
+
fetch-depth: 0
|
|
20
|
+
persist-credentials: false
|
|
21
|
+
- name: 🐍 Install uv
|
|
22
|
+
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
|
|
23
|
+
with:
|
|
24
|
+
version: latest-known
|
|
25
|
+
python-version: "3.15"
|
|
26
|
+
enable-cache: false
|
|
27
|
+
- name: 📦 Install locked release tools
|
|
28
|
+
uses: tox-dev/github-workflows/install-locked-tools@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.1
|
|
29
|
+
with:
|
|
30
|
+
groups: release-news
|
|
31
|
+
venv: ${{ runner.temp }}/release-tools
|
|
32
|
+
- name: 🔍 Validate news fragments
|
|
33
|
+
uses: tox-dev/github-workflows/validate-news@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.1
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: 🏷️ Prepare release
|
|
2
|
+
on:
|
|
3
|
+
workflow_dispatch:
|
|
4
|
+
inputs:
|
|
5
|
+
bump:
|
|
6
|
+
description: Version bump strategy
|
|
7
|
+
required: true
|
|
8
|
+
type: choice
|
|
9
|
+
options:
|
|
10
|
+
- auto
|
|
11
|
+
- major
|
|
12
|
+
- minor
|
|
13
|
+
- patch
|
|
14
|
+
default: auto
|
|
15
|
+
permissions: {}
|
|
16
|
+
jobs:
|
|
17
|
+
prepare:
|
|
18
|
+
name: 🏷️ Prepare Towncrier release
|
|
19
|
+
uses: tox-dev/github-workflows/.github/workflows/prepare-towncrier-release.yaml@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.1
|
|
20
|
+
permissions:
|
|
21
|
+
contents: read
|
|
22
|
+
pull-requests: read
|
|
23
|
+
secrets:
|
|
24
|
+
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
|
|
25
|
+
with:
|
|
26
|
+
bump: ${{ inputs.bump }}
|
|
@@ -0,0 +1,118 @@
|
|
|
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@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.1
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
github-notes:
|
|
17
|
+
name: 📝 Render GitHub Release notes
|
|
18
|
+
runs-on: ubuntu-26.04
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
21
|
+
outputs:
|
|
22
|
+
artifact-id: ${{ steps.upload.outputs.artifact-id }}
|
|
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@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.1
|
|
37
|
+
with:
|
|
38
|
+
groups: release-notes
|
|
39
|
+
venv: ${{ runner.temp }}/release-tools
|
|
40
|
+
- name: 🏷️ Select previous tag
|
|
41
|
+
id: previous
|
|
42
|
+
uses: tox-dev/github-workflows/select-previous-tag@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.1
|
|
43
|
+
with:
|
|
44
|
+
tag: ${{ github.ref_name }}
|
|
45
|
+
- name: 📝 Render release notes
|
|
46
|
+
uses: tox-dev/github-workflows/render-release-notes@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.1
|
|
47
|
+
with:
|
|
48
|
+
tag: ${{ github.ref_name }}
|
|
49
|
+
previous: ${{ steps.previous.outputs.previous }}
|
|
50
|
+
changelog: docs/changelog.rst
|
|
51
|
+
artifact-url: https://pypi.org/project/pyproject-api/${{ github.ref_name }}/
|
|
52
|
+
- name: 📤 Upload release notes
|
|
53
|
+
id: upload
|
|
54
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
55
|
+
with:
|
|
56
|
+
name: github-release-notes
|
|
57
|
+
path: ${{ runner.temp }}/release-notes.md
|
|
58
|
+
if-no-files-found: error
|
|
59
|
+
retention-days: 1
|
|
60
|
+
release:
|
|
61
|
+
name: 🚀 Publish to PyPI
|
|
62
|
+
needs: [build, github-notes]
|
|
63
|
+
runs-on: ubuntu-26.04
|
|
64
|
+
environment:
|
|
65
|
+
name: release
|
|
66
|
+
url: https://pypi.org/project/pyproject-api/${{ github.ref_name }}
|
|
67
|
+
permissions:
|
|
68
|
+
id-token: write
|
|
69
|
+
steps:
|
|
70
|
+
- name: 📩 Download distributions
|
|
71
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
72
|
+
with:
|
|
73
|
+
artifact-ids: ${{ needs.build.outputs.distributions-artifact-id }}
|
|
74
|
+
path: dist/
|
|
75
|
+
- name: 🚀 Publish to PyPI
|
|
76
|
+
uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3
|
|
77
|
+
with:
|
|
78
|
+
packages-dir: dist
|
|
79
|
+
attestations: true
|
|
80
|
+
github-release:
|
|
81
|
+
name: 🚀 Publish GitHub Release
|
|
82
|
+
needs: [build, release, github-notes]
|
|
83
|
+
runs-on: ubuntu-26.04
|
|
84
|
+
permissions:
|
|
85
|
+
contents: write
|
|
86
|
+
steps:
|
|
87
|
+
- name: 🐍 Install uv
|
|
88
|
+
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
|
|
89
|
+
with:
|
|
90
|
+
version: latest-known
|
|
91
|
+
python-version: "3.15"
|
|
92
|
+
enable-cache: false
|
|
93
|
+
ignore-empty-workdir: true
|
|
94
|
+
- name: 📩 Download distributions
|
|
95
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
96
|
+
with:
|
|
97
|
+
artifact-ids: ${{ needs.build.outputs.distributions-artifact-id }}
|
|
98
|
+
path: dist/
|
|
99
|
+
- name: 📩 Download release notes
|
|
100
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
101
|
+
with:
|
|
102
|
+
artifact-ids: ${{ needs.github-notes.outputs.artifact-id }}
|
|
103
|
+
path: ${{ runner.temp }}
|
|
104
|
+
- name: 🔍 Verify PyPI artifacts
|
|
105
|
+
uses: tox-dev/github-workflows/reconcile-pypi-artifacts@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.1
|
|
106
|
+
with:
|
|
107
|
+
project: pyproject-api
|
|
108
|
+
version: ${{ github.ref_name }}
|
|
109
|
+
dist: dist
|
|
110
|
+
- name: 🚀 Publish GitHub release
|
|
111
|
+
uses: tox-dev/github-workflows/publish-github-release@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.1
|
|
112
|
+
with:
|
|
113
|
+
tag: ${{ github.ref_name }}
|
|
114
|
+
commit: ${{ github.sha }}
|
|
115
|
+
title: ${{ github.ref_name }}
|
|
116
|
+
notes-file: ${{ runner.temp }}/release-notes.md
|
|
117
|
+
env:
|
|
118
|
+
GH_TOKEN: ${{ github.token }}
|
|
@@ -0,0 +1,23 @@
|
|
|
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@57a765127aae73adf7d0e24a7fe0f067f2d3ea3e # 6.2.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 release tool lock"
|
|
21
|
+
pull-request-body: |-
|
|
22
|
+
Relock `pylock.toml` with the latest release tools.
|
|
23
|
+
The lock records the exact versions used during release preparation and GitHub note rendering.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
ci:
|
|
2
|
+
autoupdate_schedule: quarterly
|
|
3
|
+
default_language_version:
|
|
4
|
+
python: python3.15
|
|
5
|
+
repos:
|
|
6
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
7
|
+
rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0
|
|
8
|
+
hooks:
|
|
9
|
+
- id: end-of-file-fixer
|
|
10
|
+
- id: trailing-whitespace
|
|
11
|
+
- repo: https://github.com/python-jsonschema/check-jsonschema
|
|
12
|
+
rev: 0494aa7fa1314e98913a41227d8f0a515b2c1049 # frozen: 0.38.2
|
|
13
|
+
hooks:
|
|
14
|
+
- id: check-github-workflows
|
|
15
|
+
args: ["--verbose"]
|
|
16
|
+
- repo: https://github.com/google/yamlfmt
|
|
17
|
+
rev: 21ca5323a9c87ee37a434e0ca908efc0a89daa07 # frozen: v0.21.0
|
|
18
|
+
hooks:
|
|
19
|
+
- id: yamlfmt
|
|
20
|
+
- repo: https://github.com/codespell-project/codespell
|
|
21
|
+
rev: 57b21406f092110c18776e39b0bda50d37c945c8 # frozen: v2.4.3
|
|
22
|
+
hooks:
|
|
23
|
+
- id: codespell
|
|
24
|
+
- repo: https://github.com/tox-dev/tox-toml-fmt
|
|
25
|
+
rev: "5125f601c3e134347288c3d42f3b34298b7cf1be" # frozen: v1.11.1
|
|
26
|
+
hooks:
|
|
27
|
+
- id: tox-toml-fmt
|
|
28
|
+
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
29
|
+
rev: "50e0f3aee9dc5747a5f173f79a7417403c18dda6" # frozen: v2.30.3
|
|
30
|
+
hooks:
|
|
31
|
+
- id: pyproject-fmt
|
|
32
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
33
|
+
rev: "38bfb07c0c64c304f47eb52090f8288150c77730" # frozen: v0.17.1
|
|
34
|
+
hooks:
|
|
35
|
+
- id: ruff-format
|
|
36
|
+
- id: ruff
|
|
37
|
+
args: ["--fix", "--unsafe-fixes", "--exit-non-zero-on-fix"]
|
|
38
|
+
- repo: https://github.com/LilSpazJoekp/docstrfmt
|
|
39
|
+
rev: c1813841673cdcd6cf602dde1edb78a5d5e45235 # frozen: v2.2.1
|
|
40
|
+
hooks:
|
|
41
|
+
- id: docstrfmt
|
|
42
|
+
files: |
|
|
43
|
+
(?x)
|
|
44
|
+
^docs/changelog[.]rst$ # Only the generated release history.
|
|
45
|
+
args: ["-l", "120", "--preserve-adornments"]
|
|
46
|
+
additional_dependencies:
|
|
47
|
+
- "sphinx==9.1.1"
|
|
48
|
+
- repo: https://github.com/zizmorcore/zizmor-pre-commit
|
|
49
|
+
rev: c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f # frozen: v1.31.1
|
|
50
|
+
hooks:
|
|
51
|
+
- id: zizmor
|
|
52
|
+
- repo: meta
|
|
53
|
+
hooks:
|
|
54
|
+
- id: check-hooks-apply
|
|
55
|
+
- id: check-useless-excludes
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: pyproject-api
|
|
3
|
-
Version: 1.12.
|
|
3
|
+
Version: 1.12.2
|
|
4
|
+
Import-Name: pyproject_api
|
|
4
5
|
Summary: API to interact with the python pyproject.toml based projects
|
|
5
|
-
Project-URL: Changelog, https://github.com/tox-dev/pyproject-api/
|
|
6
|
+
Project-URL: Changelog, https://github.com/tox-dev/pyproject-api/blob/main/docs/changelog.rst
|
|
6
7
|
Project-URL: Homepage, https://pyproject-api.readthedocs.io
|
|
7
8
|
Project-URL: Source, https://github.com/tox-dev/pyproject-api
|
|
8
9
|
Project-URL: Tracker, https://github.com/tox-dev/pyproject-api/issues
|
|
@@ -10,11 +11,9 @@ Author-email: Bernát Gábor <gaborjbernat@gmail.com>
|
|
|
10
11
|
Maintainer-email: Bernát Gábor <gaborjbernat@gmail.com>
|
|
11
12
|
License-Expression: MIT
|
|
12
13
|
License-File: LICENSE
|
|
13
|
-
Keywords:
|
|
14
|
+
Keywords: build-system,metadata,pyproject
|
|
14
15
|
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
-
Classifier: Framework :: tox
|
|
16
16
|
Classifier: Intended Audience :: Developers
|
|
17
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
18
17
|
Classifier: Operating System :: MacOS :: MacOS X
|
|
19
18
|
Classifier: Operating System :: Microsoft :: Windows
|
|
20
19
|
Classifier: Operating System :: POSIX
|
|
@@ -25,7 +24,6 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.14
|
|
26
25
|
Classifier: Programming Language :: Python :: 3.15
|
|
27
26
|
Classifier: Topic :: Software Development :: Libraries
|
|
28
|
-
Classifier: Topic :: Software Development :: Testing
|
|
29
27
|
Classifier: Topic :: Utilities
|
|
30
28
|
Requires-Python: >=3.11
|
|
31
29
|
Requires-Dist: packaging>=26.3
|
|
@@ -10,6 +10,12 @@ Frontend
|
|
|
10
10
|
--------
|
|
11
11
|
.. autoclass:: Frontend
|
|
12
12
|
|
|
13
|
+
Build and metadata directory arguments may be relative to the caller's current
|
|
14
|
+
working directory. They are passed to the backend as absolute paths, since the
|
|
15
|
+
backend runs from the project directory. Result paths retain the spelling of the
|
|
16
|
+
directory argument. Configuration settings and generic command arguments are
|
|
17
|
+
passed through unchanged.
|
|
18
|
+
|
|
13
19
|
.. autoclass:: OptionalHooks
|
|
14
20
|
|
|
15
21
|
Exceptions
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.. _release-{{ versiondata.version|replace('.', '-') }}:
|
|
2
|
+
|
|
3
|
+
{% if versiondata.version == 'Draft' %}
|
|
4
|
+
Draft
|
|
5
|
+
-----
|
|
6
|
+
{% else %}
|
|
7
|
+
v{{ versiondata.version }} ({{ versiondata.date }})
|
|
8
|
+
{{ "-" * ((versiondata.version + versiondata.date)|length + 4) }}
|
|
9
|
+
{% endif %}
|
|
10
|
+
|
|
11
|
+
{% for section in sections %}
|
|
12
|
+
{% for category in definitions if category in sections[section] and sections[section][category] %}
|
|
13
|
+
.. _release-{{ versiondata.version|replace('.', '-') }}-{{ definitions[category]['name']|lower|replace(' ', '-') }}:
|
|
14
|
+
|
|
15
|
+
{{ definitions[category]['name'] }}
|
|
16
|
+
{{ "^" * (definitions[category]['name']|length) }}
|
|
17
|
+
|
|
18
|
+
{% for text, values in sections[section][category].items() %}
|
|
19
|
+
- {{ text }}{{ ' (' ~ (values|join(', ')) ~ ')' if values|join(', ') else '' }}
|
|
20
|
+
{% endfor %}
|
|
21
|
+
|
|
22
|
+
{% endfor %}
|
|
23
|
+
{% endfor %}
|