Repository navigation
Conversation
`air get -o json` exposed the run's MLflow run only through mlflow_url, so handing an AIR run to an MLflow-based next step (e.g. a registration job that takes the MLflow run ID) meant parsing the URL. Add mlflow_experiment_id and mlflow_run_id next to it; they are null exactly when mlflow_url is. Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Contributor
|
Commit: Regression test reportSelected 3 changed tests (limit=20, 0 not selected) 3 tests: regression=3 unreleased=0 coverage=0 failing=0
TestAccept/air/get: branch ✅ | main (20fef7c) ❌ | latest (v1.26.0) ❌main (20fef7c): latest (v1.26.0): TestAccept/air/get-ai-runtime: branch ✅ | main (20fef7c) ❌ | latest (v1.26.0) ❌main (20fef7c): latest (v1.26.0): TestAccept/air/get-pending: branch ✅ | main (20fef7c) ❌ | latest (v1.26.0) ❌main (20fef7c): latest (v1.26.0): |
Collaborator
✅ Integration test reportCommit: 5a5e05d
Top 3 slowest tests (at least 2 minutes):
|
Document the earlier-retry fallback and both meanings of null on mlflow_experiment_id/mlflow_run_id, and add the earlier-retry clause to the changelog. Rework TestGetRunJSONMLflowIDs on getRunServer: tell null from a missing key, assert mlflow_url, and cover an earlier retry, a get-output error and a running run. Co-authored-by: Isaac <no-reply@databricks.com>
- Add a case whose output has an experiment ID but no run ID; all three MLflow fields must be null. - Say the IDs are null whenever no MLflow run is found, not only in two listed cases. Co-authored-by: Isaac <no-reply@databricks.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
air get -o jsongainsmlflow_experiment_idandmlflow_run_id, next tomlflow_urland filled from the same identifiers, so they are null exactly whenmlflow_urlis. The names matchAiRuntimeTaskOutput.mlflow_experiment_id/mlflow_run_id.air list, and URL formats are unchanged.Why
Handing an AIR run to the next step needs its MLflow run ID. For example, the AI Runtime cookbook's serving recipe registers a model from the training run with
source_training_run_id=<MLflow run ID>. Today the JSON exposes the ID only insidemlflow_url, and the text view's MLflow Run row shows the run name, so scripts and agents parse URLs. With this change,databricks air get <JOB_RUN_ID> -o json | jq -er .data.mlflow_run_idprints the ID, and exits non-zero when it is null. Internal ticket: CNXT-2640.Tests
TestGetRunJSONMLflowIDsruns on the package'sgetRunServerhelper and decodes the JSON into a map, so a null field and a missing key are told apart, and it asserts the exactmlflow_url. Cases: a finished run, a running run, IDs from an earlier retry, no MLflow run, an output with only an experiment ID, and a failing get-output call.omitempty, skip the earlier-retry path, ignore a running run, or accept an output with only one of the two IDs.TestBuildGetDataTerminationReasonJSONandTestBuildGetDataWaitingForComputeStatus, and theair/get,air/get-ai-runtimeandair/get-pendingacceptance goldens.go test ./cmd/air/...andgo test ./acceptance -run 'TestAccept/air/'pass;./task lint-q,./task fmt-qand./task check-changelogare clean. Tests ran withDATABRICKS_WORKSPACE_IDunset:TestLogsCommandRepeatsRunLinkAfterStreamingalso fails onmainwhen that variable is set.This pull request and its description were written by Isaac.