#384·gs-quant

[BUG] uv sync fails outside the GS network: internal index pinned as default in pyproject.toml

Author: rpatil294Created Sep 5, 2026Updated Sep 5, 2026

Describe the bug uv sync fails on a clean clone of master for anyone outside the Goldman Sachs network, because pyproject.toml pins an internal-only package index as uv's default index.

To Reproduce Clean clone, off the GS network, uv 0.9.2:

$ uv sync
  × Failed to build `gs-quant @ file:///.../gs-quant`
  ├─▶ Failed to resolve requirements from `build-system.requires`
  ├─▶ No solution found when resolving: `setuptools>=61.0`, `versioneer[toml]==0.28`
  ├─▶ Request failed after 3 retries
  ├─▶ Failed to fetch: `https://pypi.aws.site.gs.com/repository/pypi-group/simple/versioneer/`
  ├─▶ error sending request for url (...)
  ├─▶ client error (Connect)
  ├─▶ dns error
  ╰─▶ failed to lookup address information: nodename nor servname provided, or not known

Blocker — internal index is uv's default index

pyproject.toml lines 220-226:

toml
[[tool.uv.index]]
name = "aws"
url = "https://pypi.aws.site.gs.com/repository/pypi-group/simple"
default = true

[tool.uv.pip]
index-url = "https://pypi.aws.site.gs.com/repository/pypi-group/simple"

default = true 

replaces PyPI rather than supplementing it, so every resolution goes to a host that doesn't resolve publicly. It fails at build-system.requires because uv resolves the build backend before reading the dependency list.

This does not affect pip install gs-quant, only source clones using uv are affected.

It also appears not to affect

toml
 CI: .gitlab-ci.yml installs via pip3 install -i $GS_PYPI_URL --trusted-host $GS_PYPI_HOST .[test] 

and never invokes uv, and .github/workflows/python-publish.yml uses pip install build twine against public PyPI. The usual way to keep an internal mirror without shipping it to external users is the UV_DEFAULT_INDEX / UV_INDEX_URL environment variables or a machine-level ~/.config/uv/uv.toml.

Environment

  • uv 0.9.2, macOS (arm64), Python 3.14.0
  • master @ a1427df (release 2.1.12)