v2 compiler has data passing limitations
See original GitHub issueEnvironment
kfp 1.6.2 kfp-pipeline-spec 0.1.7 kfp-server-api 1.5.0
Steps to reproduce
Use the upload_to_explicit_url
component in a pipeline (picking a version that includes the latest v2 updates):
upload_op = load_component_from_url("https://raw.githubusercontent.com/kubeflow/pipelines/961b17fa6844e1d79e5d3686bb557d830d7b5a95/components/google-cloud/storage/upload_to_explicit_uri/component.yaml")
upload_task = upload_op(eval_task.output, results) # pylint: disable=not-callable
As the Data
input is untyped, it is treated as an artifact, and compiling produces this error:
TypeError: Passing PipelineParam "run-predictions-Results" with type "String" (as "Parameter") to component input "Data" with type "None" (as "Artifact") is incompatible. Please fix the type of the component input.
The fix appears straightforward, to include the String
type on the Data
input as well as the GCS path
input and output.
Expected result
Pipeline compiles successfully.
Materials and Reference
https://raw.githubusercontent.com/kubeflow/pipelines/961b17fa6844e1d79e5d3686bb557d830d7b5a95/components/google-cloud/storage/upload_to_explicit_uri/component.yaml
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:1
- Comments:11 (6 by maintainers)
Top Results From Across the Web
Chapter 3: System Limits and Programming Restrictions
The COBOL Compiler and the intermediate code that it produces are environment independent. The limits associated with the Compiler are environment independent ...
Read more >Single pass, Two pass, and Multi pass Compilers
Single pass compiler is one that processes the input exactly once, so going directly from lexical analysis to code generator, and then going ......
Read more >Optimize Options (Using the GNU Compiler Collection (GCC))
If loop unrolling is active, two passes are performed and the second is scheduled ... By default, GCC limits the size of functions...
Read more >CUDA Compiler Driver NVCC - NVIDIA Documentation Center
A value of 0 is allowed, and indicates that no limit should be enforced. This value is also passed to the host compiler...
Read more >One‐pass compilation at its limits — A modula‐2 compiler for ...
Abstract We present conceptual and implementation aspects of a one-pass Modula-2 compiler that was developed by Xerox PARC's future Dragon workstation.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Hi @jackwhelpton, as we spoke last time on this issue, I believe your use case is unblocked by adding/updating the type. We will have a new doc with the detailed migration guide, and we will also update our components and samples to be compatible with v2 (https://github.com/kubeflow/pipelines/issues/5801).
If there are no other blockers, do you think we can close this issue? Thanks!
This won’t work. The v2 compiler imposes severe limitations on the
String
type. The pipeline will still not compile and also you’ll lose the ability to upload any binary data like models.A fix for this v2 compiler issue was proposed and implemented in https://github.com/kubeflow/pipelines/pull/5478 Please take a look.