Skip to content

feat(sdk): offline W&B export migration — ExportDirSource + from_wandb_export.py (GLA-844)#112

Closed
jqueguiner wants to merge 1 commit into
mainfrom
principal/gla-844-wandb-export
Closed

feat(sdk): offline W&B export migration — ExportDirSource + from_wandb_export.py (GLA-844)#112
jqueguiner wants to merge 1 commit into
mainfrom
principal/gla-844-wandb-export

Conversation

@jqueguiner

Copy link
Copy Markdown
Owner

Summary

  • sdk/openrunner/migrate.py — refactored into WandbRunSource protocol with LiveAPISource (preserves existing behaviour) and ExportDirSource (new offline path). Adds migrate_from_wandb_export() public entry-point.
  • sdk/openrunner/cli.py — adds --from-wandb-export <path> flag to openrunner migrate.
  • examples/migrate-from-wandb/from_wandb_export.py — standalone CLI wrapper; thin argparse shim over migrate_from_wandb_export. Fixes the missing source file (only __pycache__/from_wandb_export.cpython-312.pyc existed on main).
  • examples/migrate-from-wandb/README.md — usage guide, prerequisites, export layout, and import asset table.
  • sdk/tests/test_migrate.py — unit tests for ExportDirSource + migrate_from_wandb_export with the wandb-export-mini fixture set.
  • sdk/tests/fixtures/wandb-export-mini/ — test fixtures (two run dirs with config, metrics, artifacts, summary).

Supersedes #111 (which added only the example file without the required migrate_from_wandb_export SDK entry-point, making the script non-functional at runtime).

Closes GLA-844.

Test plan

  • python examples/migrate-from-wandb/from_wandb_export.py --help shows usage
  • python examples/migrate-from-wandb/from_wandb_export.py /nonexistent --dry-run exits with code 2 and error on stderr
  • pytest sdk/tests/test_migrate.py passes
  • CI green

🤖 Generated with Claude Code

…b_export.py (GLA-844)

- sdk/openrunner/migrate.py: refactor into WandbRunSource protocol with
  LiveAPISource (preserves existing behaviour) and ExportDirSource (new).
  ExportDirSource walks .tar.gz / .tgz / directory, parses config.yaml/json,
  metrics.jsonl/.parquet, summary.json, artifacts/, media/.
  Adds migrate_from_wandb_export() public entry-point.
  Shared _import_records pipeline handles idempotent re-import (update
  instead of duplicate on same display_name).
- sdk/openrunner/cli.py: adds --from-wandb-export <path> flag to
  openrunner migrate command.
- examples/migrate-from-wandb/from_wandb_export.py: standalone CLI wrapper
  for the offline import path — thin argparse shim over migrate_from_wandb_export.
- examples/migrate-from-wandb/README.md: usage guide, prerequisites, export
  layout, and what-gets-imported table.
- sdk/tests/test_migrate.py: unit tests for ExportDirSource and
  migrate_from_wandb_export with the wandb-export-mini fixture set.

Closes GLA-844.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
@jqueguiner

Copy link
Copy Markdown
Owner Author

MergeEngineer cycle check — GLA-849

CI status:

  • ✅ SDK Tests, Frontend Type Check, Docker Build, Docs — green
  • ✅ Artifact Round-Trip Smoke, docker compose + SDK round-trip — green
  • ⏳ Backend Tests — in progress (run tests with coverage step running)

Hold: reviewDecision = REVIEW_REQUIRED — no approvals yet. Per auto-merge contract, this PR needs APPROVED before it can merge.

Branch principal/gla-844-wandb-export indicates PE authored this work. Request: please approve on GitHub so I can merge once Backend Tests pass.

@jqueguiner
jqueguiner enabled auto-merge (squash) May 8, 2026 20:22
@jqueguiner

Copy link
Copy Markdown
Owner Author

Closing — and already landed on main via commit 9b152b7 (feat(sdk): W&B offline export migration — GLA-834/GLA-610). All GLA-826 acceptance criteria met. PR #112 is superseded.

@jqueguiner jqueguiner closed this May 8, 2026
auto-merge was automatically disabled May 8, 2026 20:40

Pull request was closed

@jqueguiner

Copy link
Copy Markdown
Owner Author

MergeEngineer: rebased onto main at 9b152b7 — resolved trivial conflict in sdk/openrunner/migrate.py (tarfile compat shim, took main's version). CI re-running. Will merge once CI green + @jqueguiner approves (PR requires REVIEW_REQUIRED → APPROVED; author cannot self-approve).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant