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.
Files changed (49) hide show
  1. pyproject_api-1.12.2/.github/dependabot.yaml +30 -0
  2. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.github/workflows/check.yaml +29 -19
  3. pyproject_api-1.12.2/.github/workflows/codeql.yaml +41 -0
  4. pyproject_api-1.12.2/.github/workflows/news.yaml +33 -0
  5. pyproject_api-1.12.2/.github/workflows/prepare-release.yaml +26 -0
  6. pyproject_api-1.12.2/.github/workflows/release.yaml +118 -0
  7. pyproject_api-1.12.2/.github/workflows/upgrade-release-tools.yaml +23 -0
  8. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.gitignore +1 -0
  9. pyproject_api-1.12.2/.pre-commit-config.yaml +55 -0
  10. pyproject_api-1.12.2/CONTRIBUTING.md +4 -0
  11. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/PKG-INFO +4 -6
  12. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/docs/api.rst +6 -0
  13. pyproject_api-1.12.2/docs/changelog.d/template.jinja2 +23 -0
  14. pyproject_api-1.12.2/docs/changelog.rst +494 -0
  15. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/docs/conf.py +8 -0
  16. pyproject_api-1.12.2/docs/contributing.rst +28 -0
  17. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/docs/index.rst +2 -0
  18. pyproject_api-1.12.2/pylock.toml +2788 -0
  19. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/pyproject.toml +64 -10
  20. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_backend.py +2 -0
  21. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_backend.pyi +0 -2
  22. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_frontend.py +12 -8
  23. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_version.py +2 -2
  24. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_via_fresh_subprocess.py +8 -3
  25. pyproject_api-1.12.2/tests/_build_sdist.py +0 -0
  26. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_backend.py +13 -2
  27. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_frontend.py +190 -2
  28. pyproject_api-1.12.0/.github/dependabot.yaml +0 -13
  29. pyproject_api-1.12.0/.github/workflows/release.yaml +0 -53
  30. pyproject_api-1.12.0/.pre-commit-config.yaml +0 -39
  31. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.github/FUNDING.yaml +0 -0
  32. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.github/SECURITY.md +0 -0
  33. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.github/release.yaml +0 -0
  34. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/.readthedocs.yml +0 -0
  35. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/CODE_OF_CONDUCT.md +0 -0
  36. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/LICENSE +0 -0
  37. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/README.md +0 -0
  38. /pyproject_api-1.12.0/src/pyproject_api/py.typed → /pyproject_api-1.12.2/docs/changelog.d/.gitkeep +0 -0
  39. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/__init__.py +0 -0
  40. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/__main__.py +0 -0
  41. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/src/pyproject_api/_util.py +0 -0
  42. /pyproject_api-1.12.0/tests/_build_sdist.py → /pyproject_api-1.12.2/src/pyproject_api/py.typed +0 -0
  43. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/demo_pkg_inline/build.py +0 -0
  44. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/demo_pkg_inline/pyproject.toml +0 -0
  45. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_frontend_setuptools.py +0 -0
  46. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_main.py +0 -0
  47. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_util.py +0 -0
  48. {pyproject_api-1.12.0 → pyproject_api-1.12.2}/tests/test_version.py +0 -0
  49. {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-latest
38
- - macos-latest
35
+ - windows-2025-vs2026
36
+ - macos-26
39
37
  exclude:
40
- - { os: macos-latest, env: "type" }
41
- - { os: macos-latest, env: "dev" }
42
- - { os: macos-latest, env: "pkg_meta" }
38
+ - {os: macos-26, env: "type"}
39
+ - {os: macos-26, env: "dev"}
40
+ - {os: macos-26, env: "pkg_meta"}
43
41
  steps:
44
- - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
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 the latest version of uv
49
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
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" >> $GITHUB_PATH
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: Setup test suite
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.
@@ -7,3 +7,4 @@ dist
7
7
  *.egg-info
8
8
  .tox
9
9
  /.*_cache
10
+ /uv.lock
@@ -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
@@ -0,0 +1,4 @@
1
+ # Contributing
2
+
3
+ See the [contributing guide](https://pyproject-api.readthedocs.io/en/latest/contributing.html) for release note rules
4
+ and local checks.
@@ -1,8 +1,9 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pyproject-api
3
- Version: 1.12.0
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/releases
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: environments,isolated,testing,virtual
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 %}