Behavior By Package
RubyGems
Commands
| Command | CVS Supported | Expected Behavior When Latest Is Blocked |
|---|---|---|
gem install <name> | Yes | Installs the latest compliant version |
gem install <name> -v '<version>' | No | Returns "Could not find a valid gem" if the latest is requested; returns 403 for a blocked older version |
gem update <name> | Partial | See Gem Client Behavior |
bundle install | Yes | Installs the latest compliant version |
bundle update | Yes | Updates to the next compliant version |
Supported Package Managers
- Bundler
- Gem
Gem Client Behavior
gem update uses:
latest_specs.*.gz(not filtered by CVS) for version discoverycompact index /info/<gem>(filtered by CVS) for installation
This mismatch can surface blocked versions during resolution.
Example:
- Installed:
pry 0.15.2 - Latest:
0.16.0(blocked)
Running gem update returns: Unable to resolve dependency: user requested 'pry (= 0.16.0)
Although the client detects the latest version, installation is blocked.
The error message is misleading, but the enforcement is correct.
NuGet
Commands
| Command | CVS Supported | Expected Behavior When Latest Is Blocked |
|---|---|---|
dotnet add package <name> | Yes | Installs the latest compliant version |
dotnet add package <name> --version <ver> | Yes | NU1102 if latest is blocked; 403 if older version is blocked |
dotnet restore | Yes | Installs the next compliant version |
dotnet restore (with lock file) | No | Downloads pinned versions; blocked versions return 403 |
dotnet package search | No | Shows latest version; install fails with 403 if blocked |
NuGet Client Behavior
--version 13.0.4is interpreted as>= 13.0.4, not an exact version- Exact version requires
[13.0.4]
dotnet package search may display versions that cannot be installed because search results are not filtered by CVS.
Conda
Commands
| Command | CVS Supported | Expected Behavior When Latest Is Immature |
|---|---|---|
conda install <name> | Yes | Installs the next compliant version |
conda install <name>=<ver> | No | Fails with 403 if that version is immature |
conda search <name> | Yes | Shows only compliant versions |
conda install (environment file) | Yes | Resolves to compliant versions |
Policy Constraint
Only Immaturity policies are supported for Conda CVS.
Go
Commands
| Command | CVS Supported | Expected Behavior When Latest Is Blocked |
|---|---|---|
go get <module> | Yes | Resolves to the latest compliant version |
go get <module>@<version> | Yes | "package not found" if latest requested version is blocked; 403 if all versions are blocked |
go get -u <module> | Yes | Updates to next compliant version if applicable; no upgrade if current is compliant and latest is blocked |
go mod download | No | Downloads pinned version; 403 if pinned version is blocked |
PyPI
Supported Package Managers
- Pip
- Uv
Pip
| Command | CVS Supported | Expected Behavior When Latest Is Blocked |
|---|---|---|
pip install <name> | Yes | Installs the next compliant version silently |
pip install <name>==<version> | Yes | Fails if that version is blocked; 403 if all versions are blocked |
pip install <name>>=<version> | Yes | Resolves to next compliant version in range |
pip install <name>~=<version> | Yes | Resolves to next compliant version in compatible range |
pip install <name> --no-deps | Partial | Only the main package is resolved by CVS; transitive dependencies may return 403 |
pip index versions <package> | Yes | Excludes blocked versions |
pip install --upgrade <name> | Yes | Upgrades to next compliant version; no change if current is compliant |
Uv
| Command | CVS Supported | Expected Behavior When Latest Is Blocked |
|---|---|---|
uv add <name> | Yes | Adds next compliant version to lock file |
uv add <name>>=<version> | Yes | Resolves to next compliant version in range |
uv add <name>~=<version> | Yes | Resolves to next compliant version in compatible range |
uv sync | Partial | Uses pinned versions; resolves via CVS only if not locked; blocked versions return 403 |
uv sync --upgrade | Yes | Re-resolves and updates to compliant versions |
uv pip install <name> | Yes | Behaves like pip; resolves to compliant version |
uv run --with <pkg> | Yes | Installs next compliant version |
uv lock --upgrade | Yes | Resolves to next compliant version within constraints |
Updated about 8 hours ago
