* add compiler test pipeline with multiple exit handlers
* remove blocker of multiple exit handlers
* move exit handler builder logic to pipeline_spec_builder
* build all exit handlers per pipeline
* add compiler test with IR inspection
* prevent usage of cross-pipeline after
* test cross-pipeline after is prevented
* update existing task dependency logic and tests
* add v2 sample test
* remove cross-pipeline .after
* prevent cross-dag data dependency for dsl features
* add compiler test pipeline with nested exit handlers
* add support for nested exit handlers
* clean up pipeline with nested exit handlers
* remove sample with multiple exit handlers
* remove compiler test with nested exit handlers
* add compilation guard against nested exit handlers in subdag
* update release notes
* add module-level docstrings
* update compiler docstrings
* update registry module docstrings
* add BaseComponent and children to public api, but discourage use
* update artifact docstrings and type annotations
* update dsl docstrings
* update client docstrings
* clean up kfp.__init__
* add dsl placeholder docstrings
* many more docstring updates
* document type aliases in dsl module
* remove unused imports
* use google as isort profile
* sort imports
* format with yapf
* clean end of file new line, trailing whitespace, double quoted strings
* move placeholders to placeholders module; implement if-present and concat placeholders
* update module name and method names throughout codebase
* rename placeholder abc
* add back compat support for CEL-style concat string
* add copyright
* add docstrings; clean up
* remove duplicate code
* clean up relevant files
* use context manager for temporary directory cleanup
* add component compilation methods
* add component compilation tests
* add more complete pipeline_func argument handling
* use context manager for handling type check mode
* improve checks on inputs for component compilation
* correct pipeline name for primitive component IR
* simplify component compilation logic
* extract compiler methods
* move compiler helpers to helpers file to avoid circular imports
* remove underscore prefix from functions in hidden module
* move helpers tests to helper_test module
* put to_pipeline_spec on ComponentSpec
* fix inputs reference
* use same naming regex for pipelines and components
* permit compilation of all BaseComponent subclasses
* clean up docstrings
* merge compiler.helpers into pipeline_spec_builder
* modify docstrings; refactor
* modify docstring