ci: align PyPI with internal feed, add public-PyPI lever, clearer labels#141
Open
eduard-dumitru wants to merge 1 commit into
Open
ci: align PyPI with internal feed, add public-PyPI lever, clearer labels#141eduard-dumitru wants to merge 1 commit into
eduard-dumitru wants to merge 1 commit into
Conversation
…abels Three coreipc release-plumbing fixes: 1. Prereleases, not stripped releases. stamp-python-version.py now maps a CI build's SemVer suffix to a PEP 440 DEV prerelease (2.5.3-20260724-01 -> 2.5.3.dev2026072401) instead of a local (+) segment. Local segments are PyPI-illegal AND read as a FINAL release, so a dev build used to land on public PyPI stripped to a clean release. cd.yml now publishes the EXACT version ADO built (release or .devN), so public PyPI matches the internal feed. 2. A lever to publish Python internally without touching public PyPI. New publishToPublicPyPI parameter (default off) gates the public whisper, separate from publishPython (internal feed). Public PyPI stays master-only. 3. Clearer labels. Renamed the misleading publishPyPI param / Publish_PyPI stage (which only ever published to UiPath-Internal) to publishPython / Publish_Python; the public path is the new Publish_PublicPyPI stage. Also: the public-publish gate ends YELLOW (SucceededWithIssues), not green, when the version is already on PyPI — a clear at-most-once signal without failing the run. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Three release-plumbing fixes on the coreipc publish pipeline + the PyPI workflow.
stamp-python-version.pymaps a CI build's SemVer suffix to a PEP 440 dev prerelease (2.5.3-20260724-01→2.5.3.dev2026072401) instead of a local (+) segment. A+localversion is PyPI-illegal and reads as a FINAL release, so a dev build used to land on public PyPI stripped to a clean release.cd.ymlnow publishes the exact version CI built (release or.devN), so public PyPI matches the internal feed.publishToPublicPyPIparameter (default off) gates the public whisper, separate frompublishPython(internal feed) — so you can publish Python internally without touching public PyPI. Public PyPI stays master-only.publishPyPIparam /Publish_PyPIstage (which only ever published to UiPath-Internal) →publishPython/Publish_Python; the public path is the newPublish_PublicPyPIstage.Also: the public-publish gate now ends yellow (SucceededWithIssues), not green, when the version already exists on PyPI — a clear at-most-once signal without failing the run.
Heads-up (downstream)
Internal-feed dev builds are now PEP 440 prereleases (
.devN), where they were+local(which pip/uv treat as final). Consumers pulling dev builds ofuipath-ipcfrom UiPath-Internal (e.g.uipath-python'suipath-ipc>=2.5.1) will no longer auto-pick a dev build — prereleases are excluded by default; they must allow prereleases or pin the exact.devN. Already-published+localversions on the feed are unaffected; only new builds change..devNsorts before its base release, so bump the csproj<Version>right after cutting a release (standard open-development practice).Merge order
Merge the 2.5.3 bump PR first, then rebase this onto master (no file overlap, so it's clean either way).
Files
src/CI/stamp-python-version.py—+local→.devNsrc/CI/azp-publish.yaml— lever, labels, exact-version whisper, yellow-on-existing.github/workflows/cd.yml— publish the ADO-passed version (prereleases allowed)🤖 Generated with Claude Code