The tag-triggered publish.yml failed with InvalidDistribution: Invalid distribution metadata: unrecognized or malformed field 'license-file'. This blocked the Gitea release creation entirely.
While the post-merge publish step (DEVX-52) did create the Gitea release, the publish.yml workflow should also succeed — or at least not fail the job — when PyPI upload fails for any reason.
Fix
Wrap the PyPI/Gitea registry publish in a try/except that logs the error and continues to Gitea release creation. The Gitea release with release notes is the guarantee — PyPI publish is secondary and can fail for various reasons (409 Conflict, InvalidDistribution metadata, network issues).
Closes DEVX-53
## Problem
The tag-triggered `publish.yml` failed with `InvalidDistribution: Invalid distribution metadata: unrecognized or malformed field 'license-file'`. This blocked the Gitea release creation entirely.
While the post-merge publish step (DEVX-52) did create the Gitea release, the `publish.yml` workflow should also succeed — or at least not fail the job — when PyPI upload fails for any reason.
## Fix
Wrap the PyPI/Gitea registry publish in a try/except that logs the error and continues to Gitea release creation. The Gitea release with release notes is the guarantee — PyPI publish is secondary and can fail for various reasons (409 Conflict, InvalidDistribution metadata, network issues).
Closes DEVX-53
Documentation: WARNING — source files changed but no docs updated
Tests: OK
Commit conventions: OK
No issues found by automated checks.
Auto-merge: If all CI checks pass, this PR will be merged automatically.
## Automated PR Review
- Architecture compliance: OK
- Best practices: OK
- Security: OK
- i18n: OK
- Resource management: OK
- Documentation: WARNING — source files changed but no docs updated
- Tests: OK
- Commit conventions: OK
No issues found by automated checks.
---
**Auto-merge:** If all CI checks pass, this PR will be merged automatically.
emil
changed title from DEVX-53: Make PyPI publish failures non-fatal to DEVX-53: Make PyPI publish failures non-fatal so Gitea release is always created2026-06-25 21:37:55 +00:00
Documentation: WARNING — source files changed but no docs updated
Tests: OK
Commit conventions: OK
No issues found by automated checks.
Auto-merge: If all CI checks pass, this PR will be merged automatically.
## Automated PR Review
- Architecture compliance: OK
- Best practices: OK
- Security: OK
- i18n: OK
- Resource management: OK
- Documentation: WARNING — source files changed but no docs updated
- Tests: OK
- Commit conventions: OK
No issues found by automated checks.
---
**Auto-merge:** If all CI checks pass, this PR will be merged automatically.
emil
merged commit 8affccfa35 into master2026-06-25 21:39:13 +00:00
emil
deleted branch DEVX-53-non-fatal-pypi-publish2026-06-25 21:39:13 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
The tag-triggered
publish.ymlfailed withInvalidDistribution: Invalid distribution metadata: unrecognized or malformed field 'license-file'. This blocked the Gitea release creation entirely.While the post-merge publish step (DEVX-52) did create the Gitea release, the
publish.ymlworkflow should also succeed — or at least not fail the job — when PyPI upload fails for any reason.Fix
Wrap the PyPI/Gitea registry publish in a try/except that logs the error and continues to Gitea release creation. The Gitea release with release notes is the guarantee — PyPI publish is secondary and can fail for various reasons (409 Conflict, InvalidDistribution metadata, network issues).
Closes DEVX-53
Automated PR Review
No issues found by automated checks.
Auto-merge: If all CI checks pass, this PR will be merged automatically.
DEVX-53: Make PyPI publish failures non-fatalto DEVX-53: Make PyPI publish failures non-fatal so Gitea release is always createdAutomated PR Review
No issues found by automated checks.
Auto-merge: If all CI checks pass, this PR will be merged automatically.