dotenvmodel 0.5.2__tar.gz → 0.5.4__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 (116) hide show
  1. dotenvmodel-0.5.4/.github/workflows/publish.yml +89 -0
  2. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.github/workflows/release-please.yml +0 -1
  3. dotenvmodel-0.5.4/.release-please-manifest.json +3 -0
  4. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/CHANGELOG.md +14 -0
  5. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/PKG-INFO +1 -1
  6. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/__init__.py +1 -1
  7. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/pyproject.toml +1 -1
  8. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/uv.lock +1 -1
  9. dotenvmodel-0.5.2/.github/workflows/publish.yml +0 -125
  10. dotenvmodel-0.5.2/.release-please-manifest.json +0 -3
  11. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.github/CODEOWNERS +0 -0
  12. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  13. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  14. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.github/dependabot.yml +0 -0
  15. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.github/pull_request_template.md +0 -0
  16. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.github/workflows/ci.yml +0 -0
  17. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.github/workflows/docs.yml +0 -0
  18. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.gitignore +0 -0
  19. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/.python-version +0 -0
  20. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/CODE_OF_CONDUCT.md +0 -0
  21. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/CONTRIBUTING.md +0 -0
  22. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/LICENSE +0 -0
  23. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/Makefile +0 -0
  24. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/README.md +0 -0
  25. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/SECURITY.md +0 -0
  26. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/coercion.md +0 -0
  27. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/config.md +0 -0
  28. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/constants.md +0 -0
  29. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/describe-formatters.md +0 -0
  30. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/describe-renderers.md +0 -0
  31. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/describe.md +0 -0
  32. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/dotenvmodel.md +0 -0
  33. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/exceptions.md +0 -0
  34. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/fields.md +0 -0
  35. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/loading.md +0 -0
  36. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/logging-config.md +0 -0
  37. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/metaclass.md +0 -0
  38. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/types.md +0 -0
  39. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/api-reference/validation.md +0 -0
  40. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/changelog.md +0 -0
  41. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/examples/complete-app.md +0 -0
  42. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/getting-started/installation.md +0 -0
  43. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/getting-started/quick-start.md +0 -0
  44. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/guides/configuration-docs.md +0 -0
  45. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/guides/error-handling.md +0 -0
  46. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/guides/fields.md +0 -0
  47. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/guides/loading.md +0 -0
  48. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/guides/logging.md +0 -0
  49. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/guides/prefixes.md +0 -0
  50. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/guides/types.md +0 -0
  51. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/guides/validation.md +0 -0
  52. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/docs/index.md +0 -0
  53. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/_constants.py +0 -0
  54. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/_redaction.py +0 -0
  55. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/coercion.py +0 -0
  56. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/config.py +0 -0
  57. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/describe/__init__.py +0 -0
  58. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/describe/formatters.py +0 -0
  59. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/describe/renderers.py +0 -0
  60. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/exceptions.py +0 -0
  61. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/fields.py +0 -0
  62. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/loading.py +0 -0
  63. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/logging_config.py +0 -0
  64. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/metaclass.py +0 -0
  65. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/py.typed +0 -0
  66. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/types.py +0 -0
  67. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/dotenvmodel/validation.py +0 -0
  68. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/examples/advanced_types.py +0 -0
  69. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/examples/basic_usage.py +0 -0
  70. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/examples/describe_documentation.py +0 -0
  71. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/examples/generate_env_example.py +0 -0
  72. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/examples/logging_example.py +0 -0
  73. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/mkdocs.yml +0 -0
  74. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/release-please-config.json +0 -0
  75. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/__init__.py +0 -0
  76. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/conftest.py +0 -0
  77. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_basic.py +0 -0
  78. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_coercion.py +0 -0
  79. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_collection_validators.py +0 -0
  80. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_defaults_coercion.py +0 -0
  81. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_describe.py +0 -0
  82. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_edge_adoption.py +0 -0
  83. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_edge_datetime.py +0 -0
  84. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_edge_describe_output.py +0 -0
  85. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_edge_enum.py +0 -0
  86. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_edge_field_options.py +0 -0
  87. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_edge_numbers.py +0 -0
  88. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_edge_path_options.py +0 -0
  89. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_edge_strings.py +0 -0
  90. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_empty_collection_items.py +0 -0
  91. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_empty_strings.py +0 -0
  92. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_enum.py +0 -0
  93. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_errors.py +0 -0
  94. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_field_constraints.py +0 -0
  95. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_future_annotations.py +0 -0
  96. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_inheritance.py +0 -0
  97. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_json.py +0 -0
  98. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_json_and_optional.py +0 -0
  99. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_loading.py +0 -0
  100. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_logging_config.py +0 -0
  101. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_nested_config.py +0 -0
  102. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_post_load.py +0 -0
  103. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_prefix.py +0 -0
  104. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_reload.py +0 -0
  105. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_secret_redaction.py +0 -0
  106. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_secretstr_security.py +0 -0
  107. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_string_affixes.py +0 -0
  108. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_strip.py +0 -0
  109. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_strip_integration.py +0 -0
  110. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_types.py +0 -0
  111. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_union_types.py +0 -0
  112. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_url_dsn.py +0 -0
  113. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_url_password_decoding.py +0 -0
  114. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_url_unquote.py +0 -0
  115. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_urls.py +0 -0
  116. {dotenvmodel-0.5.2 → dotenvmodel-0.5.4}/tests/test_validator.py +0 -0
@@ -0,0 +1,89 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_call:
8
+ inputs:
9
+ tag_name:
10
+ required: true
11
+ type: string
12
+ workflow_dispatch:
13
+ inputs:
14
+ tag_name:
15
+ description: Existing tag to build and publish (e.g. v0.5.3)
16
+ required: true
17
+ type: string
18
+
19
+ permissions:
20
+ contents: read
21
+
22
+ jobs:
23
+ build:
24
+ runs-on: ubuntu-latest
25
+ steps:
26
+ - uses: actions/checkout@v7
27
+ with:
28
+ ref: ${{ inputs.tag_name || github.ref }}
29
+
30
+ - name: Install uv
31
+ uses: astral-sh/setup-uv@v8.3.2
32
+ with:
33
+ enable-cache: true
34
+
35
+ - name: Set up Python
36
+ run: uv python install 3.12
37
+
38
+ - name: Verify tag matches project version
39
+ env:
40
+ TAG_NAME: ${{ inputs.tag_name || github.ref_name }}
41
+ DIST_NAME: dotenvmodel
42
+ run: |
43
+ set -euo pipefail
44
+ tag="${TAG_NAME#v}"
45
+ version="$(uv run python -c 'import importlib.metadata, os; print(importlib.metadata.version(os.environ["DIST_NAME"]))')"
46
+ echo "Tag: ${tag}"
47
+ echo "project version: ${version}"
48
+ if [ "${tag}" != "${version}" ]; then
49
+ echo "::error::Git tag ${tag} does not match project version ${version}"
50
+ exit 1
51
+ fi
52
+
53
+ - name: Build sdist and wheel
54
+ run: uv build
55
+
56
+ - name: Smoke-test install from wheel
57
+ env:
58
+ DIST_NAME: dotenvmodel
59
+ run: |
60
+ uv venv test-env
61
+ uv pip install --python test-env/bin/python dist/*.whl
62
+ cd /tmp && $GITHUB_WORKSPACE/test-env/bin/python -c "import importlib.metadata, os; print(importlib.metadata.version(os.environ['DIST_NAME']))"
63
+
64
+ - name: Upload build artifacts
65
+ uses: actions/upload-artifact@v7.0.1
66
+ with:
67
+ name: release-dist
68
+ path: dist/
69
+ retention-days: 7
70
+
71
+ publish:
72
+ needs: [build]
73
+ runs-on: ubuntu-latest
74
+ environment:
75
+ name: pypi
76
+ url: https://pypi.org/project/dotenvmodel/
77
+ permissions:
78
+ id-token: write
79
+ steps:
80
+ - name: Download build artifacts
81
+ uses: actions/download-artifact@v8.0.1
82
+ with:
83
+ name: release-dist
84
+ path: dist/
85
+
86
+ - name: Publish to PyPI
87
+ uses: pypa/gh-action-pypi-publish@release/v1
88
+ with:
89
+ attestations: false
@@ -30,6 +30,5 @@ jobs:
30
30
  if: needs.release-please.outputs.release_created
31
31
  uses: ./.github/workflows/publish.yml
32
32
  with:
33
- release_created: true
34
33
  tag_name: ${{ needs.release-please.outputs.tag_name }}
35
34
  secrets: inherit
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.5.4"
3
+ }
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.5.4](https://github.com/AZX-PBC-OSS/dotenvmodel/compare/v0.5.3...v0.5.4) (2026-07-22)
9
+
10
+
11
+ ### Continuous Integration
12
+
13
+ * local self-contained publish workflow with attestations off ([#46](https://github.com/AZX-PBC-OSS/dotenvmodel/issues/46)) ([1f72487](https://github.com/AZX-PBC-OSS/dotenvmodel/commit/1f724876329ef4244c78289d7524254405b4cc10))
14
+
15
+ ## [0.5.3](https://github.com/AZX-PBC-OSS/dotenvmodel/compare/v0.5.2...v0.5.3) (2026-07-22)
16
+
17
+
18
+ ### Continuous Integration
19
+
20
+ * publish via centralized reusable workflow ([#44](https://github.com/AZX-PBC-OSS/dotenvmodel/issues/44)) ([d653161](https://github.com/AZX-PBC-OSS/dotenvmodel/commit/d653161cc426161838580bd0772ebb65b488198f))
21
+
8
22
  ## [0.5.2](https://github.com/AZX-PBC-OSS/dotenvmodel/compare/v0.5.1...v0.5.2) (2026-07-22)
9
23
 
10
24
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dotenvmodel
3
- Version: 0.5.2
3
+ Version: 0.5.4
4
4
  Summary: Type-safe environment configuration with automatic .env file loading
5
5
  Project-URL: Homepage, https://github.com/AZX-PBC-OSS/dotenvmodel
6
6
  Project-URL: Repository, https://github.com/AZX-PBC-OSS/dotenvmodel
@@ -34,7 +34,7 @@ Public API:
34
34
  Exception hierarchy
35
35
  """
36
36
 
37
- __version__ = "0.5.2" # x-release-please-version
37
+ __version__ = "0.5.4" # x-release-please-version
38
38
  __author__ = "AZX, PBC."
39
39
  __email__ = "oss@azx.io"
40
40
  __license__ = "MIT"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dotenvmodel"
7
- version = "0.5.2"
7
+ version = "0.5.4"
8
8
  description = "Type-safe environment configuration with automatic .env file loading"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -245,7 +245,7 @@ wheels = [
245
245
 
246
246
  [[package]]
247
247
  name = "dotenvmodel"
248
- version = "0.5.2"
248
+ version = "0.5.4"
249
249
  source = { editable = "." }
250
250
  dependencies = [
251
251
  { name = "python-dotenv" },
@@ -1,125 +0,0 @@
1
- name: Publish to PyPI
2
-
3
- on:
4
- push:
5
- tags:
6
- - "v*"
7
- workflow_call:
8
- inputs:
9
- release_created:
10
- required: true
11
- type: boolean
12
- tag_name:
13
- required: true
14
- type: string
15
- workflow_dispatch:
16
- inputs:
17
- tag_name:
18
- description: Existing tag to build and publish (e.g. v0.2.0)
19
- required: true
20
- type: string
21
-
22
- permissions:
23
- contents: read
24
-
25
- jobs:
26
- build:
27
- runs-on: ubuntu-latest
28
- if: ${{ github.event_name != 'workflow_call' || inputs.release_created }}
29
- steps:
30
- - uses: actions/checkout@v7
31
- with:
32
- ref: ${{ inputs.tag_name || github.ref }}
33
-
34
- - name: Install uv
35
- uses: astral-sh/setup-uv@v8.3.2
36
- with:
37
- enable-cache: true
38
-
39
- - name: Set up Python
40
- run: uv python install 3.12
41
-
42
- - name: Verify tag matches pyproject.toml version
43
- env:
44
- TAG_NAME: ${{ inputs.tag_name || github.ref_name }}
45
- run: |
46
- set -euo pipefail
47
- tag="${TAG_NAME#v}"
48
- version="$(uv run python -c 'import importlib.metadata; print(importlib.metadata.version("dotenvmodel"))')"
49
- echo "Tag: ${tag}"
50
- echo "pyproject.toml version: ${version}"
51
- if [ "${tag}" != "${version}" ]; then
52
- echo "::error::Git tag ${tag} does not match pyproject.toml version ${version}"
53
- exit 1
54
- fi
55
-
56
- - name: Build sdist and wheel
57
- run: uv build
58
-
59
- - name: Assert wheel ships required non-code artifacts
60
- run: |
61
- set -euo pipefail
62
- listing="$(uv run python -m zipfile -l dist/*.whl)"
63
- echo "$listing" | grep -q "dotenvmodel/py.typed"
64
-
65
- - name: Test installation from wheel
66
- run: |
67
- uv venv test-env
68
- uv pip install --python test-env/bin/python dist/*.whl
69
- cd /tmp && $GITHUB_WORKSPACE/test-env/bin/python -c "import dotenvmodel; print(dotenvmodel.__version__)"
70
-
71
- - name: Upload build artifacts
72
- uses: actions/upload-artifact@v7.0.1
73
- with:
74
- name: release-dist
75
- path: dist/
76
- retention-days: 7
77
-
78
- publish:
79
- needs: [build]
80
- runs-on: ubuntu-latest
81
- environment:
82
- name: pypi
83
- url: https://pypi.org/project/dotenvmodel/
84
- permissions:
85
- id-token: write
86
- steps:
87
- - name: Download build artifacts
88
- uses: actions/download-artifact@v8.0.1
89
- with:
90
- name: release-dist
91
- path: dist/
92
-
93
- - name: Publish to PyPI
94
- uses: pypa/gh-action-pypi-publish@release/v1
95
- with:
96
- # Attestations are only valid when publish.yml is the top-level
97
- # workflow: the Sigstore certificate's Build Config URI records the
98
- # top-level workflow, and PyPI verifies it against the trusted
99
- # publisher (publish.yml). Via workflow_call from release-please.yml
100
- # the certificate says release-please.yml instead, which PyPI
101
- # rejects with a 400 (attestations under reusable workflows are
102
- # unsupported). The OIDC token validates on both paths because PyPI
103
- # matches it against job_workflow_ref (publish.yml).
104
- attestations: ${{ github.event_name != 'workflow_call' }}
105
-
106
- # Trusted Publishing (OIDC): no API token is stored in this repo.
107
- # The PyPI trusted publisher is configured for:
108
- # Repository: AZX-PBC-OSS/dotenvmodel
109
- # Workflow: publish.yml
110
- # Environment: (Any)
111
- # This workflow is invoked three ways:
112
- # 1. Direct push of a v* tag (manual fallback path).
113
- # 2. workflow_call from release-please.yml after release-please creates a
114
- # release (tags made with GITHUB_TOKEN don't trigger push workflows, so
115
- # release-please.yml calls this workflow explicitly).
116
- # 3. workflow_dispatch with an existing tag name (manual republish, e.g.
117
- # recovering a failed automated publish).
118
- # The PyPI publisher stays valid for all paths because it targets
119
- # publish.yml — the file containing the publish job. For reusable-workflow
120
- # calls, PyPI matches the OIDC token against the called workflow's filename
121
- # (job_workflow_ref), which is still this one. Sigstore attestations are the
122
- # exception: their certificate records the TOP-LEVEL workflow, so they are
123
- # only enabled when publish.yml runs top-level (paths 1 and 3); see the
124
- # attestations input on the publish step.
125
- # See https://docs.pypi.org/trusted-publishers/ for setup details.
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.5.2"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes