feat: change auto_fetch default to true
Auto-fetching missing dependencies from upstream is the more useful default behavior. Users who need fast, network-free resolution can explicitly set auto_fetch=false. Artifacts are content-addressed by SHA256, so reproducibility concerns don't apply - the same version always produces the same artifact.
This commit is contained in:
@@ -7032,8 +7032,8 @@ async def resolve_artifact_dependencies(
|
||||
ref: str,
|
||||
request: Request,
|
||||
auto_fetch: bool = Query(
|
||||
False,
|
||||
description="Fetch missing dependencies from upstream registries (e.g., PyPI)"
|
||||
True,
|
||||
description="Fetch missing dependencies from upstream registries (e.g., PyPI). Set to false for fast, network-free resolution."
|
||||
),
|
||||
db: Session = Depends(get_db),
|
||||
storage: S3Storage = Depends(get_storage),
|
||||
@@ -7046,9 +7046,9 @@ async def resolve_artifact_dependencies(
|
||||
(dependencies before dependents). Includes download URLs for each artifact.
|
||||
|
||||
**Parameters:**
|
||||
- **auto_fetch**: When true, attempts to fetch missing dependencies from
|
||||
upstream registries (PyPI for _pypi project packages). Default is false
|
||||
for fast, network-free resolution.
|
||||
- **auto_fetch**: When true (default), attempts to fetch missing dependencies from
|
||||
upstream registries (PyPI for _pypi project packages). Set to false for
|
||||
fast, network-free resolution when all dependencies are already cached.
|
||||
|
||||
**Response Fields:**
|
||||
- **resolved**: All artifacts in dependency order with download URLs
|
||||
|
||||
@@ -1073,17 +1073,17 @@ class TestAutoFetchDependencies:
|
||||
"""Tests for auto-fetch functionality in dependency resolution.
|
||||
|
||||
These tests verify:
|
||||
- Resolution with auto_fetch=false (default) behavior is unchanged
|
||||
- Resolution with auto_fetch=true attempts to fetch missing dependencies
|
||||
- Resolution with auto_fetch=true (default) fetches missing dependencies from upstream
|
||||
- Resolution with auto_fetch=false skips network calls for fast resolution
|
||||
- Proper handling of missing/non-existent packages
|
||||
- Response schema includes fetched artifacts list
|
||||
"""
|
||||
|
||||
@pytest.mark.integration
|
||||
def test_resolve_auto_fetch_false_is_default(
|
||||
def test_resolve_auto_fetch_true_is_default(
|
||||
self, integration_client, test_package, unique_test_id
|
||||
):
|
||||
"""Test that auto_fetch=false is the default and behaves as before."""
|
||||
"""Test that auto_fetch=true is the default (no fetch needed when all deps cached)."""
|
||||
project_name, package_name = test_package
|
||||
|
||||
# Upload a simple artifact without dependencies
|
||||
|
||||
Reference in New Issue
Block a user