Skip to content

PackageType enum migration + chain/full fallback mechanism #524

@JusterZhu

Description

@JusterZhu

Motivation

PackageType.Chain = 0 collides with int default (0), making uninitialized fields silently behave as Chain. Need to migrate Chain→1, Full→2 (unchanged), add Unspecified=0 as safe default.

Changes

  • PackageType.cs: Chain = 0 \→ Chain = 1, add Unspecified = 0
  • DownloadPlanBuilder: Remove CVP matching logic; chain total >= 80% full → use full directly; attach FallbackFull* info for chain→full retry
  • DownloadAsset: Add PackageType, FallbackFullName/Url/Hash, FallbackFulls
  • AbstractStrategy: On chain failure, retry with matching fallback full
  • ClientStrategy: Propagate fallback info; download fallback fulls alongside chain
  • CompressMiddleware/Platform Strategies: Full packages skip PatchMiddleware, decompress directly to install path
  • Cleanup: Remove all CVP concepts (matchingCvp, IsCrossVersion, FromVersion, SourceArchiveHash, TargetArchiveHash)

Verification

  • All projects build successfully
  • Chain → full fallback triggers when chain package fails
  • Size-based switch triggers when chain total >= 80% of full

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions