Skip to content

Rename SampleSheetCombinedVCFFile β†’ JointCalledVCF (deprecation)Β #16

@davmlaw

Description

@davmlaw

πŸ€– Written by Claude

Server-side rename context: SACGF/variantgrid_sapath#343.

On the server, SampleSheetCombinedVCFFile has been renamed to JointCalledVCF (the old name described the file it sits next to, not what the model actually is β€” a joint-called multi-sample VCF). The server keeps the legacy URL/router endpoints (view_combo_vcf_file, api/v1/sample_sheet_combined_vcf_file/) as aliases pointing at the new viewset, so nothing currently breaks on the wire.

The client repo should follow suit and start the deprecation process so callers (notably the TAU pipeline) can migrate at their own pace.

Proposed changes

  1. Add new canonical names

    • Dataclass: JointCalledVCF (mirrors the server model name).
    • Client method: create_joint_called_vcf(...) that POSTs to seqauto/api/v1/joint_called_vcf/.
  2. Keep old names as deprecated aliases

    • SampleSheetCombinedVCFFile = JointCalledVCF (or a subclass) β€” emit DeprecationWarning on instantiation.
    • create_sample_sheet_combined_vcf_file(...) β€” thin wrapper that emits DeprecationWarning (via warnings.warn(..., DeprecationWarning, stacklevel=2)) then delegates to create_joint_called_vcf.
    • This means any pipeline still importing the old names keeps working but starts surfacing warnings in their logs.
  3. Do not bump the API URL version

    • The wire format is unchanged; v1β†’v2 should be reserved for genuine breaking changes (e.g. if we later add explicit subset membership tracking, change error shapes, etc.).
    • Keep using /api/v1/joint_called_vcf/ as the canonical path; the server keeps /api/v1/sample_sheet_combined_vcf_file/ as a route alias.
  4. Ship a client version bump

    • Notify TAU once the deprecated-alias version is released.
    • After a couple of client release cycles with the warning in place, remove the aliases.

Why deprecate rather than hard-rename in the client

We control both ends, so a hard rename would technically work β€” but a soft deprecation costs us almost nothing (a few lines of alias + warning) and removes any coordination burden with TAU. The server alias means there's no hard deadline; the client deprecation is what actually nudges callers to migrate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions