Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MLMD][Lineage] Integrate Lineage View into KFP #2918

Merged
merged 31 commits into from
Jan 31, 2020

Conversation

kwasi
Copy link
Contributor

@kwasi kwasi commented Jan 27, 2020

/assign @kwasi
/cc @avdaredevil
/area front-end

Changes

  • Adds LineageView from kubeflow/frontend to ArtifactDetails
  • Changes ArtifactDetails and ExecutionDetails to use the common MLMD gRPC client and utils from kubeflow/frontend
  • Fixes [MLMD] Integrate LineageView into KFP #2907

Validation

Deployment: https://2de286866441b3ac-dot-us-west1.notebooks.googleusercontent.com/


This change is Reviewable

@k8s-ci-robot
Copy link
Contributor

@kwasi: The label(s) area/metadata cannot be applied, because the repository doesn't have them

In response to this:

/assign @kwasi
/cc @avdaredevil
/area front-end
/area metadata

Changes

  • Adds LineageView from kubeflow/frontend to ArtifactDetails
  • Changes ArtifactDetails and ExecutionDetails to use the common MLMD gRPC client and utils from kubeflow/frontend
  • Fixes [MLMD] Integrate LineageView into KFP #2907

Validation

Deployment: https://2de286866441b3ac-dot-us-west1.notebooks.googleusercontent.com/

Hold

/hold

  • Need to investigate pipeline_versions issue
  • Waiting for dependent changes to be merged in to kubeflow/frontend

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot
Copy link
Contributor

k8s-ci-robot commented Jan 27, 2020

@kwasi: The label(s) area/metadata cannot be applied, because the repository doesn't have them

In response to this:

/assign @kwasi
/cc @avdaredevil
/area front-end
/area metadata

Changes

  • Adds LineageView from kubeflow/frontend to ArtifactDetails
  • Changes ArtifactDetails and ExecutionDetails to use the common MLMD gRPC client and utils from kubeflow/frontend
  • Fixes [MLMD] Integrate LineageView into KFP #2907

Validation

Deployment: https://2de286866441b3ac-dot-us-west1.notebooks.googleusercontent.com/

Hold

/hold

  • Need to investigate pipeline_versions issue
  • Waiting for dependent changes to be merged in to kubeflow/frontend

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Copy link
Contributor

@avdaredevil avdaredevil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, few comments.

.filter(k => k[0] !== '__ALL_META__')
.map(k => (
{propertyMap.getEntryList()
// TODO: __ALL_META__ is something of a hack, is redundant, and can be ignored
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// TODO: __ALL_META__ is something of a hack, is redundant, and can be ignored
// TODO: __ALL_META__ is something of a hack, is redundant, and can be ignored

{propertyMap.getEntryList()
// TODO: __ALL_META__ is something of a hack, is redundant, and can be ignored
.filter((k:any) => k[0] !== '__ALL_META__')
// @ts-ignore
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something more specific perhaps?

import { CustomTableRow, css } from '../components/CustomTableRow';
import { ServiceError } from '../generated/src/apis/metadata/metadata_store_service_pb_service';
// import { ServiceError } from '../generated/src/apis/metadata/metadata_store_service_pb_service';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you want to remove this line?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

frontend/src/lib/Utils.tsx Outdated Show resolved Hide resolved
}
// export function serviceErrorToString(error: ServiceError): string {
// return `Error: ${error.message}. Code: ${error.code}`;
// }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

frontend/src/pages/ArtifactDetails.tsx Show resolved Hide resolved
frontend/src/pages/ArtifactDetails.tsx Outdated Show resolved Hide resolved
@@ -260,6 +264,7 @@ class SectionIO extends Component<
}
const data: ArtifactInfo = {
id,
// @ts-ignore
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More specific?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

frontend/src/pages/ExecutionList.tsx Outdated Show resolved Hide resolved
This PR has no changes to the Status page, but the snapshot fails
locally for me unless I update the snapshot.

Reverting to the initial state to try to fix build failures.
@kwasi
Copy link
Contributor Author

kwasi commented Jan 28, 2020

I updated the KFP cluster to the latest version of the API server image as recommended by @jingzhang36 and confirmed that Pipeline creation is fixed on the server. The latest version of this code is pushed to the shared cluster.

@k8s-ci-robot
Copy link
Contributor

k8s-ci-robot commented Jan 28, 2020

@kwasi: The label(s) area/metadata cannot be applied, because the repository doesn't have them

In response to this:

/assign @kwasi
/cc @avdaredevil
/area front-end
/area metadata

Changes

  • Adds LineageView from kubeflow/frontend to ArtifactDetails
  • Changes ArtifactDetails and ExecutionDetails to use the common MLMD gRPC client and utils from kubeflow/frontend
  • Fixes [MLMD] Integrate LineageView into KFP #2907

Validation

Deployment: https://2de286866441b3ac-dot-us-west1.notebooks.googleusercontent.com/

Hold

/hold

  • Waiting for dependent changes to be merged in to kubeflow/frontend

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@kwasi kwasi marked this pull request as ready for review January 28, 2020 07:46
@jessiezcc jessiezcc requested a review from Bobgy January 28, 2020 18:15
Copy link
Contributor Author

@kwasi kwasi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Bobgy Thanks for the detailed review! The fixes to the error handling and ArtifactList loading will make a big difference.

Copy link
Contributor

@Bobgy Bobgy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kwasi Thank you! The changes look awesome.

Some last minor comments, you can ask someone else from the team to lgtm when you feel ready with this.
/approve

frontend/src/pages/ArtifactDetails.tsx Show resolved Hide resolved
frontend/src/pages/ArtifactList.tsx Show resolved Hide resolved
frontend/src/pages/ExecutionDetails.tsx Show resolved Hide resolved
frontend/src/pages/ExecutionDetails.tsx Show resolved Hide resolved
frontend/src/pages/ExecutionList.tsx Show resolved Hide resolved
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: avdaredevil, Bobgy

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kwasi
Copy link
Contributor Author

kwasi commented Jan 30, 2020

/test kubeflow-pipeline-sample-test

@kwasi
Copy link
Contributor Author

kwasi commented Jan 30, 2020

PR is ready for final approvals and merging. Built a new image and deployed to https://2de286866441b3ac-dot-us-west1.notebooks.googleusercontent.com/

@avdaredevil
Copy link
Contributor

/lgtm

@avdaredevil
Copy link
Contributor

/hold cancel

@kwasi
Copy link
Contributor Author

kwasi commented Jan 30, 2020

/test kubeflow-pipeline-sample-test

@kwasi
Copy link
Contributor Author

kwasi commented Jan 30, 2020

/retest

@k8s-ci-robot k8s-ci-robot removed the lgtm label Jan 30, 2020
@kwasi
Copy link
Contributor Author

kwasi commented Jan 30, 2020

/retest

1 similar comment
@kwasi
Copy link
Contributor Author

kwasi commented Jan 30, 2020

/retest

@avdaredevil
Copy link
Contributor

/lgtm

@kwasi
Copy link
Contributor Author

kwasi commented Jan 30, 2020

Tests are now getting past CreateContainer before they fail so I'll give it some time then retest again.

@kwasi
Copy link
Contributor Author

kwasi commented Jan 31, 2020

/retest

1 similar comment
@Bobgy
Copy link
Contributor

Bobgy commented Jan 31, 2020

/retest

@k8s-ci-robot k8s-ci-robot merged commit 0ad6a55 into kubeflow:master Jan 31, 2020
@Bobgy
Copy link
Contributor

Bobgy commented Jan 31, 2020

@kwasi I'm not sure how much efforts it would be -- can we move mlmd client related imports to a subpath of '@kubeflow/frontend'. Maybe '@kubeflow/frontend/metadata/client'.

  1. there may be name collisions with other imports from '@kubeflow/frontend'
  2. it's easier to find all client related imports

We can do this in a separate PR if you think the proposal is reasonable.

@kwasi
Copy link
Contributor Author

kwasi commented Jan 31, 2020

@Bobgy We can definitely do that. I made an issue to track it with a link to your comment.

Jeffwan pushed a commit to Jeffwan/pipelines that referenced this pull request Dec 9, 2020
* Minimal change to verify that the new image will work on Marketplace

* Very rough working copy of LineageView in KFP

* Update kubeflow-frontend dependency

* Fix lint errors

* Update to latest version of kubeflow-frontend

* Update licenses to make gen_licenses script pass in Docker build
* Revert docker build dev change

* Bump kubeflow/frontend hash to latest version with pre-built library

* Remove debug string

* Replace metadata APIs with versions from kubeflow/frontend

* Use latest dev version of kubeflow/frontend package

* Pass route builder to ArtifactDetails for building details pages routes

* Review ResourcesInfo.tsx

* Review changes part 2

* Revert change to Status snapshot

This PR has no changes to the Status page, but the snapshot fails
locally for me unless I update the snapshot.

Reverting to the initial state to try to fix build failures.

* Revert Status snapshot to master

* Remove unneeded @ts-ignore

* Bump to latest mainline kubeflow/frontend hash

* Respond to comments PR comments

* Scope kubeflow/frontend to @kubeflow/frontend in package.json
* Use explicit tab name ordering
* Make ArtifactDetails class functions members to avoid binding

* Add missing await when loading ArtifactList

Fixes issue where loading spinner hides immediately before artifact list
loads.

* Fix casing on global constants in ArtifactDetails

* Improve readability on ExecutionList.tsx

* Remove `()!` pattern caused by not having @types/google-protobuf

* Remove a stray @ts-ignore

* Remove side effects from getRowsFrom{Artifacts,Executions}

* Add error handling back to Artifact and Execution pages

* Fix error message handling on getArtifacts()

* Fix ArtifactList response

* Check for potentially undefined `code` in serviceErrorToString

* Restore missing error handlers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[MLMD] Integrate LineageView into KFP
5 participants