Files
servo/mach.ps1
Jonathan Schwender 82df609833 mach: Use uv to manage the virtual environment (#41861)
Instead of attempting to manage the virtual environment ourselves, use
`uv` to manage the installation of dependencies.
Since we still have dependencies coming from upstream wpt, we use
`[tool.setuptool]` in our pyproject.toml to ensure that `uv` dynamically
installs our dependencies according to the requirements.txt files.

Additionally, this PR also reverts `--no-project` usage. `--no-project`
was added as a temporary workaround in
https://github.com/servo/servo/pull/37741.
It's not 100% clear to me what exactly the issue was, but
[apparently](https://github.com/servo/servo/pull/37741#pullrequestreview-2985666234)
the issue caused the build to break.
Removing the arg seems to work fine, except that we get a warning about
a missing `requiress-python` value in `pyproject.toml`.
Apparently it is good practice to specify the requirement as `>=` in th
pyroject, and lock the exact version via `uv pin` (which writes to
`.python_version`, where we already pin 3.11.


Testing: Should be covered by existing tests, which compile code on all
platforms.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-01-22 05:51:44 +00:00

26 lines
785 B
PowerShell

$workdir = $PSScriptRoot
$arguments = $args
$expanded = $false
if ($arguments.Count -gt 0) {
$expandedArgs = @()
foreach ($arg in $arguments) {
if ($arg -match '[\*\?\[\]]') {
$expandedItems = Get-Item -Path $arg -ErrorAction SilentlyContinue
if ($expandedItems) {
$expandedArgs += $expandedItems | Select-Object -ExpandProperty FullName
$expanded = $true
} else {
# Expansion fails. Use original arg.
$expandedArgs += $arg
}
} else {
$expandedArgs += $arg
}
}
$arguments = $expandedArgs
if ($expanded){
Write-Host "Expanded arguments: $arguments"
}
}
uv run python (Join-Path $workdir "mach") @arguments