kpops 9.2.0.dev0__tar.gz → 9.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.bumpversion.cfg +1 -1
- kpops-9.3.0/.github/pyright-matcher.json +18 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/ci.yaml +17 -18
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/publish.yaml +3 -3
- kpops-9.3.0/.github/workflows/python-uv-release.yaml +127 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/release.yaml +3 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/update-gh-pages.yaml +1 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.gitignore +1 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/PKG-INFO +1 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/action.yaml +1 -2
- {kpops-9.2.0.dev0 → kpops-9.3.0}/config.yaml +1 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/developer/auto-generation.md +1 -1
- kpops-9.3.0/docs/docs/developer/contributing.md +20 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/schema/config.json +13 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/schema/defaults.json +9 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/schema/pipeline.json +6 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/changelog.md +41 -3
- kpops-9.3.0/dprint.jsonc +30 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/__init__.py +1 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_docs/gen_docs_components.py +2 -2
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/cli/utils.py +9 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/model.py +1 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/config/__init__.py +6 -2
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/const/__init__.py +1 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/strimzi/kafka_topic.py +6 -6
- kpops-9.3.0/lefthook.yaml +53 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/pyproject.toml +5 -2
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kubernetes/model.py +2 -2
- kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/broker_response.json +53 -0
- kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/cluster-info.json +38 -0
- kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/get_default_topic_response.json +21 -0
- kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/get_topic_response.json +21 -0
- kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/topic_config_response.json +63 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/topic/test_utils.py +2 -2
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap/test_producer_app.py +18 -18
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap/test_streams_app.py +39 -39
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap/test_streams_bootstrap.py +11 -11
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap_v2/test_producer_app.py +18 -18
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap_v2/test_streams_app.py +39 -39
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_base_defaults_component.py +2 -2
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_helm_app.py +1 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_kafka_sink_connector.py +5 -2
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/strimzi/test_kafka_topic.py +27 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/custom-config/config.yaml +1 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/kafka-connect-sink-config/config.yaml +2 -2
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/manifest-pipeline/pipeline.yaml +0 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/name_prefix_concatenation/pipeline.yaml +13 -13
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/parallel-pipeline/pipeline.yaml +0 -1
- kpops-9.3.0/tests/pipeline/resources/pipeline-folders/pipeline-3/pipeline.yaml +12 -0
- kpops-9.3.0/tests/pipeline/resources/pipeline-folders-with-symlinks/pipeline-1/pipeline.yaml +1 -0
- kpops-9.3.0/tests/pipeline/resources/pipeline-symlinked/pipeline.yaml +1 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-short-topics/defaults.yaml +0 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/simple-pipeline/defaults.yaml +0 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/simple-pipeline/pipeline.yaml +0 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/streams-bootstrap/pipeline.yaml +11 -9
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_streams_bootstrap/pipeline.yaml +8 -2
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_streams_bootstrap/manifest.yaml +7 -1
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_generate.py +42 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/uv.lock +12 -69
- kpops-9.2.0.dev0/.github/pyright-matcher.json +0 -18
- kpops-9.2.0.dev0/.pre-commit-config.yaml +0 -83
- kpops-9.2.0.dev0/cliff.toml +0 -72
- kpops-9.2.0.dev0/docs/docs/developer/contributing.md +0 -38
- kpops-9.2.0.dev0/dprint.json +0 -26
- kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/broker_response.json +0 -53
- kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/cluster-info.json +0 -38
- kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/get_default_topic_response.json +0 -21
- kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/get_topic_response.json +0 -21
- kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/topic_config_response.json +0 -63
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/actions/update-docs/action.yml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/_lint-gh-ci.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/add-issue-ci.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/.gitmodules +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/CHANGELOG.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/CODEOWNERS +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/CONTRIBUTING.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/LICENSE +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/README.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/README.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/assets/images/kpops-background.svg +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/developer/api.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/developer/getting-started.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/images/atm-fraud-pipeline_streams-explorer.png +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/images/word-count-pipeline_streams-explorer.png +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/index.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/overrides/home.html +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/architecture/components-hierarchy.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/editor_integration/settings.json +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/examples/defaults.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/examples/pipeline.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/dependencies/defaults_pipeline_component_dependencies.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/dependencies/kpops_structure.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/dependencies/pipeline_component_dependencies.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/helm-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kafka-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kafka-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kafka-sink-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kafka-source-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kubernetes-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/producer-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/streams-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/helm-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kafka-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kafka-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kafka-sink-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kafka-source-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kubernetes-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/pipeline.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/producer-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/config-kafka-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/from_-kafka-source-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/from_-producer-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/from_.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/namespace.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/offset_topic-kafka-source-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/prefix.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/repo_config-helm-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/repo_config-kafka-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/resetter_values.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/to.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-helm-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-kafka-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-kubernetes-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-producer-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-streams-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/version-kafka-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/version-kafka-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/version.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/streams-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-config/config.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-helm-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kafka-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kafka-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kafka-sink-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kafka-source-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kubernetes-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-producer-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-streams-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-helm-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kafka-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kafka-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kafka-sink-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kafka-source-connector.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kubernetes-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-producer-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-streams-app.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/setup/kafka.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/cli_env_vars.env +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/cli_env_vars.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/config_env_vars.env +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/config_env_vars.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/variable_substitution.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/stylesheets/extra.css +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/helm-app.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/kafka-connector.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/kafka-sink-connector.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/kafka-source-connector.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/kubernetes-app.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/overview.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/producer-app.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/streams-app.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/streams-bootstrap.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/config.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/defaults.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/operation-mode.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/variables/environment_variables.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/variables/substitution.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/examples/atm-fraud-pipeline.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/getting-started/quick-start.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/getting-started/setup.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/getting-started/teardown.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v1-v2.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v2-v3.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v3-v4.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v4-v5.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v5-v6.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v6-v7.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v7-v8.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v8-v9.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/references/ci-integration/github-actions.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/references/cli-commands.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/references/editor-integration.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/what-is-kpops.md +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/mkdocs.yml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_docs/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_docs/gen_docs_cli_usage.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_docs/gen_docs_env_vars.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_schema.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/justfile +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/api/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/api/logs.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/api/options.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/cli/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/cli/main.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/dry_run_handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/exception.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/helm.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/helm_diff.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/model.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/utils.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/connect_wrapper.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/exception.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/kafka_connect_handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/model.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/timeout.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kubernetes/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kubernetes/pvc_handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kubernetes/utils.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/schema_handler/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/schema_handler/schema_handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/schema_handler/schema_provider.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/exception.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/model.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/proxy_wrapper.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/utils.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/utils/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/utils/exception.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/base_defaults_component.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/cleaner.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/helm_app.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/kafka_app.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/kafka_connector.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/kubernetes_app.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/models/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/models/from_section.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/models/resource.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/models/to_section.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/pipeline_component.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/common/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/common/app_type.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/common/kubernetes_model.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/common/topic.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/base.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/producer/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/producer/model.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/producer/producer_app.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/streams/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/streams/model.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/streams/streams_app.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/base.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/producer/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/producer/model.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/producer/producer_app.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/streams/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/streams/model.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/streams/streams_app.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/const/file_type.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/core/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/core/exception.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/core/operation.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/core/registry.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/argo.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/kubernetes.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/strimzi/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/pipeline/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/cli_commands.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/colorify.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/dataclasses.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/dict_differ.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/dict_ops.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/docstring.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/environment.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/gen_schema.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/json.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/pydantic.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/types.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/yaml.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/api/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/api/test_handlers.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/api/test_registry.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/resources/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/resources/config.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/resources/custom_module/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_exclude_optional/config.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_exclude_optional/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_exclude_optional/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_include_optional/config.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_include_optional/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_include_optional/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_schema_generation/test_gen_pipeline_schema_only_custom_module/schema.json +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/test_init.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/test_schema_generation.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/resources/another-test.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/resources/defaults_development.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/resources/erroneous-file.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/resources/test.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/test_pipeline_name.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/test_yaml_loading.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/test_dry_run_handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/test_helm_diff.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/test_helm_wrapper.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/test_utils.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kafka_connect/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kafka_connect/resources/connect_validation_response.json +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kafka_connect/test_connect_handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kafka_connect/test_connect_wrapper.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kubernetes/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/resources/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/resources/defaults_development.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/schema_handler/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/schema_handler/resources/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/schema_handler/resources/module.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/schema_handler/test_schema_handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/topic/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/topic/test_proxy_wrapper.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/topic/test_topic_handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/conftest.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/defaults_development.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/defaults_development.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/defaults_production.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/pipeline-deep/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/pipeline-deep/defaults_production.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/pipeline-deep/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/pipeline-deep/pipeline_development.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap_v2/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap_v2/test_streams_bootstrap.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_kafka_connector.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_kafka_source_connector.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_kubernetes_app.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_topic.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/conftest.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/kubernetes/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/kubernetes/test_pvc_handler.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/strimzi/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/test_argo_enricher.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/test_kubernetes_model.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/component-type-substitution/infinite_pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/component-type-substitution/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/custom-config/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/custom-config/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/dotenv/.env +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/dotenv/config.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/dotenv/custom.env +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/env-specific-config-only/config_production.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/first-pipeline/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/kafka-connect-sink/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/kafka-connect-sink-config/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/kafka-connect-sink-config/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/manifest-pipeline/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/multi-config/config.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/multi-config/config_development.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/multi-config/config_production.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/no-input-topic-pipeline/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/no-topics-defaults/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/no-topics-defaults/defaults_development.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/no-user-defined-components/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/parallel-pipeline/config.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/parallel-pipeline/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-component-should-have-prefix/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-component-should-have-prefix/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-duplicate-step-names/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-folders/pipeline-1/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-folders/pipeline-2/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0/tests/pipeline/resources/pipeline-folders → kpops-9.3.0/tests/pipeline/resources/pipeline-folders-with-symlinks}/pipeline-3/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-env-defaults/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-env-defaults/defaults_development.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-env-defaults/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-envs/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-envs/pipeline_development.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-illegal-kubernetes-name/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-inflate/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-loop/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-loop/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-paths/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-short-topics/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/same-topic-and-component-name/config.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/same-topic-and-component-name/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/same-topic-and-component-name/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/simple-pipeline/config.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/read-from-component/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/resetter_values/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/resetter_values/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/resetter_values/pipeline_connector_only.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/simple-pipeline/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/streams-bootstrap/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/temp-trim-release-name/defaults.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/temp-trim-release-name/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_example/test_generate/atm-fraud/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_example/test_generate/word-count/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_default_config/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_inflate_pipeline/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_kafka_connect_sink_weave_from_topics/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_load_pipeline/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_load_pipeline_with_folder_path/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_load_pipeline_with_multiple_pipeline_paths/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_model_serialization/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_no_input_topic/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_no_user_defined_components/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_pipelines_with_envs/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_prefix_pipeline_component/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_read_from_component/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_substitute_in_component/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_with_custom_config_with_absolute_defaults_path/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_with_custom_config_with_relative_defaults_path/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_with_env_defaults/pipeline.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_deploy_argo_mode/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_deploy_manifest_mode/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_clean_argo_mode/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_clean_manifest_mode/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_clean_python_api/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_command/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_deploy_python_api/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_destroy_argo_mode/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_destroy_manifest_mode/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_destroy_python_api/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_reset_argo_mode/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_reset_manifest_mode/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_reset_python_api/manifest.yaml +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_clean.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_components/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_components/components.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_components_without_schema_handler/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_components_without_schema_handler/components.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_deploy.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_destroy.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_example.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_manifest.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_pipeline.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_reset.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/test_kpops_config.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/resources/__init__.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/resources/nested_base_settings.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_dict_ops.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_diff.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_doc_gen.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_environment.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_pydantic.py +0 -0
- {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_yaml.py +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"problemMatcher": [
|
|
3
|
+
{
|
|
4
|
+
"owner": "pyright",
|
|
5
|
+
"pattern": [
|
|
6
|
+
{
|
|
7
|
+
"regexp": "^\\s\\s(\\S*\\.py):(\\d+):(\\d+)\\s-\\s(error|warning|information):\\s([\\s\\S]+?)\\s\\(([\\s\\S]+?)(?=(?:\\)|\\d+ errors,))",
|
|
8
|
+
"file": 1,
|
|
9
|
+
"line": 2,
|
|
10
|
+
"column": 3,
|
|
11
|
+
"severity": 4,
|
|
12
|
+
"message": 5,
|
|
13
|
+
"code": 6
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -23,18 +23,11 @@ jobs:
|
|
|
23
23
|
matrix:
|
|
24
24
|
os:
|
|
25
25
|
- ubuntu-24.04
|
|
26
|
-
|
|
27
|
-
python-version: ["3.11", "3.12"]
|
|
28
|
-
is-draft-pr:
|
|
29
|
-
- ${{ github.event.pull_request.draft }}
|
|
26
|
+
python-version: ["3.11"]
|
|
30
27
|
include:
|
|
31
28
|
- python-version: "3.11"
|
|
32
29
|
os: ubuntu-24.04
|
|
33
30
|
format-for-github: true
|
|
34
|
-
exclude:
|
|
35
|
-
# skip Windows jobs on draft PRs because they are slow
|
|
36
|
-
- os: windows-2022
|
|
37
|
-
is-draft-pr: true
|
|
38
31
|
runs-on: ${{ matrix.os }}
|
|
39
32
|
|
|
40
33
|
steps:
|
|
@@ -51,7 +44,7 @@ jobs:
|
|
|
51
44
|
|
|
52
45
|
- name: Lint (ruff)
|
|
53
46
|
run: |
|
|
54
|
-
|
|
47
|
+
uv run --frozen ruff check . --config pyproject.toml --no-fix ${{ matrix.format-for-github && '--output-format=github' }}
|
|
55
48
|
|
|
56
49
|
- name: Typing (pyright)
|
|
57
50
|
run: |
|
|
@@ -61,7 +54,6 @@ jobs:
|
|
|
61
54
|
fi;
|
|
62
55
|
uv run --frozen pyright
|
|
63
56
|
|
|
64
|
-
|
|
65
57
|
format:
|
|
66
58
|
name: Format
|
|
67
59
|
runs-on: [ubuntu-24.04]
|
|
@@ -89,7 +81,7 @@ jobs:
|
|
|
89
81
|
- ubuntu-24.04
|
|
90
82
|
- windows-2022
|
|
91
83
|
python-version: ["3.11", "3.12"]
|
|
92
|
-
is-draft-pr:
|
|
84
|
+
is-draft-pr:
|
|
93
85
|
- ${{ github.event.pull_request.draft }}
|
|
94
86
|
exclude:
|
|
95
87
|
# skip Windows jobs on draft PRs because they are slow
|
|
@@ -125,25 +117,33 @@ jobs:
|
|
|
125
117
|
version: ${{ env.UV_VERSION }}
|
|
126
118
|
|
|
127
119
|
- name: Generate schema (kpops schema)
|
|
128
|
-
run:
|
|
120
|
+
run: |
|
|
121
|
+
uv run --frozen -m hooks.gen_schema
|
|
122
|
+
git diff --quiet HEAD -- docs/docs/schema
|
|
129
123
|
|
|
130
124
|
- name: Generate CLI Usage docs (typer-cli)
|
|
131
|
-
run: uv run --frozen
|
|
125
|
+
run: uv run --frozen
|
|
126
|
+
lefthook run pre-commit --commands kpops-docs-cli --force
|
|
132
127
|
|
|
133
128
|
- name: Generate Environment variable docs
|
|
134
|
-
run: uv run --frozen
|
|
129
|
+
run: uv run --frozen
|
|
130
|
+
lefthook run pre-commit --commands kpops-docs-env-vars --force
|
|
135
131
|
|
|
136
132
|
- name: Generate pipeline definitions
|
|
137
|
-
run: uv run --frozen
|
|
133
|
+
run: uv run --frozen
|
|
134
|
+
lefthook run pre-commit --commands kpops-docs-components --force
|
|
138
135
|
|
|
139
136
|
- name: Test docs build (mkdocs)
|
|
140
|
-
run: uv run --frozen --group=docs
|
|
137
|
+
run: uv run --frozen --group=docs
|
|
138
|
+
mkdocs build -f docs/mkdocs.yml
|
|
141
139
|
|
|
142
140
|
# TODO: extract into ci-templates
|
|
143
141
|
publish-snapshot-version:
|
|
144
142
|
name: Publish snapshot to TestPyPI
|
|
145
143
|
needs: [lint, format, test, docs]
|
|
146
144
|
runs-on: ubuntu-24.04
|
|
145
|
+
permissions:
|
|
146
|
+
id-token: write
|
|
147
147
|
steps:
|
|
148
148
|
- uses: actions/checkout@v4
|
|
149
149
|
|
|
@@ -168,7 +168,7 @@ jobs:
|
|
|
168
168
|
- name: Restore clean Git working directory
|
|
169
169
|
# clean Git working directory is needed for the next bumpversion call
|
|
170
170
|
# we only need the version result from the first `patch` bump which is stored as a step output
|
|
171
|
-
run: git restore .
|
|
171
|
+
run: git restore .
|
|
172
172
|
|
|
173
173
|
- name: Bump version snapshot time
|
|
174
174
|
uses: bakdata/ci-templates/actions/bump-version@1.50.4
|
|
@@ -183,7 +183,6 @@ jobs:
|
|
|
183
183
|
run: uv publish
|
|
184
184
|
env:
|
|
185
185
|
UV_PUBLISH_URL: https://test.pypi.org/legacy/
|
|
186
|
-
UV_PUBLISH_TOKEN: ${{ secrets.TEST_PYPI_TOKEN }}
|
|
187
186
|
|
|
188
187
|
publish-docs-from-main:
|
|
189
188
|
name: Publish docs (main)
|
|
@@ -2,12 +2,14 @@ name: Publish to PyPI
|
|
|
2
2
|
on:
|
|
3
3
|
push:
|
|
4
4
|
tags:
|
|
5
|
-
-
|
|
5
|
+
- "*"
|
|
6
6
|
|
|
7
7
|
jobs:
|
|
8
8
|
publish:
|
|
9
9
|
name: Publish to PyPI
|
|
10
10
|
runs-on: ubuntu-24.04
|
|
11
|
+
permissions:
|
|
12
|
+
id-token: write
|
|
11
13
|
steps:
|
|
12
14
|
- uses: actions/checkout@v4
|
|
13
15
|
|
|
@@ -22,5 +24,3 @@ jobs:
|
|
|
22
24
|
|
|
23
25
|
- name: Publish
|
|
24
26
|
run: uv publish
|
|
25
|
-
env:
|
|
26
|
-
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN }}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
name: Python uv release
|
|
2
|
+
# Reusable workflow for building and releasing Python uv packages
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
workflow_call:
|
|
6
|
+
inputs:
|
|
7
|
+
release-type:
|
|
8
|
+
description: "Scope of the release (major, minor or patch)."
|
|
9
|
+
required: true
|
|
10
|
+
type: string
|
|
11
|
+
uv-version:
|
|
12
|
+
description: "The uv version to be installed. (Default is 0.5.14)"
|
|
13
|
+
required: false
|
|
14
|
+
default: "0.5.14"
|
|
15
|
+
type: string
|
|
16
|
+
python-version:
|
|
17
|
+
description: "The Python version for setting up uv. (Default is 3.11)"
|
|
18
|
+
required: false
|
|
19
|
+
default: "3.11"
|
|
20
|
+
type: string
|
|
21
|
+
changelog:
|
|
22
|
+
description: "Create changelog for release."
|
|
23
|
+
required: false
|
|
24
|
+
default: true
|
|
25
|
+
type: boolean
|
|
26
|
+
changelog-file:
|
|
27
|
+
description: Path to the changelog file in the GitHub repository
|
|
28
|
+
required: false
|
|
29
|
+
default: "CHANGELOG.md"
|
|
30
|
+
type: string
|
|
31
|
+
changelog-config:
|
|
32
|
+
description: "Changelog config path."
|
|
33
|
+
required: false
|
|
34
|
+
default: ""
|
|
35
|
+
type: string
|
|
36
|
+
working-directory:
|
|
37
|
+
description: "Working directory containing `.bumpversion.cfg`. (Default is .)"
|
|
38
|
+
required: false
|
|
39
|
+
default: "."
|
|
40
|
+
type: string
|
|
41
|
+
|
|
42
|
+
secrets:
|
|
43
|
+
github-username:
|
|
44
|
+
description: "The GitHub username for committing the changes."
|
|
45
|
+
required: true
|
|
46
|
+
github-email:
|
|
47
|
+
description: "The GitHub email for committing the changes."
|
|
48
|
+
required: true
|
|
49
|
+
github-token:
|
|
50
|
+
description: "The GitHub token for committing the changes."
|
|
51
|
+
required: true
|
|
52
|
+
|
|
53
|
+
# Map the workflow outputs to job outputs
|
|
54
|
+
outputs:
|
|
55
|
+
release-version:
|
|
56
|
+
description: "The bumped version."
|
|
57
|
+
value: ${{ jobs.release.outputs.release-version }}
|
|
58
|
+
old-version:
|
|
59
|
+
description: "The old version in your `.bumpversion.cfg` file."
|
|
60
|
+
value: ${{ jobs.release.outputs.old-version }}
|
|
61
|
+
|
|
62
|
+
jobs:
|
|
63
|
+
release:
|
|
64
|
+
runs-on: ubuntu-22.04
|
|
65
|
+
# Map the job outputs to step outputs
|
|
66
|
+
outputs:
|
|
67
|
+
release-version: ${{ steps.bump-version-release.outputs.release-version }}
|
|
68
|
+
old-version: ${{ steps.bump-version-dev.outputs.old-version }}
|
|
69
|
+
|
|
70
|
+
steps:
|
|
71
|
+
- name: Install uv
|
|
72
|
+
uses: astral-sh/setup-uv@v5
|
|
73
|
+
with:
|
|
74
|
+
python-version: ${{ inputs.python-version }}
|
|
75
|
+
version: ${{ inputs.uv-version }}
|
|
76
|
+
|
|
77
|
+
- name: Check out repository
|
|
78
|
+
uses: bakdata/ci-templates/actions/checkout@1.49.0
|
|
79
|
+
with:
|
|
80
|
+
ref: ${{ github.event.repository.default_branch }}
|
|
81
|
+
persist-credentials: false # required for pushing to protected branch later
|
|
82
|
+
fetch-depth: 0 # required for changelog generation
|
|
83
|
+
|
|
84
|
+
- name: Bump version
|
|
85
|
+
id: bump-version-dev
|
|
86
|
+
uses: bakdata/ci-templates/actions/bump-version@v1.21.2
|
|
87
|
+
with:
|
|
88
|
+
release-type: ${{ inputs.release-type }}
|
|
89
|
+
working-directory: ${{ inputs.working-directory }}
|
|
90
|
+
|
|
91
|
+
- name: Bump version release
|
|
92
|
+
id: bump-version-release
|
|
93
|
+
uses: bakdata/ci-templates/actions/bump-version@v1.21.2
|
|
94
|
+
with:
|
|
95
|
+
release-type: release --allow-dirty
|
|
96
|
+
working-directory: ${{ inputs.working-directory }}
|
|
97
|
+
|
|
98
|
+
- name: Apply version bump to uv lock
|
|
99
|
+
run: uv lock --no-refresh
|
|
100
|
+
|
|
101
|
+
- name: Create changelog
|
|
102
|
+
id: build-changelog
|
|
103
|
+
uses: bakdata/ci-templates/actions/changelog-generate@1.50.0
|
|
104
|
+
if: ${{ inputs.changelog }}
|
|
105
|
+
with:
|
|
106
|
+
github-token: ${{ secrets.github-token }}
|
|
107
|
+
tag: ${{ steps.bump-version-release.outputs.release-version }}
|
|
108
|
+
changelog-file: ${{ inputs.changelog-file }}
|
|
109
|
+
|
|
110
|
+
- name: Commit and push changes including .bumpversion.cfg file
|
|
111
|
+
uses: bakdata/ci-templates/actions/commit-and-push@1.25.2
|
|
112
|
+
with:
|
|
113
|
+
ref: ${{ github.event.repository.default_branch }}
|
|
114
|
+
commit-message: "Bump version ${{ steps.bump-version-dev.outputs.old-version }} → ${{ steps.bump-version-release.outputs.release-version }}"
|
|
115
|
+
github-username: ${{ secrets.github-username }}
|
|
116
|
+
github-email: ${{ secrets.github-email }}
|
|
117
|
+
github-token: ${{ secrets.github-token }}
|
|
118
|
+
|
|
119
|
+
- name: Tag and release
|
|
120
|
+
uses: bakdata/ci-templates/actions/tag-and-release@v1.22.0
|
|
121
|
+
with:
|
|
122
|
+
tag: "${{ steps.bump-version-release.outputs.release-version }}"
|
|
123
|
+
github-username: ${{ secrets.github-username }}
|
|
124
|
+
github-email: ${{ secrets.github-email }}
|
|
125
|
+
github-token: ${{ secrets.github-token }}
|
|
126
|
+
release-title: "${{ steps.bump-version-release.outputs.release-version }}"
|
|
127
|
+
release-body: "${{ steps.build-changelog.outputs.single-changelog }}"
|
|
@@ -15,10 +15,12 @@ on:
|
|
|
15
15
|
|
|
16
16
|
jobs:
|
|
17
17
|
create-github-release-push-tag:
|
|
18
|
-
uses:
|
|
18
|
+
uses: ./.github/workflows/python-uv-release.yaml
|
|
19
19
|
name: Release
|
|
20
20
|
with:
|
|
21
21
|
release-type: ${{ inputs.release-type }}
|
|
22
|
+
python-version: "3.11"
|
|
23
|
+
uv-version: "0.5.14"
|
|
22
24
|
changelog: true
|
|
23
25
|
changelog-file: "./docs/docs/user/changelog.md"
|
|
24
26
|
secrets:
|
|
@@ -40,7 +40,6 @@ inputs:
|
|
|
40
40
|
description: "secrets.GITHUB_TOKEN, needed for setup-helm action if helm-version is set to latest"
|
|
41
41
|
required: false
|
|
42
42
|
|
|
43
|
-
|
|
44
43
|
runs:
|
|
45
44
|
using: "composite"
|
|
46
45
|
steps:
|
|
@@ -64,7 +63,7 @@ runs:
|
|
|
64
63
|
with:
|
|
65
64
|
python-version: ${{ inputs.python-version }}
|
|
66
65
|
cache: pip
|
|
67
|
-
cache-dependency-path:
|
|
66
|
+
cache-dependency-path: ""
|
|
68
67
|
# FIXME: https://github.com/actions/setup-python/issues/361
|
|
69
68
|
# "${{ steps.requirements.outputs.path }}"
|
|
70
69
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Auto generation
|
|
2
2
|
|
|
3
|
-
Auto generation happens mostly with
|
|
3
|
+
Auto generation happens mostly with Git hooks. You can find the [`lefthook`](https://evilmartians.github.io/lefthook/) configuration [here](https://github.com/bakdata/kpops/blob/main/lefthook.yaml). These pre-commit hooks call different [Python scripts](https://github.com/bakdata/kpops/tree/main/hooks) to auto generate code for the documentation.
|
|
4
4
|
|
|
5
5
|
## Generation scripts and their respective files
|
|
6
6
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# How to contribute
|
|
2
|
+
|
|
3
|
+
**Welcome!** We are glad to have you visit our contributing guide!
|
|
4
|
+
|
|
5
|
+
If you find any bugs or have suggestions for improvements, please open an [issue](https://github.com/bakdata/kpops/issues/new) and optionally a [pull request (PR)](https://github.com/bakdata/kpops/compare). In the case of a PR, we would appreciate it if you preface it with an issue outlining your goal and means of achieving it.
|
|
6
|
+
|
|
7
|
+
### git
|
|
8
|
+
|
|
9
|
+
We are using [git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) to import the [KPOps examples](https://github.com/bakdata/kpops-examples) repository. You need to fetch the repository locally on your machine. To do so use this command:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
git submodule init
|
|
13
|
+
git submodule update --recursive
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
This will fetch the resources under the `examples` folder.
|
|
17
|
+
|
|
18
|
+
## Style
|
|
19
|
+
|
|
20
|
+
We advise that you stick to our Git hooks for code linting, formatting, and auto-generation of documentation. After you install them using `lefthook install` they're triggered automatically during `git` operations, such as commit or checkout. Additionally, you can manually invoke them with `lefthook run pre-commit --all-files`. Please also install the [`dprint`](https://dprint.dev/) formatter.
|
|
@@ -164,6 +164,19 @@
|
|
|
164
164
|
"description": "The label to identify the KafkaTopic resources managed by the Topic Operator. This does not have to be the name of the Kafka cluster. It can be the label assigned to the KafkaTopic resource. If you deploy more than one Topic Operator, the labels must be unique for each. That is, the operators cannot manage the same resources.",
|
|
165
165
|
"title": "Label",
|
|
166
166
|
"type": "object"
|
|
167
|
+
},
|
|
168
|
+
"namespace": {
|
|
169
|
+
"anyOf": [
|
|
170
|
+
{
|
|
171
|
+
"type": "string"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"type": "null"
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
"default": null,
|
|
178
|
+
"description": "The namespace where the Topic Operator is running. This is the namespace where the KafkaTopic resources are created.",
|
|
179
|
+
"title": "Namespace"
|
|
167
180
|
}
|
|
168
181
|
},
|
|
169
182
|
"required": [
|
|
@@ -1585,6 +1585,9 @@
|
|
|
1585
1585
|
},
|
|
1586
1586
|
{
|
|
1587
1587
|
"type": "integer"
|
|
1588
|
+
},
|
|
1589
|
+
{
|
|
1590
|
+
"type": "number"
|
|
1588
1591
|
}
|
|
1589
1592
|
]
|
|
1590
1593
|
},
|
|
@@ -2712,6 +2715,9 @@
|
|
|
2712
2715
|
},
|
|
2713
2716
|
{
|
|
2714
2717
|
"type": "integer"
|
|
2718
|
+
},
|
|
2719
|
+
{
|
|
2720
|
+
"type": "number"
|
|
2715
2721
|
}
|
|
2716
2722
|
]
|
|
2717
2723
|
},
|
|
@@ -3329,6 +3335,9 @@
|
|
|
3329
3335
|
},
|
|
3330
3336
|
{
|
|
3331
3337
|
"type": "integer"
|
|
3338
|
+
},
|
|
3339
|
+
{
|
|
3340
|
+
"type": "number"
|
|
3332
3341
|
}
|
|
3333
3342
|
]
|
|
3334
3343
|
},
|
|
@@ -1257,6 +1257,9 @@
|
|
|
1257
1257
|
},
|
|
1258
1258
|
{
|
|
1259
1259
|
"type": "integer"
|
|
1260
|
+
},
|
|
1261
|
+
{
|
|
1262
|
+
"type": "number"
|
|
1260
1263
|
}
|
|
1261
1264
|
]
|
|
1262
1265
|
},
|
|
@@ -2384,6 +2387,9 @@
|
|
|
2384
2387
|
},
|
|
2385
2388
|
{
|
|
2386
2389
|
"type": "integer"
|
|
2390
|
+
},
|
|
2391
|
+
{
|
|
2392
|
+
"type": "number"
|
|
2387
2393
|
}
|
|
2388
2394
|
]
|
|
2389
2395
|
},
|
|
@@ -2,6 +2,45 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [9.3.0](https://github.com/bakdata/kpops/tree/9.3.0) - 2025-02-03
|
|
6
|
+
### What's changed
|
|
7
|
+
|
|
8
|
+
* Use Pydantic `model_validate` to avoid Pyright warnings by @disrupted in [#586](https://github.com/bakdata/kpops/pull/586)
|
|
9
|
+
|
|
10
|
+
* Fix release commit message by @disrupted in [#591](https://github.com/bakdata/kpops/pull/591)
|
|
11
|
+
|
|
12
|
+
* Configure PyPI trusted publishing by @yannick-roeder in [#592](https://github.com/bakdata/kpops/pull/592)
|
|
13
|
+
|
|
14
|
+
* Migrate pre-commit hooks to lefthook by @disrupted in [#584](https://github.com/bakdata/kpops/pull/584)
|
|
15
|
+
|
|
16
|
+
* feat: support symbolic linked pipelines to avoid repetition by @daconstenla in [#580](https://github.com/bakdata/kpops/pull/580)
|
|
17
|
+
|
|
18
|
+
* fix: address CI warnings introduced by #580 by @disrupted in [#594](https://github.com/bakdata/kpops/pull/594)
|
|
19
|
+
|
|
20
|
+
* feat(streams-bootstrap): allow float values in command line by @disrupted in [#593](https://github.com/bakdata/kpops/pull/593)
|
|
21
|
+
|
|
22
|
+
* ci: run lint job only for target Python version on Linux by @disrupted in [#596](https://github.com/bakdata/kpops/pull/596)
|
|
23
|
+
|
|
24
|
+
* style: format YAML & JSON by @disrupted in [#595](https://github.com/bakdata/kpops/pull/595)
|
|
25
|
+
|
|
26
|
+
* feat: support custom namespace configuration for `StrimziKafkaTopic` by @daconstenla in [#581](https://github.com/bakdata/kpops/pull/581)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### New Contributors
|
|
30
|
+
* @daconstenla made their first contribution in [#581](https://github.com/bakdata/kpops/pull/581)
|
|
31
|
+
|
|
32
|
+
**Full Changelog**: https://github.com/bakdata/kpops/compare/9.2.1...9.3.0
|
|
33
|
+
|
|
34
|
+
## [9.2.1](https://github.com/bakdata/kpops/tree/9.2.1) - 2025-01-15
|
|
35
|
+
### What's changed
|
|
36
|
+
|
|
37
|
+
* Fix CI release and changelog by @disrupted in [#590](https://github.com/bakdata/kpops/pull/590)
|
|
38
|
+
|
|
39
|
+
* Bump version 9.2.1-dev → 9.2.1 by @bakdata-bot
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
**Full Changelog**: https://github.com/bakdata/kpops/compare/9.2.0-dev...9.2.1
|
|
43
|
+
|
|
5
44
|
## [9.2.0-dev](https://github.com/bakdata/kpops/tree/9.2.0-dev) - 2025-01-14
|
|
6
45
|
### What's changed
|
|
7
46
|
|
|
@@ -17,6 +56,8 @@ All notable changes to this project will be documented in this file.
|
|
|
17
56
|
|
|
18
57
|
* Fail if streams-boostrap v3 model is instantiated with v2 attribute by @disrupted in [#587](https://github.com/bakdata/kpops/pull/587)
|
|
19
58
|
|
|
59
|
+
* Bump version 9.1.0 → 9.2.0-dev by @bakdata-bot
|
|
60
|
+
|
|
20
61
|
|
|
21
62
|
**Full Changelog**: https://github.com/bakdata/kpops/compare/9.1.0...9.2.0-dev
|
|
22
63
|
|
|
@@ -1362,9 +1403,6 @@ All notable changes to this project will be documented in this file.
|
|
|
1362
1403
|
* Bump version 0.8.0 → 0.8.1 by @bakdata-bot
|
|
1363
1404
|
|
|
1364
1405
|
|
|
1365
|
-
### New Contributors
|
|
1366
|
-
* @yannick-roeder made their first contribution in [#82](https://github.com/bakdata/kpops/pull/82)
|
|
1367
|
-
|
|
1368
1406
|
**Full Changelog**: https://github.com/bakdata/kpops/compare/0.8.0...0.8.1
|
|
1369
1407
|
|
|
1370
1408
|
## [0.8.0](https://github.com/bakdata/kpops/tree/0.8.0) - 2023-01-30
|
kpops-9.3.0/dprint.jsonc
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://dprint.dev/schemas/v0.json",
|
|
3
|
+
"incremental": true,
|
|
4
|
+
"json": {},
|
|
5
|
+
"yaml": {},
|
|
6
|
+
"markdown": {},
|
|
7
|
+
"toml": {},
|
|
8
|
+
"malva": {},
|
|
9
|
+
"includes": ["**/*.{json,jsonc,yaml,yml,md,toml,css}"],
|
|
10
|
+
"excludes": [
|
|
11
|
+
".pytest_cache/**",
|
|
12
|
+
".mypy_cache/**",
|
|
13
|
+
"**/.venv/**",
|
|
14
|
+
"CHANGELOG.md",
|
|
15
|
+
"**/cli-commands.md",
|
|
16
|
+
"**/cli_env_vars.md",
|
|
17
|
+
"**/config_env_vars.md",
|
|
18
|
+
"tests/compiler/resources/erroneous-file.yaml",
|
|
19
|
+
"tests/**/snapshots/**",
|
|
20
|
+
"docs/docs/resources/**",
|
|
21
|
+
"docs/docs/schema/**",
|
|
22
|
+
],
|
|
23
|
+
"plugins": [
|
|
24
|
+
"https://plugins.dprint.dev/json-0.19.4.wasm",
|
|
25
|
+
"https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.0.wasm",
|
|
26
|
+
"https://plugins.dprint.dev/markdown-0.17.8.wasm",
|
|
27
|
+
"https://plugins.dprint.dev/toml-0.6.4.wasm",
|
|
28
|
+
"https://plugins.dprint.dev/g-plane/malva-v0.11.1.wasm",
|
|
29
|
+
],
|
|
30
|
+
}
|
|
@@ -76,7 +76,7 @@ DANGEROUS_FILES_TO_CHANGE = {
|
|
|
76
76
|
PATH_DOCS_KPOPS_STRUCTURE,
|
|
77
77
|
}
|
|
78
78
|
# All args provided to the script
|
|
79
|
-
#
|
|
79
|
+
# pre-commit/lefthook pass changed files as args
|
|
80
80
|
SCRIPT_ARGUMENTS = set(sys.argv)
|
|
81
81
|
|
|
82
82
|
log = logging.getLogger("DocumentationGenerator")
|
|
@@ -247,7 +247,7 @@ if __name__ == "__main__":
|
|
|
247
247
|
# Delete the old dependency files
|
|
248
248
|
for dangerous_file in DANGEROUS_FILES_TO_CHANGE:
|
|
249
249
|
dangerous_file.unlink(missing_ok=True)
|
|
250
|
-
# Don't display warning if
|
|
250
|
+
# Don't display warning if `--all-files` flag suspected in `pre-commit run` or `lefthook run`
|
|
251
251
|
if ".gitignore" not in SCRIPT_ARGUMENTS:
|
|
252
252
|
log.warning(
|
|
253
253
|
redify(
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
from collections.abc import Iterable, Iterator
|
|
4
|
+
from glob import glob
|
|
4
5
|
from pathlib import Path
|
|
5
6
|
|
|
6
7
|
from kpops.const.file_type import PIPELINE_YAML
|
|
@@ -20,7 +21,14 @@ def collect_pipeline_paths(pipeline_paths: Iterable[Path]) -> Iterator[Path]:
|
|
|
20
21
|
if pipeline_path.is_file():
|
|
21
22
|
yield pipeline_path
|
|
22
23
|
elif pipeline_path.is_dir():
|
|
23
|
-
|
|
24
|
+
# TODO: In python 3.13 symbolic links become supported by Path.glob
|
|
25
|
+
# docs.python.org/3.13#pathlib.Path.glob, probably it make sense to use it after ugprading,
|
|
26
|
+
# likely the code will look like:
|
|
27
|
+
# yield from sorted(pipeline_path.glob(f"**/{PIPELINE_YAML}", recurse_symlinks=True))
|
|
28
|
+
yield from sorted(
|
|
29
|
+
Path(p).resolve()
|
|
30
|
+
for p in glob(f"{pipeline_path}/**/{PIPELINE_YAML}", recursive=True) # noqa: PTH207
|
|
31
|
+
)
|
|
24
32
|
else:
|
|
25
33
|
msg = f"The entered pipeline path '{pipeline_path}' should be a directory or file."
|
|
26
34
|
raise ValueError(msg)
|
|
@@ -163,7 +163,7 @@ class StreamsBootstrapValues(SerializeAsOptionalModel, HelmAppValues):
|
|
|
163
163
|
description=describe_attr("configuration_env_prefix", __doc__),
|
|
164
164
|
)
|
|
165
165
|
|
|
166
|
-
command_line: SerializeAsOptional[dict[str, str | bool | int]] = Field(
|
|
166
|
+
command_line: SerializeAsOptional[dict[str, str | bool | int | float]] = Field(
|
|
167
167
|
default={},
|
|
168
168
|
description=describe_attr("command_line", __doc__),
|
|
169
169
|
)
|
|
@@ -33,6 +33,11 @@ class StrimziTopicConfig(BaseSettings):
|
|
|
33
33
|
description="The label to identify the KafkaTopic resources managed by the Topic Operator. This does not have to be the name of the Kafka cluster. It can be the label assigned to the KafkaTopic resource. If you deploy more than one Topic Operator, the labels must be unique for each. That is, the operators cannot manage the same resources.",
|
|
34
34
|
)
|
|
35
35
|
|
|
36
|
+
namespace: str | None = Field(
|
|
37
|
+
default=None,
|
|
38
|
+
description="The namespace where the Topic Operator is running. This is the namespace where the KafkaTopic resources are created.",
|
|
39
|
+
)
|
|
40
|
+
|
|
36
41
|
@property
|
|
37
42
|
def cluster_labels(self) -> tuple[str, str]:
|
|
38
43
|
"""Return the defined strimzi_topic.label as a tuple."""
|
|
@@ -46,7 +51,7 @@ class StrimziTopicConfig(BaseSettings):
|
|
|
46
51
|
raise ValidationError(msg)
|
|
47
52
|
if len(label) > 1:
|
|
48
53
|
log.warning(
|
|
49
|
-
"'
|
|
54
|
+
"'strimzi_topic.label' only reads the first entry in the dictionary. Other defined labels will be ignored."
|
|
50
55
|
)
|
|
51
56
|
|
|
52
57
|
return label
|
|
@@ -162,7 +167,6 @@ class KpopsConfig(BaseSettings):
|
|
|
162
167
|
description="The operation mode of KPOps (managed, manifest, argo).",
|
|
163
168
|
exclude=True,
|
|
164
169
|
)
|
|
165
|
-
|
|
166
170
|
model_config = SettingsConfigDict(
|
|
167
171
|
env_prefix=ENV_PREFIX,
|
|
168
172
|
env_nested_delimiter="__",
|
|
@@ -60,16 +60,16 @@ class StrimziKafkaTopic(KubernetesManifest):
|
|
|
60
60
|
def from_topic(cls, topic: KafkaTopic) -> Self:
|
|
61
61
|
strimzi_topic = get_config().strimzi_topic
|
|
62
62
|
if not strimzi_topic:
|
|
63
|
-
msg = "When manifesting KafkaTopic you must define 'strimzi_topic.
|
|
63
|
+
msg = "When manifesting KafkaTopic you must define 'strimzi_topic.label' in the config.yaml"
|
|
64
64
|
raise ValidationError(msg)
|
|
65
65
|
cluster_domain, cluster_name = strimzi_topic.cluster_labels
|
|
66
66
|
|
|
67
|
-
metadata = ObjectMeta
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"labels": {cluster_domain: cluster_name},
|
|
71
|
-
}
|
|
67
|
+
metadata = ObjectMeta(
|
|
68
|
+
name=topic.name,
|
|
69
|
+
labels={cluster_domain: cluster_name},
|
|
72
70
|
)
|
|
71
|
+
if strimzi_topic.namespace:
|
|
72
|
+
metadata.namespace = strimzi_topic.namespace
|
|
73
73
|
spec = TopicSpec.model_validate(
|
|
74
74
|
{
|
|
75
75
|
"partitions": topic.config.partitions_count,
|