Skip to content

Replace run-tag champion tracking with Asset API aliases #6

@emattia

Description

@emattia

Problem

PromoteModelFlow and the dashboard use Metaflow run tags (run.add_tag("champion")) for champion tracking. ob-project-utils now supports Asset API aliases via promote_assets(with_aliases=True) and CI-driven promotion.

These are two incompatible systems for the same purpose. The dashboard queries run tags; the CI promote module writes asset aliases. Using both results in split champion state.

What needs to change

  1. Replace src/registry.py champion functions (get_champion_run_id, set_champion_run) with Asset API alias operations
  2. Simplify or remove PromoteModelFlow — make promotion a CI module (promote.yml) triggered on PR merge, not a manual flow
  3. Update dashboard to query asset aliases instead of run tags
  4. Add [promotion] aliases = ["champion", "production"] to obproject.toml
  5. Add teardown + promote CI modules to deploy.yml

Context

  • ob-project-asset-promotion repo shows the correct CI-driven pattern
  • model-promotion-example repo shows the correct flow-level pattern
  • This repo predates both and uses the legacy run-tag approach
  • Dashboard currently shows "No Champion Model" because nobody ran PromoteModelFlow, even though 20 model versions exist

Related

  • EvaluateDetectorFlow None/v_None bug fixed on feat/uplift (merge to main)
  • Dashboard Jinja2 crash fixed on feat/uplift
  • SnapshotStore branch scoping fixed on feat/uplift

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