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.
Files changed (456) hide show
  1. {kpops-9.2.0.dev0 → kpops-9.3.0}/.bumpversion.cfg +1 -1
  2. kpops-9.3.0/.github/pyright-matcher.json +18 -0
  3. {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/ci.yaml +17 -18
  4. {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/publish.yaml +3 -3
  5. kpops-9.3.0/.github/workflows/python-uv-release.yaml +127 -0
  6. {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/release.yaml +3 -1
  7. {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/update-gh-pages.yaml +1 -1
  8. {kpops-9.2.0.dev0 → kpops-9.3.0}/.gitignore +1 -0
  9. {kpops-9.2.0.dev0 → kpops-9.3.0}/PKG-INFO +1 -1
  10. {kpops-9.2.0.dev0 → kpops-9.3.0}/action.yaml +1 -2
  11. {kpops-9.2.0.dev0 → kpops-9.3.0}/config.yaml +1 -1
  12. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/developer/auto-generation.md +1 -1
  13. kpops-9.3.0/docs/docs/developer/contributing.md +20 -0
  14. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/schema/config.json +13 -0
  15. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/schema/defaults.json +9 -0
  16. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/schema/pipeline.json +6 -0
  17. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/changelog.md +41 -3
  18. kpops-9.3.0/dprint.jsonc +30 -0
  19. {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/__init__.py +1 -1
  20. {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_docs/gen_docs_components.py +2 -2
  21. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/cli/utils.py +9 -1
  22. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/model.py +1 -1
  23. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/config/__init__.py +6 -2
  24. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/const/__init__.py +1 -1
  25. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/strimzi/kafka_topic.py +6 -6
  26. kpops-9.3.0/lefthook.yaml +53 -0
  27. {kpops-9.2.0.dev0 → kpops-9.3.0}/pyproject.toml +5 -2
  28. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kubernetes/model.py +2 -2
  29. kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/broker_response.json +53 -0
  30. kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/cluster-info.json +38 -0
  31. kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/get_default_topic_response.json +21 -0
  32. kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/get_topic_response.json +21 -0
  33. kpops-9.3.0/tests/component_handlers/resources/kafka_rest_proxy_responses/topic_config_response.json +63 -0
  34. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/topic/test_utils.py +2 -2
  35. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap/test_producer_app.py +18 -18
  36. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap/test_streams_app.py +39 -39
  37. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap/test_streams_bootstrap.py +11 -11
  38. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap_v2/test_producer_app.py +18 -18
  39. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap_v2/test_streams_app.py +39 -39
  40. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_base_defaults_component.py +2 -2
  41. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_helm_app.py +1 -1
  42. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_kafka_sink_connector.py +5 -2
  43. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/strimzi/test_kafka_topic.py +27 -1
  44. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/custom-config/config.yaml +1 -1
  45. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/kafka-connect-sink-config/config.yaml +2 -2
  46. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/manifest-pipeline/pipeline.yaml +0 -1
  47. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/name_prefix_concatenation/pipeline.yaml +13 -13
  48. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/parallel-pipeline/pipeline.yaml +0 -1
  49. kpops-9.3.0/tests/pipeline/resources/pipeline-folders/pipeline-3/pipeline.yaml +12 -0
  50. kpops-9.3.0/tests/pipeline/resources/pipeline-folders-with-symlinks/pipeline-1/pipeline.yaml +1 -0
  51. kpops-9.3.0/tests/pipeline/resources/pipeline-symlinked/pipeline.yaml +1 -0
  52. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-short-topics/defaults.yaml +0 -1
  53. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/simple-pipeline/defaults.yaml +0 -1
  54. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/simple-pipeline/pipeline.yaml +0 -1
  55. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/streams-bootstrap/pipeline.yaml +11 -9
  56. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_streams_bootstrap/pipeline.yaml +8 -2
  57. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_streams_bootstrap/manifest.yaml +7 -1
  58. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_generate.py +42 -0
  59. {kpops-9.2.0.dev0 → kpops-9.3.0}/uv.lock +12 -69
  60. kpops-9.2.0.dev0/.github/pyright-matcher.json +0 -18
  61. kpops-9.2.0.dev0/.pre-commit-config.yaml +0 -83
  62. kpops-9.2.0.dev0/cliff.toml +0 -72
  63. kpops-9.2.0.dev0/docs/docs/developer/contributing.md +0 -38
  64. kpops-9.2.0.dev0/dprint.json +0 -26
  65. kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/broker_response.json +0 -53
  66. kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/cluster-info.json +0 -38
  67. kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/get_default_topic_response.json +0 -21
  68. kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/get_topic_response.json +0 -21
  69. kpops-9.2.0.dev0/tests/component_handlers/resources/kafka_rest_proxy_responses/topic_config_response.json +0 -63
  70. {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/actions/update-docs/action.yml +0 -0
  71. {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/_lint-gh-ci.yaml +0 -0
  72. {kpops-9.2.0.dev0 → kpops-9.3.0}/.github/workflows/add-issue-ci.yaml +0 -0
  73. {kpops-9.2.0.dev0 → kpops-9.3.0}/.gitmodules +0 -0
  74. {kpops-9.2.0.dev0 → kpops-9.3.0}/CHANGELOG.md +0 -0
  75. {kpops-9.2.0.dev0 → kpops-9.3.0}/CODEOWNERS +0 -0
  76. {kpops-9.2.0.dev0 → kpops-9.3.0}/CONTRIBUTING.md +0 -0
  77. {kpops-9.2.0.dev0 → kpops-9.3.0}/LICENSE +0 -0
  78. {kpops-9.2.0.dev0 → kpops-9.3.0}/README.md +0 -0
  79. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/README.md +0 -0
  80. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/assets/images/kpops-background.svg +0 -0
  81. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/developer/api.md +0 -0
  82. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/developer/getting-started.md +0 -0
  83. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/images/atm-fraud-pipeline_streams-explorer.png +0 -0
  84. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/images/word-count-pipeline_streams-explorer.png +0 -0
  85. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/index.md +0 -0
  86. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/overrides/home.html +0 -0
  87. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/architecture/components-hierarchy.md +0 -0
  88. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/editor_integration/settings.json +0 -0
  89. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/examples/defaults.md +0 -0
  90. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/examples/pipeline.md +0 -0
  91. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/dependencies/defaults_pipeline_component_dependencies.yaml +0 -0
  92. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/dependencies/kpops_structure.yaml +0 -0
  93. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/dependencies/pipeline_component_dependencies.yaml +0 -0
  94. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/helm-app.yaml +0 -0
  95. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kafka-app.yaml +0 -0
  96. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kafka-connector.yaml +0 -0
  97. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kafka-sink-connector.yaml +0 -0
  98. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kafka-source-connector.yaml +0 -0
  99. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/kubernetes-app.yaml +0 -0
  100. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/producer-app.yaml +0 -0
  101. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/headers/streams-app.yaml +0 -0
  102. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/helm-app.yaml +0 -0
  103. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kafka-app.yaml +0 -0
  104. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kafka-connector.yaml +0 -0
  105. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kafka-sink-connector.yaml +0 -0
  106. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kafka-source-connector.yaml +0 -0
  107. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/kubernetes-app.yaml +0 -0
  108. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/pipeline.md +0 -0
  109. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/pipeline.yaml +0 -0
  110. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/producer-app.yaml +0 -0
  111. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/config-kafka-connector.yaml +0 -0
  112. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/from_-kafka-source-connector.yaml +0 -0
  113. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/from_-producer-app.yaml +0 -0
  114. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/from_.yaml +0 -0
  115. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/namespace.yaml +0 -0
  116. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/offset_topic-kafka-source-connector.yaml +0 -0
  117. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/prefix.yaml +0 -0
  118. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/repo_config-helm-app.yaml +0 -0
  119. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/repo_config-kafka-connector.yaml +0 -0
  120. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/resetter_values.yaml +0 -0
  121. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/to.yaml +0 -0
  122. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-helm-app.yaml +0 -0
  123. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-kafka-app.yaml +0 -0
  124. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-kubernetes-app.yaml +0 -0
  125. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-producer-app.yaml +0 -0
  126. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/values-streams-app.yaml +0 -0
  127. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/version-kafka-app.yaml +0 -0
  128. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/version-kafka-connector.yaml +0 -0
  129. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/sections/version.yaml +0 -0
  130. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-components/streams-app.yaml +0 -0
  131. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-config/config.yaml +0 -0
  132. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-helm-app.yaml +0 -0
  133. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kafka-app.yaml +0 -0
  134. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kafka-connector.yaml +0 -0
  135. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kafka-sink-connector.yaml +0 -0
  136. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kafka-source-connector.yaml +0 -0
  137. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-kubernetes-app.yaml +0 -0
  138. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-producer-app.yaml +0 -0
  139. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults-streams-app.yaml +0 -0
  140. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults.md +0 -0
  141. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/defaults.yaml +0 -0
  142. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-helm-app.yaml +0 -0
  143. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kafka-app.yaml +0 -0
  144. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kafka-connector.yaml +0 -0
  145. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kafka-sink-connector.yaml +0 -0
  146. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kafka-source-connector.yaml +0 -0
  147. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-kubernetes-app.yaml +0 -0
  148. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-producer-app.yaml +0 -0
  149. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/pipeline-defaults/headers/defaults-streams-app.yaml +0 -0
  150. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/setup/kafka.yaml +0 -0
  151. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/cli_env_vars.env +0 -0
  152. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/cli_env_vars.md +0 -0
  153. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/config_env_vars.env +0 -0
  154. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/config_env_vars.md +0 -0
  155. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/resources/variables/variable_substitution.yaml +0 -0
  156. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/stylesheets/extra.css +0 -0
  157. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/helm-app.md +0 -0
  158. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/kafka-connector.md +0 -0
  159. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/kafka-sink-connector.md +0 -0
  160. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/kafka-source-connector.md +0 -0
  161. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/kubernetes-app.md +0 -0
  162. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/overview.md +0 -0
  163. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/producer-app.md +0 -0
  164. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/streams-app.md +0 -0
  165. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/components/streams-bootstrap.md +0 -0
  166. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/config.md +0 -0
  167. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/defaults.md +0 -0
  168. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/operation-mode.md +0 -0
  169. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/variables/environment_variables.md +0 -0
  170. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/core-concepts/variables/substitution.md +0 -0
  171. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/examples/atm-fraud-pipeline.md +0 -0
  172. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/getting-started/quick-start.md +0 -0
  173. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/getting-started/setup.md +0 -0
  174. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/getting-started/teardown.md +0 -0
  175. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v1-v2.md +0 -0
  176. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v2-v3.md +0 -0
  177. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v3-v4.md +0 -0
  178. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v4-v5.md +0 -0
  179. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v5-v6.md +0 -0
  180. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v6-v7.md +0 -0
  181. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v7-v8.md +0 -0
  182. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/migration-guide/v8-v9.md +0 -0
  183. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/references/ci-integration/github-actions.md +0 -0
  184. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/references/cli-commands.md +0 -0
  185. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/references/editor-integration.md +0 -0
  186. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/docs/user/what-is-kpops.md +0 -0
  187. {kpops-9.2.0.dev0 → kpops-9.3.0}/docs/mkdocs.yml +0 -0
  188. {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_docs/__init__.py +0 -0
  189. {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_docs/gen_docs_cli_usage.py +0 -0
  190. {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_docs/gen_docs_env_vars.py +0 -0
  191. {kpops-9.2.0.dev0 → kpops-9.3.0}/hooks/gen_schema.py +0 -0
  192. {kpops-9.2.0.dev0 → kpops-9.3.0}/justfile +0 -0
  193. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/api/__init__.py +0 -0
  194. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/api/logs.py +0 -0
  195. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/api/options.py +0 -0
  196. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/cli/__init__.py +0 -0
  197. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/cli/main.py +0 -0
  198. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/__init__.py +0 -0
  199. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/__init__.py +0 -0
  200. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/dry_run_handler.py +0 -0
  201. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/exception.py +0 -0
  202. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/helm.py +0 -0
  203. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/helm_diff.py +0 -0
  204. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/model.py +0 -0
  205. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/helm_wrapper/utils.py +0 -0
  206. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/__init__.py +0 -0
  207. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/connect_wrapper.py +0 -0
  208. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/exception.py +0 -0
  209. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/kafka_connect_handler.py +0 -0
  210. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/model.py +0 -0
  211. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kafka_connect/timeout.py +0 -0
  212. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kubernetes/__init__.py +0 -0
  213. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kubernetes/pvc_handler.py +0 -0
  214. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/kubernetes/utils.py +0 -0
  215. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/schema_handler/__init__.py +0 -0
  216. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/schema_handler/schema_handler.py +0 -0
  217. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/schema_handler/schema_provider.py +0 -0
  218. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/__init__.py +0 -0
  219. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/exception.py +0 -0
  220. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/handler.py +0 -0
  221. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/model.py +0 -0
  222. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/proxy_wrapper.py +0 -0
  223. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/topic/utils.py +0 -0
  224. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/utils/__init__.py +0 -0
  225. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/component_handlers/utils/exception.py +0 -0
  226. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/__init__.py +0 -0
  227. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/base_defaults_component.py +0 -0
  228. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/cleaner.py +0 -0
  229. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/helm_app.py +0 -0
  230. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/kafka_app.py +0 -0
  231. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/kafka_connector.py +0 -0
  232. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/kubernetes_app.py +0 -0
  233. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/models/__init__.py +0 -0
  234. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/models/from_section.py +0 -0
  235. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/models/resource.py +0 -0
  236. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/models/to_section.py +0 -0
  237. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/base_components/pipeline_component.py +0 -0
  238. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/common/__init__.py +0 -0
  239. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/common/app_type.py +0 -0
  240. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/common/kubernetes_model.py +0 -0
  241. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/common/topic.py +0 -0
  242. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/__init__.py +0 -0
  243. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/base.py +0 -0
  244. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/producer/__init__.py +0 -0
  245. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/producer/model.py +0 -0
  246. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/producer/producer_app.py +0 -0
  247. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/streams/__init__.py +0 -0
  248. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/streams/model.py +0 -0
  249. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap/streams/streams_app.py +0 -0
  250. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/__init__.py +0 -0
  251. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/base.py +0 -0
  252. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/producer/__init__.py +0 -0
  253. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/producer/model.py +0 -0
  254. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/producer/producer_app.py +0 -0
  255. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/streams/__init__.py +0 -0
  256. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/streams/model.py +0 -0
  257. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/components/streams_bootstrap_v2/streams/streams_app.py +0 -0
  258. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/const/file_type.py +0 -0
  259. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/core/__init__.py +0 -0
  260. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/core/exception.py +0 -0
  261. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/core/operation.py +0 -0
  262. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/core/registry.py +0 -0
  263. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/__init__.py +0 -0
  264. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/argo.py +0 -0
  265. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/kubernetes.py +0 -0
  266. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/manifests/strimzi/__init__.py +0 -0
  267. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/pipeline/__init__.py +0 -0
  268. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/__init__.py +0 -0
  269. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/cli_commands.py +0 -0
  270. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/colorify.py +0 -0
  271. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/dataclasses.py +0 -0
  272. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/dict_differ.py +0 -0
  273. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/dict_ops.py +0 -0
  274. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/docstring.py +0 -0
  275. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/environment.py +0 -0
  276. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/gen_schema.py +0 -0
  277. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/json.py +0 -0
  278. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/pydantic.py +0 -0
  279. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/types.py +0 -0
  280. {kpops-9.2.0.dev0 → kpops-9.3.0}/kpops/utils/yaml.py +0 -0
  281. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/__init__.py +0 -0
  282. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/api/__init__.py +0 -0
  283. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/api/test_handlers.py +0 -0
  284. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/api/test_registry.py +0 -0
  285. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/__init__.py +0 -0
  286. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/resources/__init__.py +0 -0
  287. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/resources/config.yaml +0 -0
  288. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/resources/custom_module/__init__.py +0 -0
  289. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_exclude_optional/config.yaml +0 -0
  290. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_exclude_optional/defaults.yaml +0 -0
  291. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_exclude_optional/pipeline.yaml +0 -0
  292. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_include_optional/config.yaml +0 -0
  293. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_include_optional/defaults.yaml +0 -0
  294. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/snapshots/test_init/test_init_project_include_optional/pipeline.yaml +0 -0
  295. {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
  296. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/test_init.py +0 -0
  297. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/cli/test_schema_generation.py +0 -0
  298. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/__init__.py +0 -0
  299. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/resources/another-test.yaml +0 -0
  300. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/resources/defaults_development.yaml +0 -0
  301. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/resources/erroneous-file.yaml +0 -0
  302. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/resources/test.yaml +0 -0
  303. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/test_pipeline_name.py +0 -0
  304. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/compiler/test_yaml_loading.py +0 -0
  305. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/__init__.py +0 -0
  306. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/__init__.py +0 -0
  307. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/test_dry_run_handler.py +0 -0
  308. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/test_helm_diff.py +0 -0
  309. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/test_helm_wrapper.py +0 -0
  310. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/helm_wrapper/test_utils.py +0 -0
  311. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kafka_connect/__init__.py +0 -0
  312. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kafka_connect/resources/connect_validation_response.json +0 -0
  313. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kafka_connect/test_connect_handler.py +0 -0
  314. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kafka_connect/test_connect_wrapper.py +0 -0
  315. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/kubernetes/__init__.py +0 -0
  316. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/resources/defaults.yaml +0 -0
  317. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/resources/defaults_development.yaml +0 -0
  318. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/schema_handler/__init__.py +0 -0
  319. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/schema_handler/resources/__init__.py +0 -0
  320. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/schema_handler/resources/module.py +0 -0
  321. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/schema_handler/test_schema_handler.py +0 -0
  322. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/topic/__init__.py +0 -0
  323. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/topic/test_proxy_wrapper.py +0 -0
  324. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/component_handlers/topic/test_topic_handler.py +0 -0
  325. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/__init__.py +0 -0
  326. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/conftest.py +0 -0
  327. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/defaults.yaml +0 -0
  328. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/defaults_development.yaml +0 -0
  329. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipeline.yaml +0 -0
  330. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/defaults.yaml +0 -0
  331. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/defaults_development.yaml +0 -0
  332. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/defaults_production.yaml +0 -0
  333. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/pipeline-deep/defaults.yaml +0 -0
  334. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/pipeline-deep/defaults_production.yaml +0 -0
  335. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/pipeline-deep/pipeline.yaml +0 -0
  336. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/resources/pipelines/test-distributed-defaults/pipeline-deep/pipeline_development.yaml +0 -0
  337. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap/__init__.py +0 -0
  338. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap_v2/__init__.py +0 -0
  339. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/streams_bootstrap_v2/test_streams_bootstrap.py +0 -0
  340. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_kafka_connector.py +0 -0
  341. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_kafka_source_connector.py +0 -0
  342. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_kubernetes_app.py +0 -0
  343. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/components/test_topic.py +0 -0
  344. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/conftest.py +0 -0
  345. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/kubernetes/__init__.py +0 -0
  346. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/kubernetes/test_pvc_handler.py +0 -0
  347. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/__init__.py +0 -0
  348. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/strimzi/__init__.py +0 -0
  349. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/test_argo_enricher.py +0 -0
  350. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/manifests/test_kubernetes_model.py +0 -0
  351. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/__init__.py +0 -0
  352. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/defaults.yaml +0 -0
  353. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/component-type-substitution/infinite_pipeline.yaml +0 -0
  354. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/component-type-substitution/pipeline.yaml +0 -0
  355. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/custom-config/defaults.yaml +0 -0
  356. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/custom-config/pipeline.yaml +0 -0
  357. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/defaults.yaml +0 -0
  358. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/dotenv/.env +0 -0
  359. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/dotenv/config.yaml +0 -0
  360. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/dotenv/custom.env +0 -0
  361. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/env-specific-config-only/config_production.yaml +0 -0
  362. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/first-pipeline/pipeline.yaml +0 -0
  363. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/kafka-connect-sink/pipeline.yaml +0 -0
  364. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/kafka-connect-sink-config/defaults.yaml +0 -0
  365. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/kafka-connect-sink-config/pipeline.yaml +0 -0
  366. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/manifest-pipeline/defaults.yaml +0 -0
  367. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/multi-config/config.yaml +0 -0
  368. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/multi-config/config_development.yaml +0 -0
  369. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/multi-config/config_production.yaml +0 -0
  370. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/no-input-topic-pipeline/pipeline.yaml +0 -0
  371. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/no-topics-defaults/defaults.yaml +0 -0
  372. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/no-topics-defaults/defaults_development.yaml +0 -0
  373. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/no-user-defined-components/pipeline.yaml +0 -0
  374. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/parallel-pipeline/config.yaml +0 -0
  375. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/parallel-pipeline/defaults.yaml +0 -0
  376. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-component-should-have-prefix/defaults.yaml +0 -0
  377. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-component-should-have-prefix/pipeline.yaml +0 -0
  378. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-duplicate-step-names/pipeline.yaml +0 -0
  379. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-folders/pipeline-1/pipeline.yaml +0 -0
  380. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-folders/pipeline-2/pipeline.yaml +0 -0
  381. {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
  382. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-env-defaults/defaults.yaml +0 -0
  383. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-env-defaults/defaults_development.yaml +0 -0
  384. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-env-defaults/pipeline.yaml +0 -0
  385. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-envs/pipeline.yaml +0 -0
  386. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-envs/pipeline_development.yaml +0 -0
  387. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-illegal-kubernetes-name/pipeline.yaml +0 -0
  388. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-inflate/pipeline.yaml +0 -0
  389. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-loop/defaults.yaml +0 -0
  390. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-loop/pipeline.yaml +0 -0
  391. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-paths/pipeline.yaml +0 -0
  392. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipeline-with-short-topics/pipeline.yaml +0 -0
  393. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/same-topic-and-component-name/config.yaml +0 -0
  394. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/same-topic-and-component-name/defaults.yaml +0 -0
  395. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/same-topic-and-component-name/pipeline.yaml +0 -0
  396. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/pipelines-with-graphs/simple-pipeline/config.yaml +0 -0
  397. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/read-from-component/pipeline.yaml +0 -0
  398. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/resetter_values/defaults.yaml +0 -0
  399. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/resetter_values/pipeline.yaml +0 -0
  400. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/resetter_values/pipeline_connector_only.yaml +0 -0
  401. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/simple-pipeline/pipeline.yaml +0 -0
  402. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/streams-bootstrap/defaults.yaml +0 -0
  403. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/temp-trim-release-name/defaults.yaml +0 -0
  404. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/resources/temp-trim-release-name/pipeline.yaml +0 -0
  405. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_example/test_generate/atm-fraud/pipeline.yaml +0 -0
  406. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_example/test_generate/word-count/pipeline.yaml +0 -0
  407. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_default_config/pipeline.yaml +0 -0
  408. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_inflate_pipeline/pipeline.yaml +0 -0
  409. {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
  410. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_load_pipeline/pipeline.yaml +0 -0
  411. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_load_pipeline_with_folder_path/pipeline.yaml +0 -0
  412. {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
  413. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_model_serialization/pipeline.yaml +0 -0
  414. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_no_input_topic/pipeline.yaml +0 -0
  415. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_no_user_defined_components/pipeline.yaml +0 -0
  416. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_pipelines_with_envs/pipeline.yaml +0 -0
  417. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_prefix_pipeline_component/pipeline.yaml +0 -0
  418. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_read_from_component/pipeline.yaml +0 -0
  419. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_substitute_in_component/pipeline.yaml +0 -0
  420. {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
  421. {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
  422. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_generate/test_with_env_defaults/pipeline.yaml +0 -0
  423. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_deploy_argo_mode/manifest.yaml +0 -0
  424. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_deploy_manifest_mode/manifest.yaml +0 -0
  425. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_clean_argo_mode/manifest.yaml +0 -0
  426. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_clean_manifest_mode/manifest.yaml +0 -0
  427. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_clean_python_api/manifest.yaml +0 -0
  428. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_command/manifest.yaml +0 -0
  429. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_deploy_python_api/manifest.yaml +0 -0
  430. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_destroy_argo_mode/manifest.yaml +0 -0
  431. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_destroy_manifest_mode/manifest.yaml +0 -0
  432. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_destroy_python_api/manifest.yaml +0 -0
  433. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_reset_argo_mode/manifest.yaml +0 -0
  434. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_reset_manifest_mode/manifest.yaml +0 -0
  435. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/snapshots/test_manifest/test_manifest_reset_python_api/manifest.yaml +0 -0
  436. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_clean.py +0 -0
  437. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_components/__init__.py +0 -0
  438. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_components/components.py +0 -0
  439. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_components_without_schema_handler/__init__.py +0 -0
  440. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_components_without_schema_handler/components.py +0 -0
  441. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_deploy.py +0 -0
  442. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_destroy.py +0 -0
  443. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_example.py +0 -0
  444. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_manifest.py +0 -0
  445. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_pipeline.py +0 -0
  446. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/pipeline/test_reset.py +0 -0
  447. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/test_kpops_config.py +0 -0
  448. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/__init__.py +0 -0
  449. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/resources/__init__.py +0 -0
  450. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/resources/nested_base_settings.py +0 -0
  451. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_dict_ops.py +0 -0
  452. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_diff.py +0 -0
  453. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_doc_gen.py +0 -0
  454. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_environment.py +0 -0
  455. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_pydantic.py +0 -0
  456. {kpops-9.2.0.dev0 → kpops-9.3.0}/tests/utils/test_yaml.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 9.2.0-dev
2
+ current_version = 9.3.0
3
3
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\-(?P<release>dev)(?P<timestamp>\d+)?)?
4
4
  serialize =
5
5
  {major}.{minor}.{patch}-{release}{timestamp}
@@ -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
- - windows-2022
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
- uv run --frozen ruff check . --config pyproject.toml --no-fix ${{ matrix.format-for-github && '--output-format=github' }}
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: uv run --frozen pre-commit run gen-schema --all-files --show-diff-on-failure
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 pre-commit run gen-docs-cli --all-files --show-diff-on-failure
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 pre-commit run gen-docs-env-vars --all-files --show-diff-on-failure
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 pre-commit run gen-docs-components --all-files --show-diff-on-failure
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 mkdocs build -f docs/mkdocs.yml
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: bakdata/ci-templates/.github/workflows/bump-version-release.yaml@1.51.0
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:
@@ -4,7 +4,7 @@ on:
4
4
  push:
5
5
  tags:
6
6
  # Push events to semver tags
7
- - '[0-9]+.[0-9]+.[0-9]+'
7
+ - "[0-9]+.[0-9]+.[0-9]+"
8
8
 
9
9
  jobs:
10
10
  update-docs:
@@ -5,3 +5,4 @@
5
5
  .vscode
6
6
  site/
7
7
  scratch*
8
+ lefthook-local.yaml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kpops
3
- Version: 9.2.0.dev0
3
+ Version: 9.3.0
4
4
  Summary: KPOps is a tool to deploy Kafka pipelines to Kubernetes
5
5
  Author-email: bakdata <opensource@bakdata.com>
6
6
  License-File: LICENSE
@@ -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
 
@@ -2,4 +2,4 @@ kafka_brokers: "http://k8kafka-cp-kafka-headless.kpops.svc.cluster.local:9092"
2
2
  pipeline_base_dir: tests/pipeline
3
3
  strimzi_topic:
4
4
  label:
5
- strimzi.io/cluster: my-cluster
5
+ strimzi.io/cluster: my-cluster
@@ -1,6 +1,6 @@
1
1
  # Auto generation
2
2
 
3
- Auto generation happens mostly with [`pre-commit`](https://pre-commit.com/) hooks. You can find the pre-commit configuration [here](https://github.com/bakdata/kpops/blob/main/.pre-commit-config.yaml). These pre-commit hooks call different [Python scripts](https://github.com/bakdata/kpops/tree/main/hooks) to auto generate code for the documentation.
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
@@ -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
+ }
@@ -1,4 +1,4 @@
1
- """KPOps pre-commit hooks."""
1
+ """KPOps Git hooks."""
2
2
 
3
3
  from pathlib import Path
4
4
 
@@ -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
- # Pre-commit passes changed files as args
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 `-a` flag suspected in `pre-commit run`
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
- yield from sorted(pipeline_path.glob(f"**/{PIPELINE_YAML}"))
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
- "'resource_label' only reads the first entry in the dictionary. Other defined labels will be ignored."
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="__",
@@ -1,3 +1,3 @@
1
- __version__ = "9.2.0-dev"
1
+ __version__ = "9.3.0"
2
2
  KPOPS = "KPOps"
3
3
  KPOPS_MODULE = "kpops."
@@ -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.resource_label' in the config.yaml"
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.model_validate(
68
- {
69
- "name": topic.name,
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,