Skip to Content
DocsTaskpack 版本管理

Taskpack Versioning Architecture

Overview

While Flows are simple configurations that don’t need versioning, Taskpacks are repositories of executable code that require proper version management for:

  • Algorithm improvements
  • Bug fixes
  • Security patches
  • Compatibility updates
  • Performance optimizations

Version Management System

1. Semantic Versioning

Taskpacks follow semantic versioning (MAJOR.MINOR.PATCH):

# manifest.yaml metadata: name: fedavg-resnet50-pathology version: 2.1.3 # MAJOR: Breaking changes in API or data format # MINOR: New features, backwards compatible # PATCH: Bug fixes and minor improvements

2. Version Registry

# Taskpack Registry Structure packages: fedavg-resnet50-pathology: latest: 2.1.3 versions: 2.1.3: released: "2024-03-22" url: "s3://packages/fedavg-resnet50-pathology-2.1.3.tar.gz" changelog: "Fixed memory leak in aggregation step" compatibility: ">=1.0.0" 2.1.2: released: "2024-03-15" url: "s3://packages/fedavg-resnet50-pathology-2.1.2.tar.gz" changelog: "Improved GPU utilization" 2.0.0: released: "2024-02-01" url: "s3://packages/fedavg-resnet50-pathology-2.0.0.tar.gz" changelog: "Breaking: New data format, 30% faster training"

3. Version Selection in Flows

When creating a Flow, users can:

  • Use latest stable version (default)
  • Pin to specific version for reproducibility
  • Use version ranges for flexibility
interface FlowConfig { // ... other config taskPackage: { name: string; version?: string; // Optional: defaults to "latest" // Examples: // version: "2.1.3" // Exact version // version: "^2.1.0" // Compatible with 2.1.x // version: ">=2.0.0" // Minimum version }; }

UI Implementation

Taskpack Selection with Versions

// In Mission Package Selector interface MissionPackage { id: string; name: string; currentVersion: string; availableVersions: Version[]; // ... } interface Version { version: string; released: Date; changelog: string; stability: "stable" | "beta" | "experimental"; downloads: number; }

Version Display in UI

  1. Package Selection Screen:

    • Show current/recommended version prominently
    • Provide dropdown for version selection
    • Display changelog for each version
    • Warn about breaking changes
  2. Flow History:

    • Track which package version was used
    • Allow re-running with same version
    • Suggest upgrades when available

Benefits

  1. Reproducibility: Research results can be reproduced with exact package versions
  2. Stability: Production flows can pin versions to avoid unexpected changes
  3. Innovation: New algorithms can be tested without affecting existing flows
  4. Compliance: Version history for regulatory requirements
  5. Rollback: Easy rollback if issues are discovered

Example Use Cases

Research Scenario

# Researcher testing new algorithm flow: name: "Test New Biomarker Algorithm v3" taskPackage: name: "biomarker-discovery-spatial" version: "3.0.0-beta.1" # Testing beta version

Production Scenario

# Hospital running validated workflow flow: name: "Daily Cancer Screening" taskPackage: name: "cancer-detection-ensemble" version: "1.5.8" # Pinned to validated version

Pharma Compliance

# Pharma company with regulatory requirements flow: name: "FDA Submission Analysis" taskPackage: name: "toxicity-prediction" version: "2.3.1" # FDA-validated version locked: true # Prevent accidental updates

Migration Strategy

When breaking changes occur:

  1. Deprecation Notice: Mark old versions as deprecated
  2. Migration Guide: Provide clear upgrade instructions
  3. Compatibility Mode: Support old data formats temporarily
  4. Gradual Rollout: Allow testing before forcing upgrades

Security Considerations

  1. Package Signing: All versions cryptographically signed
  2. Vulnerability Scanning: Automated security checks
  3. License Compliance: Track dependencies and licenses
  4. Audit Trail: Complete history of version usage

Conclusion

Taskpack versioning is essential for a professional platform where:

  • Code evolves and improves
  • Results must be reproducible
  • Compliance is required
  • Multiple teams collaborate

This system provides the flexibility of continuous improvement while maintaining the stability required for production use.

最后更新