Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion devbox_setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ uv run pre-commit install

`uv sync` installs the SDK and all development dependency groups into `.venv`. Source changes are immediately reflected because the SDK and `dev_utils` are installed editably.

The checked-in `uv.lock` provides a reproducible contributor environment. CI deliberately runs `uv sync --upgrade` so the library is also tested against the newest compatible dependencies.
The checked-in `uv.lock` provides a reproducible contributor environment. Cached Azure Pipelines E2E jobs deliberately resolve an upgraded lockfile before caching, then run `uv sync --locked` so the library is tested against the newest compatible dependencies without changing the cache key during a job.

Common commands:

Expand Down
3 changes: 2 additions & 1 deletion vsts/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ trigger:
- main

pr:
autoCancel: true
branches:
include:
- main
- '*'

resources:
- repo: self
Expand Down
15 changes: 10 additions & 5 deletions vsts/dps-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ trigger:
- main

pr:
autoCancel: true
branches:
include:
- main
- '*'

resources:
- repo: self
Expand Down Expand Up @@ -287,6 +288,13 @@ stages:
versionSpec: '3.10'
architecture: 'x64'

- script: 'python -m pip install uv'
displayName: 'Install uv'

# Resolve upgrades before Cache@2 hashes uv.lock so its save key stays stable.
- script: 'uv lock --upgrade --python 3.10 --no-cache'
displayName: 'Resolve latest dependencies'

# Cache downloads without reusing the job environment.
- task: Cache@2
displayName: 'Cache uv'
Expand All @@ -297,10 +305,7 @@ stages:
"uv" | "$(Agent.OS)"
path: $(Pipeline.Workspace)/.uv-cache

- script: 'python -m pip install uv'
displayName: 'Install uv'

- script: 'uv sync --upgrade --python 3.10 --no-dev --group test --group e2e'
- script: 'uv sync --locked --python 3.10 --no-dev --group test --group e2e'
displayName: 'Sync E2E environment'
env:
UV_CACHE_DIR: $(Pipeline.Workspace)/.uv-cache
Expand Down
3 changes: 2 additions & 1 deletion vsts/horton-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ trigger:
- main

pr:
autoCancel: true
branches:
include:
- main
- '*'

variables:
Horton.FrameworkRoot: $(Agent.BuildDirectory)/e2e-fx
Expand Down
13 changes: 8 additions & 5 deletions vsts/python-canary.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,13 @@ jobs:
versionSpec: $(pv)
architecture: 'x64'

- script: 'python -m pip install uv'
displayName: 'Install uv'

# Resolve upgrades before Cache@2 hashes uv.lock so its save key stays stable.
- script: 'uv lock --upgrade --python "$(pv)" --no-cache'
displayName: 'Resolve latest dependencies'

# Cache downloads without reusing the job environment.
- task: Cache@2
displayName: 'Cache uv'
Expand All @@ -62,10 +69,7 @@ jobs:
"uv" | "$(Agent.OS)"
path: $(Pipeline.Workspace)/.uv-cache

- script: 'python -m pip install uv'
displayName: 'Install uv'

- script: 'uv sync --upgrade --python "$(pv)" --no-dev --group test --group e2e'
- script: 'uv sync --locked --python "$(pv)" --no-dev --group test --group e2e'
displayName: 'Sync E2E environment'
env:
UV_CACHE_DIR: $(Pipeline.Workspace)/.uv-cache
Expand All @@ -84,4 +88,3 @@ jobs:
- task: PublishTestResults@2
displayName: 'Publish Test Results'
condition: always()

27 changes: 18 additions & 9 deletions vsts/python-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ trigger:
- main

pr:
autoCancel: true
branches:
include:
- main
- '*'

name: $(BuildID)_$(BuildDefinitionName)_$(SourceBranchName)

Expand Down Expand Up @@ -114,6 +115,13 @@ stages:
versionSpec: $(pv)
architecture: 'x64'

- script: 'python -m pip install uv'
displayName: 'Install uv'

# Resolve upgrades before Cache@2 hashes uv.lock so its save key stays stable.
- script: 'uv lock --upgrade --python "$(pv)" --no-cache'
displayName: 'Resolve latest dependencies'

# Cache downloads without reusing the job environment.
- task: Cache@2
displayName: 'Cache uv'
Expand All @@ -124,10 +132,7 @@ stages:
"uv" | "$(Agent.OS)"
path: $(Pipeline.Workspace)/.uv-cache

- script: 'python -m pip install uv'
displayName: 'Install uv'

- script: 'uv sync --upgrade --python "$(pv)" --no-dev --group test --group e2e'
- script: 'uv sync --locked --python "$(pv)" --no-dev --group test --group e2e'
displayName: 'Sync E2E environment'
env:
UV_CACHE_DIR: $(Pipeline.Workspace)/.uv-cache
Expand Down Expand Up @@ -165,6 +170,13 @@ stages:
versionSpec: $(pv)
architecture: 'x64'

- script: 'python -m pip install uv'
displayName: 'Install uv'

# Resolve upgrades before Cache@2 hashes uv.lock so its save key stays stable.
- script: 'uv lock --upgrade --python "$(pv)" --no-cache'
displayName: 'Resolve latest dependencies'

# Cache downloads without reusing the job environment.
- task: Cache@2
displayName: 'Cache uv'
Expand All @@ -175,10 +187,7 @@ stages:
"uv" | "$(Agent.OS)"
path: $(Pipeline.Workspace)/.uv-cache

- script: 'python -m pip install uv'
displayName: 'Install uv'

- script: 'uv sync --upgrade --python "$(pv)" --no-dev --group test --group e2e'
- script: 'uv sync --locked --python "$(pv)" --no-dev --group test --group e2e'
displayName: 'Sync E2E environment'
env:
UV_CACHE_DIR: $(Pipeline.Workspace)/.uv-cache
Expand Down
12 changes: 9 additions & 3 deletions vsts/python-nightly.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,14 @@ stages:
versionSpec: $(pv)
architecture: 'x64'
addToPath: true

- script: 'python -m pip install uv'
displayName: 'Install uv'

# Resolve upgrades before Cache@2 hashes uv.lock so its save key stays stable.
- script: 'uv lock --upgrade --python "$(pv)" --no-cache'
displayName: 'Resolve latest dependencies'

# Cache downloads without reusing the job environment.
- task: Cache@2
displayName: 'Cache uv'
Expand All @@ -174,10 +182,8 @@ stages:
"uv" | "$(Agent.OS)" | "$(pv)"
"uv" | "$(Agent.OS)"
path: $(Pipeline.Workspace)/.uv-cache
- script: 'python -m pip install uv'
displayName: 'Install uv'

- script: 'uv sync --upgrade --python "$(pv)" --no-dev --group test --group e2e'
- script: 'uv sync --locked --python "$(pv)" --no-dev --group test --group e2e'
displayName: 'Sync E2E environment'
env:
UV_CACHE_DIR: $(Pipeline.Workspace)/.uv-cache
Expand Down