Skip to content

chore: CI proxy for #3785 - #3790

Open
akoumpa wants to merge 1 commit into
mainfrom
pull-request/3785
Open

chore: CI proxy for #3785#3790
akoumpa wants to merge 1 commit into
mainfrom
pull-request/3785

Conversation

@akoumpa

@akoumpa akoumpa commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

CI-only proxy PR. Do not merge / do not review. Points at the exact head commit of #3785 (8ae1f40792e5b1c39d9a1e83a6c10ddce341a351) so CI runs under the internal-contributor queue; results post back to #3785 via the shared SHA. Source of truth: #3785. Close once CI completes.

@akoumpa
akoumpa requested review from a team as code owners September 2, 2026 15:58
@copy-pr-bot

copy-pr-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@akoumpa

akoumpa commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test 5c63374

mlflow and wandb are experiment-tracking backends that are opt-in via YAML
config. Listing them as hard core dependencies causes two problems:

1. mlflow (full) conflicts with mlflow-skinny — mutually exclusive PyPI
   packages. Environments shipping mlflow-skinny (sagemaker-mlflow,
   kedro-mlflow, managed ML platforms) hard-block on install.
2. Both packages pull in heavy transitive deps unconditionally even for users
   who never configure a logger.

Changes:
- pyproject.toml: remove wandb and mlflow from dependencies[]; add:
    [mlflow]      = mlflow-skinny  (no conflict, full tracking API)
    [mlflow-full] = mlflow          (UI, SQL backend, pyarrow, etc.)
    [wandb]       = wandb>=0.28.0
    [tracking]    = nemo-automodel[mlflow] + nemo-automodel[wandb]
  Wire [tracking] into [all]. Fix composite extras to use canonical
  distribution name nemo-automodel (hyphens, not nemo_automodel underscores).

- loggers.py / wandb_utils.py: use safe_import() / safe_import_from() from
  nemo_automodel.shared.import_utils per CLAUDE.md coding-style rule.
  Remove inline try/except ImportError guards.

- 8 recipe files (llm/train_ft, llm/kd, llm/train_seq_cls, dllm/train_ft,
  diffusion/train, vlm/finetune, vlm/kd, multimodal/finetune): replace
  top-level import wandb / import mlflow with module-level safe_import calls
  (returns _HAS_WANDB/_HAS_MLFLOW boolean + module-or-placeholder).
  Prefix every wandb.run is not None guard with _HAS_WANDB and, and every
  mlflow.active_run() is not None with _HAS_MLFLOW and.

- tests/unit_tests/loggers/test_optional_logger_extras.py [NEW]: 13 unit
  tests covering instantiation without extras, UnavailableError on build()
  with absent extras, pyproject.toml extras schema, and recipe module
  _HAS_* sentinel presence.

- ruff format + ruff check --fix applied to all changed files.

Closes #3783

Precedent: sagemaker-mlflow PR #22 applied the identical fix.

Signed-off-by: piyushumate <piyushumate@users.noreply.github.com>
@akoumpa

akoumpa commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test 8ae1f40

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.

2 participants