* Update codegen instruction
* Regenerate api
* [UI] scheduled workflow catchup option
* Show catchup in recurring run details page
* Add help button to introduce swf catchup=false
* Update snapshots and fix tests
* [UI] deep links to pipeline details page from start page
* Fix
* Update GettingStarted.tsx
* Update GettingStarted.tsx
* Update GettingStarted.tsx
* Adjust format to improve readability
* Use react-testing-library for getting started page tests
* Add error case unit tests
* Frontend import sample config from jsonn and presubmit test to verify configs are synced
* Update presubmit test error message
* Changed to sync only sample_config.json name to frontend
* Improve error message
* Fix tests
* Basic prototype
* Get kfpPodName from RunDetails page
* disable tfma visualization
* Refactor more stuff
* Remove MLMD protos
* Adapt to kubeflow/frontend PR #29
* Don't throw errors if artifacts and contexts are not in MLMD
* Revert unnecessary changes
* Update package.json to include the latest kubeflow/frontend commit
* Restore changes to package.json and package-lock.json
* Address comments
* Use new TS syntax for concatenating lists, as per @Bobgy's suggestion
* Use @Bobgy's suggestion to re-throw exceptions with error messages
* Catch all exceptions and return an empty list for them.
* npm run format
* use === instead of ==
* Apply suggestions from code review
* Fix @kubeflow/frontend by using a forked fix
* Fix unit test failure
* Fixed error handling and code clean up
* Restructure output artifact loader to change detailed implementation as local functions instead of public static methods.
Co-authored-by: Yuan (Bob) Gong <gongyuan94@gmail.com>
* [WIP] UI updated for daignose_me and FAQ Page
* Added message to banner directly and update test
* mintor changes to remove extra space
* changed Details button to match refresh
* Fixing formatting error
* Removing redundant CSS for troubleshooting link
* Implement getting started page.
* Add feature flag to only show getting started page on hosted pipelines
* Add tests
* Fix format
* Implement requested layout in getting started page
* Minor adjust layout
* Fix tests
* Fix snapshots
* Update page title
* 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
* Add editor for json parameters in NewRun page
* Remove special formatting on start
When starting the pipeline remove special formatting used to display the json in the editor
Small code rework
* Add EnhancedTextField sub component
* Update tests and fix formatting
* Fix loss of focus and nits
* Add test for submitting a run with json parameters
* Test cleanup
* Support select tensorflow image for tensorboard
* modify test for tensorflow version select
* delete not available image entry
* Support tensorflow image selection to run tensorboard
* format code with prettier
* use HasPrefix instead of regexp
* delete
* modified tensorboard test
* delete tensorboard
* modify typo
* test tensorboard
* tensorboard test
* fuck
* fuck2
* modify test
* modify typo in tensorboard hint
* npm run format
* modify tensorboard snapshot
* compatible with previous kfp version. Allow vacant tensorflowImage field.
* add 2 tests for dialog
* modify default tensorflow image to 1.13.2
* merge get version and get tensorboard; let --bind_all support tensorboard3.x
* modify reconciler.go
* reconciler rollback
* modify corresponding test for --bind_all
* modify requested chances 12/23
* formControl sorted alphabetically
* select sorted alphabetically
* modify details from PR request 12/24
* moidfy format
* modify details 12/23
* modify snapshot
* retest
* retest
* FE changes for version ui
* sort methods; remove console
* format
* remove obsolete snapshots
* cosmetic change: simplify href link construction
* fix the clone run behavior when version present
* format
* run-integration-test
* frontend-integration-test: try to simulate uploading file
* fix frontend-integration-test
* address comments
* address comments and add one more unit test
* Frontend - Add support for Minio artifact URIs
* Fixed style
* Removed unused variable
* Old Node does not support named capture groups in regexes
* Made the URL relative
* Refactor Router to add failing test for inconsistent page title bug
* Separate toolbar state between page instances
* Revert unneeded change
* Rename to better reflect functionality
* Fix lint errors, disable lint for test files
* Add external links that make some content easier to discover
* Use appropriate icons for each external link
* Update snapshots
* Fix lint errors
* Add documentation link for compile pipeline in upload pipeline dialog
* Update snapshots
* Reformat files I will touch first
* Refactor CustomTable: extract selection section components
* Fix CustomTable layout issues for all combinations of expand button, radio button and disable selection options
* Fix snapshot tests
* Fix lint warnings
* [Frontend] Make links in pipeline description clickable
* Improve, only use word break for links
* Prevent event bubbling
* Change the implementation to allow markdown rendering of pipeline description. Use inline format when in pipeline list page, and normal format in detail page.
* fix semicolon
* Adjust pipeline sample wording, use markdown link
* Refactor markdown viewer test to snapshot real html content
* Use markdown-to-jsx instead of markdown-it because it is compatible, but smaller
* Updated link to corresponding README files
* Update package and package lock
* Adjust link styling:
1. Use our theme color
2. Hide underline initially and show it on hover
demo: https://drive.google.com/file/d/1TVXJovghgUOTSQIO8vBkqo6LVOEhAC6H/view
* Update snapshot
* Install and configure prettier to be consistent with existing code style
* Integrate with prettier + update frontend/README with things people should know about it
* Update README, add printWidth=100 option
* Added component to render link to artifact. Updated workflow parser to extract artifacts. Update view to render artifacts.
* revert package-lock.jsons
* minor styling fixes
* Added WorkflowParser tests for getNodeInputOutputArtifacts
* fix typo
* Add test for DetailsTable.valueComponent
* Fix types for values passed into DetailsTable
* fix minor style errors
* Fix LogViewer logs cannot be selected when scrolling.
* LogViewer only follows new log when user scrolled to bottom of logs
* Fix compile issues
* Improve performance when log size is huge
* Fix snapshot tests: upgraded enzyme to 3.10.0 to work with React.memo; Changed snapshots to mount + getDOMNode to be invariant to internal refactoring
* Fix type checking failure
* Utils to convert metadata api from callback paradigm to promise paradigm
* Show input and output in execution details page
* Change execution detail page input/output table styling
* Make artifact names in execution detail page a deep link
* Change deep link to artifact ID instead
* Fix absolute import
* Fix lint errors
* Working, though the request seems malformed
* Working with grpc-web. trying to push to cluster
* WIP
* With great hax come great success
* Begin moving some metadata UI pages to KFP
* Artifact list and details pages work! A lot of clean up is needed. Look for console.log and TODO
* Clean up
* Fixes filtering of artifact list
* More cleanup
* Revert ui deployment
* Updates tests
* Update envoy deployment
* EOD Push
Most work on feature is completed. Currently attempting to fix bug where UI does not properly render visualizations for selected component.
* Fixed bug where switching selected node would not update visualizations in artifacts tab
* Remove debugging code
* Updated RunDetails.test.tsx.snap
* Addressed PR comments
* Improved error message readability
* Added support for custom visualizations to the VisualizationCreator component
* Add support for enabling/disabling custom visualizations
* Added mock-backend support for new api endpoint
* Changed allowCustomVisualization to be a prop
* Added custom visualization type
* Added support for custom visualizations to the VisualizationCreator component
* Re-generated API
* Updated VisualizationCreator.test.tsx.snap
* Updated VisualizationCreator.test.tsx tohave new and more specific tests
* Added tests to ensure Editor component is visible when specifying visualization type
* Updated test to properly validate provided source is rendered
* Added unit test to ensure that an argument placeholder is provided for every visualization type
* Fixed linting error
* Simplified canGenerate logic
* Added table and tfdv visualization
Also fixed issue surrounding ApiVisualizationType enum
* Fixed table visualization
* Removed byte limit
* Fixed issue where headers would not properly be applied
* Fixed issue where table would not be intractable
* Updated table visualizaiton to reflect changes made to dependency injection
* Fixed bug where checking if headers is provided to table visualizations could crash visualization
* Added TFMA visualization
* Updated new visualizations to match syntax of #1878
* Updated test snapshots to account for TFMA visualization
* Small if statement synax changes
* Add flake8 noqa comments to table.py and tfma.py
* Replaced CodeMirror with Editor in PipelineDetails.tsx
* Replaced codemirror in DetailsTable with react-ace
* Removed codemirror
* Updated unit tests for Editor.tsx to test placeholder and value in simplified manner
* Updated DetailsTable.test.tsx.snap to reflect changes made in DetailsTable.tsx
* Updated PipelineDetails test snapshot
* Changed width of Editor in DetailsTable to be 100% instead of 300px
* Revert "Updated unit tests for Editor.tsx to test placeholder and value in simplified manner"
This reverts commit 40103f2e01.
* Created extensible code editor based on react-ace
* Installed dependencies
* Updated unit tests for Editor.tsx to test placeholder and value in simplified manner
* Updated Editor unit tests to use snapshot testing where applicable
* Fixes cloning of recurring runs
Simplifies NewRun a little
Creates NewRunParameters component
* Fixes all NewRun tests
* All tests pass
* Adds tests for NewRunParameters
* Adds clone test to RecurringRunDetails
* Clean up
* InputPath -> Source
* Changed name of data path/pattern variable from InputPath to Source to improve consistency with current visualization method
* Updated unit tests to reflect name change
* Regenerated swagger definitions to reflect name change
* Readded test that was removed with previous commit
It was deleted by mistake
* Added VisualizationCreator as new PlotType
* Addressed PR feedback made by @rileyjbauer
* Fix issue where updated props would not be accessible to VisualizationCreator
View [comment](https://github.com/kubeflow/pipelines/pull/1677#discussion_r307490016) for more details
* Updated select and input fields to become disabled when isBusy is true
* Updated test names to be more descriptive
* Fixed bug where enum key was used rather than enum value when determining ApiVisualizationType
* Add a helper function to create a tensorboard crd.
* Add a helper function to create a tensorboard crd.
* Remove optional parameter "pretty".
* Reuse constants when possible
* createTensorboardInstance, getTensorboardInstance, waitForTensorboardInstance
* Revise getTensorboardHandler and createTensorboardHandler to use getTensorboardInstance
and createTensorboardInstance
* remove trailing spaces
* Fix comment
* Ajust paremeter values.
* stringfy error objects; change 'plural' to 'viewer'
* Change 'plural' to 'viewers'
* Use derived namespace (instead of hardcoded kubeflow) to create viewer
CRD. Derive viewer CRD's name from log dir.
* Adjust local dns
* Add GCP credentials for viewer resource.
* Address pr reviews
* auto formatting
* 1. viewer controller propagates credentials when creating pod
2. set credentials in viewer crd
* Put credentials info in PodTemplateSpec
* Cleanup not-to-be-included changes.
* Empty line
* Formatting
* Remove a duplicate include
* add crypto-js dependency
* Add path prefix
* Update k8s-helper.ts
* (1) set viewer service port be 6006 (2) trailing / is required for tensorboard path
* Remove url address encoding
* Remove an accidental change
* Formatting
* Add comment and TODO
* Change 6006 back to 80
* Remove deprecated functions from k8shelper. Revise some comments.
* Use getNamespacedCustomobject
* Try to fix unit test for the tensorboard.tsx change
* Re-arrange func order
* Polish comments
* When there is no existing tensorboard, GetNamespacedCustomObject's promise is reject, and in case of that reject, use ''
* SDK: Create BaseOp class
* BaseOp class is the base class for any Argo Template type
* ContainerOp derives from BaseOp
* Rename dependent_names to deps
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* SDK: In preparation for the new feature ResourceOps (#801)
* Add cops attributes to Pipeline. This is a dict having all the
ContainerOps of the pipeline.
* Set some processing in _op_to_template as ContainerOp specific
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* SDK: Simplify the consumption of Volumes by ContainerOps
Add `pvolumes` argument and attribute to ContainerOp. It is a dict
having mount paths as keys and V1Volumes as values. These are added to
the pipeline and mounted by the container of the ContainerOp.
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* SDK: Add ResourceOp
* ResourceOp is the SDK's equivalent for Argo's resource template
* Add rops attribute to Pipeline: Dictionary containing ResourceOps
* Extend _op_to_template to produce the template for ResourceOps
* Use processed_op instead of op everywhere in _op_to_template()
* Add samples/resourceop/resourceop_basic.py
* Add tests/dsl/resource_op_tests.py
* Extend tests/compiler/compiler_tests.py
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* SDK: Simplify the creation of PersistentVolumeClaim instances
* Add VolumeOp: A specified ResourceOp for PVC creation
* Add samples/resourceops/volumeop_basic.py
* Add tests/dsl/volume_op_tests.py
* Extend tests/compiler/compiler_tests.py
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* SDK: Emit a V1Volume as `.volume` from dsl.VolumeOp
* Extend VolumeOp so it outputs a `.volume` attribute ready to be
consumed by the `pvolumes` argument to ContainerOp's constructor
* Update samples/resourceop/volumeop_basic.py
* Extend tests/dsl/volume_op_tests.py
* Update tests/compiler/compiler_tests.py
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* SDK: Add PipelineVolume
* PipelineVolume inherits from V1Volume and it comes with its own set of
KFP-specific dependencies. It is aligned with how PipelineParam
instances are used. I.e. consuming a PipelineVolume leads to implicit
dependencies without the user having to call the `.after()` method on
a ContainerOp.
* PipelineVolume comes with its own `.after()` method, which can be used
to append extra dependencies to the instance.
* Extend ContainerOp to handle PipelineVolume deps
* Set `.volume` attribute of VolumeOp to be a PipelineVolume instead
* Add samples/resourceops/volumeop_{parallel,dag,sequential}.py
* Fix tests/dsl/volume_op_tests.py
* Add tests/dsl/pipeline_volume_tests.py
* Extend tests/compiler/compiler_tests.py
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* SDK: Simplify the creation of VolumeSnapshot instances
* VolumeSnapshotOp: A specified ResourceOp for VolumeSnapshot creation
* Add samples/resourceops/volume_snapshotop_{sequential,rokurl}.py
* Add tests/dsl/volume_snapshotop_tests.py
* Extend tests/compiler/compiler_tests.py
NOTE: VolumeSnapshots is an Alpha feature at the time of this commit.
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* Extend UI for the ResourceOp and Volumes feature of the Compiler
* Add VolumeMounts tab/entry (Run/Pipeline view)
* Add Manifest tab/entry (Run/Pipeline view)
* Add & Extend tests
* Update tests snapshot files
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* Cleaning up the diff (before moving things back)
* Renamed op.deps back to op.dependent_names
* Moved Container, Sidecar and BaseOp classed back to _container_op.py
This way the diff is much smaller and more understandable. We can always split or refactor the file later. Refactorings should not be mixed with genuine changes.
* Adds 'Create run' button to experiment list / all runs page
* Add run without experiment and filtering to FE integration test
* Update snapshots
* Add refresh and wait to integration test
* Adjust
* Adjust
* Don't exit integration test early if npm test fails
* PR comments
* TEMP - take screenshots to debug integration test
* Store screenshots
* Remove create run without experiment integration test for now as it fails due to the default experiment being deleted at the end of the API initialization and integration test suites
* Update swagger definitions
* WIP - Adds ability to terminate runs to frontend
* Update snapshots
* Adds tests. Also changes warning message color to orange rather than red
* Remove refresh button from run details page
* Elaborate terminate confirmation message
* Minor fixes
* Remove references to refresh button from integration tests
* Adds support for rendering recursive pipelines to the StaticGraphParser
* Adds a recursive pipeline to the list of mocks
* Fixes recursive graph rendering under new styling
* Adds additional comments and surfaces pipeline yaml error to users
* Remove unnecessary comment
* Updates styling for the graphs
* Break all diagonal edges into vertical and horizontal components
* Checkpointing. A lot of minor adjustments being made
* Change graph rendering to only use horizontal and vertical lines for
edges. Previously diagonal edges are converted into two vertical edges
and one horiztonal
* Small cleanup
* Hovering over node now highlights all incoming and outgoing edges, as does selecting a node
More fixes, stop stacking starting edges
* Clean up
* Remove edge starting circle code
* Returns the DAG to using arbitrary angles rather than right angles
* Adds small vertical segment to end of all edges
* Significant clean up and updating tests
* A little more clean up and adding tests for the new Status util function
* One more test for Status
* Increase node font weight
* PR comments
* A little more cleanup in Graph
* Updates Typescript to 3.3.1 and updates code around CustomTable customRenderer to make better use of FunctionComponent typings
* Remove extra afterEach from merge
* Further merge clean-up
* update ts definitions from swagger
* fix case
* Update run.go
* storageState -> storage_state
* storageState -> storage_state
* wip mock backend changes, need to use filter for storagestate
* filter_by -> filter, remove options handlers
* show only available runs, mock middleware support
* add basic Archive page with runs
* fixes, added button to sidenav
* fix generated ts filter-related changes in definitions
* storageState -> storage_state
* fix after rebase
* cleanup
* use notequals archived instead of equals available
* augment runs request filter with storage state
* fix tests
* treat available runs as unarchived
* refactor buttons to separate file
* experiment details buttons, remove test console log
* cleanup
* added actions to Buttons module
* tests
* cleanup
* add messages to dialogs
* add archive/restore button to run details
* archive breadcrumb
* mention run will not stop when archiving
* pr comments
* Improve runtime graph starting and running experience
- displays spinner when no nodes have started
- adds info message to bottom of runtime graph indicating that it is
runtime and that the graph will update over time
- adds placeholder nodes at end of graph to indicate future progress
* Update test snapshots
* Fix bug with virtual nodes, and add transition to graph
* PR comments, updating tests
* Moves IconWithTooltip to atoms/ and adds tests
* Update copyright and add further tests
* Auto-refreshes the run details page
Auto-refresh is paused when the window loses focus (blur) and is resumed
upon re-focus. Autorefresh is permanently terminated if the run has
stopped due to failure, error, being skipped, or succeeding.
* Adds tests for Status.hasCompleted
* Clean up and PR comments
* Makes KF logo a button and adds tooltips to sidenav when collapsed
* Adds build version, date, and link to side nav. Still needs tests
* Cleanup and PR comments
* Adds simple filtering by 'name' to CustomTable
* Update tests
* Adds new tests for filtering the CustomTable
* Filter using 'is_substring' rather than 'equal'
* Clean up and some comments
* Add snapshot to handleFilterChange test
* Updates material-ui and react npm libraries
* Update failing BusyButton snapshots
* Reduce material-ui version to 3.7.1 to avoid known issue with 3.8.1
* pure components, no animations for roc curve thumbnails
* fix snapshot tests
* set state once when loading parameters
* manually check plot card pros/state to make it pure
* Adds an experiment selector to the new run page. Needs tests
* Adds an experiment selector to the new run page. Needs tests
* Adds tests for the new experiment selector in NewRun
* Rename PipelineSelector -> ResourceSelector since it handles experiments as well
* Makes ResourceSelector more abstract. No longer coupled to experiments and pipelines
* PR comments, NewRun clean-up
* Moves resourceToRow function into ResourceSelector
* Fix e2e test
* show 'View pipeline' button when no pipeline id is present
* wip pipeline details to show pipeline from run spec
* pipeline details working, still need to show breadcrumbs
* breadcrumbs fixed, needs testing
* fix tests
* add more tests to cover changes
* make sure only pipeline is defined
* pr comments
This can happen whenever a user opens up a page from a URL.
A common way to hit this is to create a run from a notebook and click the link to see it in the UI.
* Adds tests for the NewRun page
* Add more tests
* Adds many more tests, cleans-up PipelineSelector a bit, and fixes bug in Utils.ts
* Update create run button ID in e2e test
* Test clean-up and PR comments
* Account for padding in metric progress fill
* small mock backend fix
* move to css classes, add color
* changes to breadcrumb style
* increase width of summary card
* tests
* merge tests
* initial, moving paging into custom table, tests disabled
* wip, rest of custom table occurrences, run list broken
* fix run list and others
* tests
* cleanup
* pr comments