Skip to content

RTECO-992 - Added support for uv package manager - #3436

Merged
agrasth merged 14 commits into
jfrog:masterfrom
agrasth:feature/RTECO-992
Apr 29, 2026
Merged

agrasth merged 14 commits into
jfrog:masterfrom
agrasth:feature/RTECO-992

Conversation

@agrasth

@agrasth agrasth commented Apr 15, 2026 •

Copy link
Copy Markdown
Contributor
  • All tests have passed. If this feature is not already covered by the tests, new tests have been added.
  • The pull request is targeting the master branch.
  • The code has been validated to compile successfully by running go vet ./....
  • The code has been formatted properly using go fmt ./....

Adds jf uv — a transparent wrapper over the uv CLI with Artifactory credential injection, build-info collection, and full support for all uv subcommands (sync, lock, add, remove, build, publish, run, tree, etc.).

How it works

jf uv <args> behaves identically to uv <args> with two additions:

  1. Credential injection — Artifactory index credentials are set as UV_INDEX_* env vars before calling uv, following UV's own auth priority chain (env vars → embedded URL → netrc → jf config)
  2. Build-info collection — after the command completes, dependency and artifact information is recorded locally for later publishing via jf rt bp

Typical workflow

jf uv sync    --build-name myapp --build-number $BUILD_NUM   # collect deps
jf uv build   --build-name myapp --build-number $BUILD_NUM   # build wheel/sdist
jf uv publish --build-name myapp --build-number $BUILD_NUM   # upload + record artifacts
jf rt bp myapp $BUILD_NUM                                     # publish build-info

CI/Integration notes

  • Fully compatible with UV_INDEX_URL, UV_DEFAULT_INDEX, and UV_INDEX_*_USERNAME/PASSWORD env vars — jf defers to any native auth already present
  • [dependency-groups] (PEP 735) and [tool.uv.dev-dependencies] both supported; --no-dev, --only-dev, --group, --only-group, --no-group, --all-groups all respected via uv pip list ground truth
  • jf uv run --script <file> collects build-info from the script's own inline dependencies (not the surrounding project)
  • Command is marked Hidden: true pending migration of the definition to jfrog-cli-artifactory

Test coverage

Added uv_test.go with integration tests covering: sync/lock/add/remove/build/publish pipelines, all auth methods, virtual/local/remote repo combinations, build-info verification (deps, artifacts, requestedBy chains, sha1/md5), --module, --server-id, --project, dev/group dependency handling, and CI/VCS properties.

@agrasth
agrasth force-pushed the feature/RTECO-992 branch from 5f863ce to ce3bc96 Compare April 15, 2026 17:33
@agrasth
agrasth marked this pull request as ready for review April 24, 2026 09:09
@agrasth agrasth added the safe to test Approve running integration tests on a pull request label Apr 24, 2026
Comment thread buildtools/cli.go Resolved
Comment thread .github/workflows/uvTests.yml Resolved
Comment thread .github/workflows/uvTests.yml Resolved
Comment thread buildtools/cli.go Resolved
Comment thread buildtools/cli.go Resolved
Comment thread buildtools/cli.go Resolved
Comment thread buildtools/cli.go Resolved
…d, flat structs and no nested switch in publish auth
…emove UV helpers from cli.go and buildinfo.go
Update python.NewNativeUvCommand() call to python.NewNativeUVCommand()
to match the renamed identifier in jfrog-cli-artifactory.
@agrasth
agrasth requested a review from bhanurp April 28, 2026 06:18
@agrasth agrasth added safe to test Approve running integration tests on a pull request and removed safe to test Approve running integration tests on a pull request labels Apr 28, 2026
@agrasth agrasth added safe to test Approve running integration tests on a pull request and removed safe to test Approve running integration tests on a pull request labels Apr 29, 2026
@agrasth
agrasth enabled auto-merge (squash) April 29, 2026 07:56
@agrasth agrasth added safe to test Approve running integration tests on a pull request and removed safe to test Approve running integration tests on a pull request labels Apr 29, 2026
@agrasth
agrasth disabled auto-merge April 29, 2026 09:19
@github-actions

Copy link
Copy Markdown
Contributor

👍 Frogbot scanned this pull request and did not find any new security issues.


@agrasth
agrasth requested review from bhanurp and removed request for bhanurp April 29, 2026 09:47
@agrasth
agrasth merged commit 5b6f237 into jfrog:master Apr 29, 2026
80 checks passed

This branch was previously deployed

1 inactive deployment
frogbot — 93323513 Deployed Apr 29, 2026 by agrasth via scan-pull-request #4126
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to test Approve running integration tests on a pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants