floe-python 0.8.8__tar.gz → 0.9.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 (2388) hide show
  1. floe_python-0.9.0/CHANGELOG.md +1467 -0
  2. floe_python-0.9.0/PKG-INFO +15 -0
  3. floe_python-0.9.0/conformance/config/val1_version_d21_newer_minor/config.yml +18 -0
  4. floe_python-0.9.0/conformance/config/val1_version_d21_newer_minor/expected/validate.json +4 -0
  5. floe_python-0.9.0/conformance/config/val1_version_future_major_ok/expected/validate.json +4 -0
  6. floe_python-0.9.0/conformance/manifest_run/expected/reports/report/run_ID/finance/orders/run.json +144 -0
  7. floe_python-0.9.0/conformance/manifest_run/expected/reports/report/run_ID/run.summary.json +62 -0
  8. floe_python-0.9.0/conformance/manifest_run/expected/reports/report/run_ID/sales/orders/run.json +98 -0
  9. floe_python-0.9.0/conformance/unique_pii/expected/reports/report/spike/run_ID/spike/orders/run.json +264 -0
  10. floe_python-0.9.0/context/bump-release.md +99 -0
  11. floe_python-0.9.0/docs/config.md +661 -0
  12. floe_python-0.9.0/docs/incremental.md +234 -0
  13. floe_python-0.9.0/docs/installation.md +67 -0
  14. floe_python-0.9.0/docs/manifest.md +402 -0
  15. floe_python-0.9.0/docs/pii.md +134 -0
  16. floe_python-0.9.0/docs/profiles.md +427 -0
  17. floe_python-0.9.0/docs/sinks/iceberg.md +193 -0
  18. floe_python-0.9.0/docs/support-matrix.md +102 -0
  19. floe_python-0.9.0/orchestrators/airflow-floe/README.md +104 -0
  20. floe_python-0.9.0/orchestrators/airflow-floe/example/config.sales.yml +41 -0
  21. floe_python-0.9.0/orchestrators/airflow-floe/example/config.yml +73 -0
  22. floe_python-0.9.0/orchestrators/airflow-floe/example/manifest.airflow.json +243 -0
  23. floe_python-0.9.0/orchestrators/airflow-floe/example/manifests/hr.manifest.json +158 -0
  24. floe_python-0.9.0/orchestrators/airflow-floe/example/manifests/sales.manifest.json +158 -0
  25. floe_python-0.9.0/orchestrators/airflow-floe/pyproject.toml +44 -0
  26. floe_python-0.9.0/orchestrators/airflow-floe/src/airflow_floe/manifest.py +440 -0
  27. floe_python-0.9.0/orchestrators/airflow-floe/tests/test_manifest_loader.py +171 -0
  28. floe_python-0.9.0/orchestrators/dagster-floe/README.md +236 -0
  29. floe_python-0.9.0/orchestrators/dagster-floe/pyproject.toml +60 -0
  30. floe_python-0.9.0/orchestrators/dagster-floe/src/floe_dagster/assets.py +805 -0
  31. floe_python-0.9.0/orchestrators/dagster-floe/src/floe_dagster/manifest.py +637 -0
  32. floe_python-0.9.0/orchestrators/dagster-floe/src/floe_dagster/runner.py +350 -0
  33. floe_python-0.9.0/orchestrators/dagster-floe/src/floe_dagster/schemas/floe.manifest.schema.json +1150 -0
  34. floe_python-0.9.0/orchestrators/dagster-floe/tests/test_asset_checks.py +285 -0
  35. floe_python-0.9.0/orchestrators/dagster-floe/tests/test_assets_manifest.py +686 -0
  36. floe_python-0.9.0/orchestrators/dagster-floe/tests/test_definitions.py +441 -0
  37. floe_python-0.9.0/orchestrators/dagster-floe/tests/test_inprocess_runner.py +188 -0
  38. floe_python-0.9.0/orchestrators/dagster-floe/tests/test_manifest.py +472 -0
  39. floe_python-0.9.0/orchestrators/schemas/floe.manifest.schema.json +1150 -0
  40. floe_python-0.9.0/pyproject.toml +55 -0
  41. floe_python-0.9.0/schemas/profile.schema.yaml +658 -0
  42. floe_python-0.9.0/scripts/test_config_schema.py +1448 -0
  43. floe_python-0.9.0/src/floe/checks/unique.py +257 -0
  44. floe_python-0.9.0/src/floe/config/profile.py +455 -0
  45. floe_python-0.9.0/src/floe/iceberg/catalog.py +407 -0
  46. floe_python-0.9.0/src/floe/iceberg/compact.py +141 -0
  47. floe_python-0.9.0/src/floe/iceberg/sink.py +229 -0
  48. floe_python-0.9.0/src/floe/iceberg/write.py +308 -0
  49. floe_python-0.9.0/src/floe/manifest.py +519 -0
  50. floe_python-0.9.0/src/floe/run/__init__.py +202 -0
  51. floe_python-0.9.0/src/floe/run/entity.py +1059 -0
  52. floe_python-0.9.0/src/floe/state.py +337 -0
  53. floe_python-0.9.0/src/floe/storage/archive.py +31 -0
  54. floe_python-0.9.0/src/floe/storage/local.py +180 -0
  55. floe_python-0.9.0/src/floe/storage/partitioning.py +126 -0
  56. floe_python-0.9.0/src/floe/storage/s3.py +220 -0
  57. floe_python-0.9.0/src/floe/storage/types.py +36 -0
  58. floe_python-0.9.0/tests/unit/checks/test_unique.py +191 -0
  59. floe_python-0.9.0/tests/unit/config/test_validate.py +453 -0
  60. floe_python-0.9.0/tests/unit/iceberg/test_catalog.py +328 -0
  61. floe_python-0.9.0/tests/unit/iceberg/test_compact.py +158 -0
  62. floe_python-0.9.0/tests/unit/iceberg/test_glue.py +185 -0
  63. floe_python-0.9.0/tests/unit/iceberg/test_write_commit_retry.py +235 -0
  64. floe_python-0.9.0/tests/unit/run/test_run.py +247 -0
  65. floe_python-0.9.0/tests/unit/run/test_run_entity.py +667 -0
  66. floe_python-0.9.0/tests/unit/run/test_run_iceberg.py +729 -0
  67. floe_python-0.9.0/tests/unit/run/test_run_parallel.py +399 -0
  68. floe_python-0.9.0/tests/unit/run/test_run_partitioning.py +371 -0
  69. floe_python-0.9.0/tests/unit/run/test_run_s3.py +539 -0
  70. floe_python-0.9.0/tests/unit/state/test_state.py +499 -0
  71. floe_python-0.9.0/tests/unit/storage/test_inputs.py +413 -0
  72. floe_python-0.9.0/tests/unit/storage/test_s3.py +125 -0
  73. floe_python-0.9.0/tests/unit/test_cli_add_entity.py +845 -0
  74. floe_python-0.9.0/tests/unit/test_manifest.py +772 -0
  75. floe_python-0.9.0/uv.lock +1808 -0
  76. floe_python-0.8.8/CHANGELOG.md +0 -1385
  77. floe_python-0.8.8/PKG-INFO +0 -15
  78. floe_python-0.8.8/conformance/config/val1_version_d21_newer_minor/config.yml +0 -18
  79. floe_python-0.8.8/conformance/config/val1_version_d21_newer_minor/expected/validate.json +0 -4
  80. floe_python-0.8.8/conformance/config/val1_version_future_major_ok/expected/validate.json +0 -4
  81. floe_python-0.8.8/conformance/manifest_run/expected/reports/report/run_ID/finance/orders/run.json +0 -144
  82. floe_python-0.8.8/conformance/manifest_run/expected/reports/report/run_ID/run.summary.json +0 -62
  83. floe_python-0.8.8/conformance/manifest_run/expected/reports/report/run_ID/sales/orders/run.json +0 -98
  84. floe_python-0.8.8/conformance/unique_pii/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -264
  85. floe_python-0.8.8/context/bump-release.md +0 -96
  86. floe_python-0.8.8/docs/config.md +0 -656
  87. floe_python-0.8.8/docs/incremental.md +0 -229
  88. floe_python-0.8.8/docs/installation.md +0 -67
  89. floe_python-0.8.8/docs/manifest.md +0 -402
  90. floe_python-0.8.8/docs/pii.md +0 -134
  91. floe_python-0.8.8/docs/profiles.md +0 -417
  92. floe_python-0.8.8/docs/sinks/iceberg.md +0 -187
  93. floe_python-0.8.8/docs/support-matrix.md +0 -102
  94. floe_python-0.8.8/orchestrators/airflow-floe/README.md +0 -103
  95. floe_python-0.8.8/orchestrators/airflow-floe/example/config.sales.yml +0 -41
  96. floe_python-0.8.8/orchestrators/airflow-floe/example/config.yml +0 -73
  97. floe_python-0.8.8/orchestrators/airflow-floe/example/manifest.airflow.json +0 -162
  98. floe_python-0.8.8/orchestrators/airflow-floe/example/manifests/hr.manifest.json +0 -141
  99. floe_python-0.8.8/orchestrators/airflow-floe/example/manifests/sales.manifest.json +0 -141
  100. floe_python-0.8.8/orchestrators/airflow-floe/pyproject.toml +0 -44
  101. floe_python-0.8.8/orchestrators/airflow-floe/src/airflow_floe/manifest.py +0 -440
  102. floe_python-0.8.8/orchestrators/airflow-floe/tests/test_manifest_loader.py +0 -161
  103. floe_python-0.8.8/orchestrators/dagster-floe/README.md +0 -235
  104. floe_python-0.8.8/orchestrators/dagster-floe/pyproject.toml +0 -60
  105. floe_python-0.8.8/orchestrators/dagster-floe/src/floe_dagster/assets.py +0 -802
  106. floe_python-0.8.8/orchestrators/dagster-floe/src/floe_dagster/manifest.py +0 -637
  107. floe_python-0.8.8/orchestrators/dagster-floe/src/floe_dagster/runner.py +0 -338
  108. floe_python-0.8.8/orchestrators/dagster-floe/src/floe_dagster/schemas/floe.manifest.schema.json +0 -1149
  109. floe_python-0.8.8/orchestrators/dagster-floe/tests/test_asset_checks.py +0 -284
  110. floe_python-0.8.8/orchestrators/dagster-floe/tests/test_assets_manifest.py +0 -685
  111. floe_python-0.8.8/orchestrators/dagster-floe/tests/test_definitions.py +0 -440
  112. floe_python-0.8.8/orchestrators/dagster-floe/tests/test_inprocess_runner.py +0 -164
  113. floe_python-0.8.8/orchestrators/dagster-floe/tests/test_manifest.py +0 -461
  114. floe_python-0.8.8/orchestrators/schemas/floe.manifest.schema.json +0 -1149
  115. floe_python-0.8.8/pyproject.toml +0 -55
  116. floe_python-0.8.8/schemas/profile.schema.yaml +0 -656
  117. floe_python-0.8.8/scripts/test_config_schema.py +0 -1443
  118. floe_python-0.8.8/src/floe/checks/unique.py +0 -297
  119. floe_python-0.8.8/src/floe/config/profile.py +0 -447
  120. floe_python-0.8.8/src/floe/iceberg/catalog.py +0 -399
  121. floe_python-0.8.8/src/floe/iceberg/compact.py +0 -139
  122. floe_python-0.8.8/src/floe/iceberg/sink.py +0 -225
  123. floe_python-0.8.8/src/floe/iceberg/write.py +0 -271
  124. floe_python-0.8.8/src/floe/manifest.py +0 -522
  125. floe_python-0.8.8/src/floe/run/__init__.py +0 -198
  126. floe_python-0.8.8/src/floe/run/entity.py +0 -1036
  127. floe_python-0.8.8/src/floe/state.py +0 -311
  128. floe_python-0.8.8/src/floe/storage/archive.py +0 -31
  129. floe_python-0.8.8/src/floe/storage/local.py +0 -176
  130. floe_python-0.8.8/src/floe/storage/partitioning.py +0 -116
  131. floe_python-0.8.8/src/floe/storage/s3.py +0 -190
  132. floe_python-0.8.8/src/floe/storage/types.py +0 -33
  133. floe_python-0.8.8/tests/unit/checks/test_unique.py +0 -185
  134. floe_python-0.8.8/tests/unit/config/test_validate.py +0 -453
  135. floe_python-0.8.8/tests/unit/iceberg/test_catalog.py +0 -267
  136. floe_python-0.8.8/tests/unit/iceberg/test_compact.py +0 -138
  137. floe_python-0.8.8/tests/unit/iceberg/test_glue.py +0 -181
  138. floe_python-0.8.8/tests/unit/iceberg/test_write_commit_retry.py +0 -210
  139. floe_python-0.8.8/tests/unit/run/test_run.py +0 -231
  140. floe_python-0.8.8/tests/unit/run/test_run_entity.py +0 -638
  141. floe_python-0.8.8/tests/unit/run/test_run_iceberg.py +0 -709
  142. floe_python-0.8.8/tests/unit/run/test_run_parallel.py +0 -358
  143. floe_python-0.8.8/tests/unit/run/test_run_partitioning.py +0 -332
  144. floe_python-0.8.8/tests/unit/run/test_run_s3.py +0 -512
  145. floe_python-0.8.8/tests/unit/state/test_state.py +0 -482
  146. floe_python-0.8.8/tests/unit/storage/test_inputs.py +0 -410
  147. floe_python-0.8.8/tests/unit/storage/test_s3.py +0 -102
  148. floe_python-0.8.8/tests/unit/test_cli_add_entity.py +0 -845
  149. floe_python-0.8.8/tests/unit/test_manifest.py +0 -724
  150. floe_python-0.8.8/uv.lock +0 -1808
  151. {floe_python-0.8.8 → floe_python-0.9.0}/.dockerignore +0 -0
  152. {floe_python-0.8.8 → floe_python-0.9.0}/.gitattributes +0 -0
  153. {floe_python-0.8.8 → floe_python-0.9.0}/.github/DISCUSSION_TEMPLATE/onboarding.md +0 -0
  154. {floe_python-0.8.8 → floe_python-0.9.0}/.github/ISSUE_TEMPLATE/bugfix.md +0 -0
  155. {floe_python-0.8.8 → floe_python-0.9.0}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  156. {floe_python-0.8.8 → floe_python-0.9.0}/.github/ISSUE_TEMPLATE/task.md +0 -0
  157. {floe_python-0.8.8 → floe_python-0.9.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  158. {floe_python-0.8.8 → floe_python-0.9.0}/.github/dependabot.yml +0 -0
  159. {floe_python-0.8.8 → floe_python-0.9.0}/.github/release.md +0 -0
  160. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/airflow-floe.yml +0 -0
  161. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/ci.yml +0 -0
  162. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/coverage-python.yml +0 -0
  163. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/dagster-floe.yml +0 -0
  164. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/orchestrator-drift.yml +0 -0
  165. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/pr-size.yml +0 -0
  166. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/python-image.yml +0 -0
  167. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/python-integration.yml +0 -0
  168. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/release-airflow-floe.yml +0 -0
  169. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/release-dagster-floe.yml +0 -0
  170. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/release.yml +0 -0
  171. {floe_python-0.8.8 → floe_python-0.9.0}/.github/workflows/supply-chain.yml +0 -0
  172. {floe_python-0.8.8 → floe_python-0.9.0}/.gitignore +0 -0
  173. {floe_python-0.8.8 → floe_python-0.9.0}/AGENTS.md +0 -0
  174. {floe_python-0.8.8 → floe_python-0.9.0}/CLAUDE.md +0 -0
  175. {floe_python-0.8.8 → floe_python-0.9.0}/CONTRIBUTING.md +0 -0
  176. {floe_python-0.8.8 → floe_python-0.9.0}/Dockerfile.python +0 -0
  177. {floe_python-0.8.8 → floe_python-0.9.0}/LICENSE +0 -0
  178. {floe_python-0.8.8 → floe_python-0.9.0}/README.md +0 -0
  179. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/ARCHIVE.md +0 -0
  180. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/README.md +0 -0
  181. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/archive_mode/config.yml +0 -0
  182. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/archive_mode/expected/accepted/orders.parquet +0 -0
  183. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/archive_mode/expected/rejected/orders/a.csv +0 -0
  184. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/archive_mode/expected/rejected/orders/part-00000.csv +0 -0
  185. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/archive_mode/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  186. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/archive_mode/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -0
  187. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/archive_mode/in/a.csv +0 -0
  188. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/archive_mode/in/b.csv +0 -0
  189. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/avro_read/config.yml +0 -0
  190. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/avro_read/expected/accepted/avro_read.parquet +0 -0
  191. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/avro_read/expected/manifest.json +0 -0
  192. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/avro_read/expected/rejected/avro_read/part-00000.csv +0 -0
  193. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/avro_read/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  194. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/avro_read/expected/reports/report/spike/run_ID/spike/avro_read/run.json +0 -0
  195. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/avro_read/in/avro_read.avro +0 -0
  196. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/cast_error_with_source/config.yml +0 -0
  197. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/cast_error_with_source/expected/accepted/orders.parquet +0 -0
  198. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/cast_error_with_source/expected/manifest.json +0 -0
  199. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/cast_error_with_source/expected/rejected/orders/part-00000.csv +0 -0
  200. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/cast_error_with_source/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  201. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/cast_error_with_source/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -0
  202. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/cast_error_with_source/in/orders.csv +0 -0
  203. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts/README.md +0 -0
  204. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts/config.yml +0 -0
  205. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts/expected/accepted/casts.parquet +0 -0
  206. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts/expected/manifest.json +0 -0
  207. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts/expected/rejected/casts/part-00000.csv +0 -0
  208. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  209. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts/expected/reports/report/spike/run_ID/spike/casts/run.json +0 -0
  210. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts/in/casts.csv +0 -0
  211. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_coerce/README.md +0 -0
  212. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_coerce/config.yml +0 -0
  213. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_coerce/expected/accepted/casts_coerce.parquet +0 -0
  214. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_coerce/expected/manifest.json +0 -0
  215. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_coerce/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  216. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_coerce/expected/reports/report/spike/run_ID/spike/casts_coerce/run.json +0 -0
  217. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_coerce/in/casts_coerce.csv +0 -0
  218. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_date/README.md +0 -0
  219. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_date/config.yml +0 -0
  220. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_date/expected/accepted/casts_date.parquet +0 -0
  221. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_date/expected/manifest.json +0 -0
  222. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_date/expected/rejected/casts_date/part-00000.csv +0 -0
  223. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_date/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  224. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_date/expected/reports/report/spike/run_ID/spike/casts_date/run.json +0 -0
  225. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_date/in/casts_date.csv +0 -0
  226. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_datetime/README.md +0 -0
  227. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_datetime/config.yml +0 -0
  228. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_datetime/expected/accepted/casts_datetime.parquet +0 -0
  229. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_datetime/expected/manifest.json +0 -0
  230. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_datetime/expected/rejected/casts_datetime/part-00000.csv +0 -0
  231. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_datetime/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  232. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_datetime/expected/reports/report/spike/run_ID/spike/casts_datetime/run.json +0 -0
  233. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_datetime/in/casts_datetime.csv +0 -0
  234. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/README.md +0 -0
  235. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/config.yml +0 -0
  236. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_boolean.parquet +0 -0
  237. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_date.parquet +0 -0
  238. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_datetime.parquet +0 -0
  239. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_float32.parquet +0 -0
  240. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_float64.parquet +0 -0
  241. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_int32.parquet +0 -0
  242. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_int64.parquet +0 -0
  243. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_int8.parquet +0 -0
  244. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_string.parquet +0 -0
  245. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_uint32.parquet +0 -0
  246. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/accepted/typed_uint64.parquet +0 -0
  247. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/manifest.json +0 -0
  248. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/rejected/typed_date/part-00000.csv +0 -0
  249. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/rejected/typed_datetime/part-00000.csv +0 -0
  250. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/rejected/typed_int32/part-00000.csv +0 -0
  251. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/rejected/typed_int64/part-00000.csv +0 -0
  252. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/rejected/typed_int8/part-00000.csv +0 -0
  253. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/rejected/typed_uint32/part-00000.csv +0 -0
  254. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/rejected/typed_uint64/part-00000.csv +0 -0
  255. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  256. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_boolean/run.json +0 -0
  257. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_date/run.json +0 -0
  258. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_datetime/run.json +0 -0
  259. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_float32/run.json +0 -0
  260. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_float64/run.json +0 -0
  261. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_int32/run.json +0 -0
  262. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_int64/run.json +0 -0
  263. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_int8/run.json +0 -0
  264. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_string/run.json +0 -0
  265. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_uint32/run.json +0 -0
  266. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/expected/reports/report/spike/run_ID/spike/typed_uint64/run.json +0 -0
  267. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/casts_typed/in/casts_typed.parquet +0 -0
  268. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/check.py +0 -0
  269. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/README.md +0 -0
  270. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_catalog_glue/config.yml +0 -0
  271. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_catalog_glue/expected/validate.json +0 -0
  272. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_catalog_unity/config.yml +0 -0
  273. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_catalog_unity/expected/validate.json +0 -0
  274. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_sink_delta/config.yml +0 -0
  275. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_sink_delta/expected/validate.json +0 -0
  276. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_sink_duckdb/config.yml +0 -0
  277. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_sink_duckdb/expected/validate.json +0 -0
  278. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_avro/config.yml +0 -0
  279. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_avro/expected/manifest.json +0 -0
  280. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_avro/expected/validate.json +0 -0
  281. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_fixed/config.yml +0 -0
  282. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_fixed/expected/validate.json +0 -0
  283. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_orc/config.yml +0 -0
  284. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_orc/expected/manifest.json +0 -0
  285. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_orc/expected/validate.json +0 -0
  286. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_xlsx/config.yml +0 -0
  287. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_xlsx/expected/manifest.json +0 -0
  288. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_xlsx/expected/validate.json +0 -0
  289. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_xml/config.yml +0 -0
  290. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_xml/expected/manifest.json +0 -0
  291. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_source_xml/expected/validate.json +0 -0
  292. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_storage_adls/config.yml +0 -0
  293. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_storage_adls/expected/validate.json +0 -0
  294. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_storage_gcs/config.yml +0 -0
  295. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/d1_storage_gcs/expected/validate.json +0 -0
  296. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S1/config.yml +0 -0
  297. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S1/expected/validate.json +0 -0
  298. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S10/config.yml +0 -0
  299. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S10/expected/validate.json +0 -0
  300. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S10_ctrl/config.yml +0 -0
  301. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S10_ctrl/expected/validate.json +0 -0
  302. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S11/config.yml +0 -0
  303. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S11/expected/validate.json +0 -0
  304. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S11_ctrl/config.yml +0 -0
  305. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S11_ctrl/expected/validate.json +0 -0
  306. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S12/config.yml +0 -0
  307. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S12/expected/validate.json +0 -0
  308. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S12_ctrl/config.yml +0 -0
  309. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S12_ctrl/expected/validate.json +0 -0
  310. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S13/config.yml +0 -0
  311. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S13/expected/validate.json +0 -0
  312. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S13_ctrl/config.yml +0 -0
  313. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S13_ctrl/expected/manifest.json +0 -0
  314. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S13_ctrl/expected/validate.json +0 -0
  315. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14a/config.yml +0 -0
  316. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14a/expected/validate.json +0 -0
  317. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14a_ctrl_csv/config.yml +0 -0
  318. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14a_ctrl_csv/expected/manifest.json +0 -0
  319. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14a_ctrl_csv/expected/validate.json +0 -0
  320. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14a_ctrl_json/config.yml +0 -0
  321. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14a_ctrl_json/expected/manifest.json +0 -0
  322. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14a_ctrl_json/expected/validate.json +0 -0
  323. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14b/config.yml +0 -0
  324. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14b/expected/validate.json +0 -0
  325. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14b_ctrl/config.yml +0 -0
  326. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14b_ctrl/expected/manifest.json +0 -0
  327. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S14b_ctrl/expected/validate.json +0 -0
  328. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S15/config.yml +0 -0
  329. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S15/expected/validate.json +0 -0
  330. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S15_ctrl/config.yml +0 -0
  331. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S15_ctrl/expected/manifest.json +0 -0
  332. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S15_ctrl/expected/validate.json +0 -0
  333. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16a/config.yml +0 -0
  334. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16a/expected/validate.json +0 -0
  335. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16a_ctrl/config.yml +0 -0
  336. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16a_ctrl/expected/manifest.json +0 -0
  337. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16a_ctrl/expected/validate.json +0 -0
  338. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16b/config.yml +0 -0
  339. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16b/expected/validate.json +0 -0
  340. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16b_ctrl/config.yml +0 -0
  341. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16b_ctrl/expected/manifest.json +0 -0
  342. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S16b_ctrl/expected/validate.json +0 -0
  343. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S17/config.yml +0 -0
  344. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S17/expected/validate.json +0 -0
  345. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S17_ctrl/config.yml +0 -0
  346. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S17_ctrl/expected/validate.json +0 -0
  347. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S18/config.yml +0 -0
  348. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S18/expected/validate.json +0 -0
  349. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S18/profile.yml +0 -0
  350. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S18_ctrl/config.yml +0 -0
  351. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S18_ctrl/expected/validate.json +0 -0
  352. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S18_ctrl/profile.yml +0 -0
  353. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S19/config.yml +0 -0
  354. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S19/expected/validate.json +0 -0
  355. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S19/profile.yml +0 -0
  356. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S19_ctrl/config.yml +0 -0
  357. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S19_ctrl/expected/validate.json +0 -0
  358. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S19_ctrl/profile.yml +0 -0
  359. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S1_ctrl/config.yml +0 -0
  360. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S1_ctrl/expected/manifest.json +0 -0
  361. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S1_ctrl/expected/validate.json +0 -0
  362. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S2/config.yml +0 -0
  363. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S2/expected/validate.json +0 -0
  364. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S20/config.yml +0 -0
  365. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S20/expected/validate.json +0 -0
  366. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S20/profile.yml +0 -0
  367. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S20_ctrl/config.yml +0 -0
  368. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S20_ctrl/expected/validate.json +0 -0
  369. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S20_ctrl/profile.yml +0 -0
  370. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S21/config.yml +0 -0
  371. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S21/expected/validate.json +0 -0
  372. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S21/profile.yml +0 -0
  373. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S21_ctrl/config.yml +0 -0
  374. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S21_ctrl/expected/validate.json +0 -0
  375. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S21_ctrl/profile.yml +0 -0
  376. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22a/config.yml +0 -0
  377. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22a/expected/validate.json +0 -0
  378. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22a/profile.yml +0 -0
  379. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22a_ctrl/config.yml +0 -0
  380. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22a_ctrl/expected/validate.json +0 -0
  381. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22a_ctrl/profile.yml +0 -0
  382. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22b/config.yml +0 -0
  383. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22b/expected/validate.json +0 -0
  384. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22b/profile.yml +0 -0
  385. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22b_ctrl/config.yml +0 -0
  386. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22b_ctrl/expected/validate.json +0 -0
  387. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S22b_ctrl/profile.yml +0 -0
  388. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S23/config.yml +0 -0
  389. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S23/expected/validate.json +0 -0
  390. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S23/profile.yml +0 -0
  391. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S23_ctrl/config.yml +0 -0
  392. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S23_ctrl/expected/validate.json +0 -0
  393. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S23_ctrl/profile.yml +0 -0
  394. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S24/config.yml +0 -0
  395. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S24/expected/validate.json +0 -0
  396. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S24/profile.yml +0 -0
  397. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S24_ctrl/config.yml +0 -0
  398. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S24_ctrl/expected/validate.json +0 -0
  399. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S24_ctrl/profile.yml +0 -0
  400. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S25/config.yml +0 -0
  401. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S25/expected/validate.json +0 -0
  402. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S25/profile.yml +0 -0
  403. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S25_ctrl/config.yml +0 -0
  404. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S25_ctrl/expected/validate.json +0 -0
  405. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S25_ctrl/profile.yml +0 -0
  406. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S26/config.yml +0 -0
  407. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S26/expected/validate.json +0 -0
  408. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S26/profile.yml +0 -0
  409. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S26_ctrl/config.yml +0 -0
  410. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S26_ctrl/expected/validate.json +0 -0
  411. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S26_ctrl/profile.yml +0 -0
  412. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S27/config.yml +0 -0
  413. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S27/expected/validate.json +0 -0
  414. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S27/profile.yml +0 -0
  415. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S27_ctrl/config.yml +0 -0
  416. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S27_ctrl/expected/validate.json +0 -0
  417. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S27_ctrl/profile.yml +0 -0
  418. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S28/config.yml +0 -0
  419. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S28/expected/validate.json +0 -0
  420. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S28/profile.yml +0 -0
  421. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S28_ctrl/config.yml +0 -0
  422. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S28_ctrl/expected/validate.json +0 -0
  423. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S28_ctrl/profile.yml +0 -0
  424. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S29/config.yml +0 -0
  425. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S29/expected/validate.json +0 -0
  426. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S29/profile.yml +0 -0
  427. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S29_ctrl/config.yml +0 -0
  428. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S29_ctrl/expected/validate.json +0 -0
  429. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S29_ctrl/profile.yml +0 -0
  430. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S2_ctrl/config.yml +0 -0
  431. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S2_ctrl/expected/manifest.json +0 -0
  432. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S2_ctrl/expected/validate.json +0 -0
  433. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S3/config.yml +0 -0
  434. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S3/expected/validate.json +0 -0
  435. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S30/config.yml +0 -0
  436. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S30/expected/validate.json +0 -0
  437. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S30/profile.yml +0 -0
  438. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S30_ctrl/config.yml +0 -0
  439. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S30_ctrl/expected/validate.json +0 -0
  440. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S30_ctrl/profile.yml +0 -0
  441. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31a/config.yml +0 -0
  442. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31a/expected/validate.json +0 -0
  443. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31a/profile.yml +0 -0
  444. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31a_ctrl/config.yml +0 -0
  445. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31a_ctrl/expected/validate.json +0 -0
  446. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31a_ctrl/profile.yml +0 -0
  447. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31b/config.yml +0 -0
  448. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31b/expected/validate.json +0 -0
  449. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31b/profile.yml +0 -0
  450. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31b_ctrl/config.yml +0 -0
  451. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31b_ctrl/expected/validate.json +0 -0
  452. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S31b_ctrl/profile.yml +0 -0
  453. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S32/config.yml +0 -0
  454. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S32/expected/validate.json +0 -0
  455. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S32/profile.yml +0 -0
  456. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S32_ctrl/config.yml +0 -0
  457. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S32_ctrl/expected/validate.json +0 -0
  458. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S32_ctrl/profile.yml +0 -0
  459. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S3_ctrl/config.yml +0 -0
  460. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S3_ctrl/expected/manifest.json +0 -0
  461. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S3_ctrl/expected/validate.json +0 -0
  462. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S4/config.yml +0 -0
  463. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S4/expected/validate.json +0 -0
  464. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S4_ctrl/config.yml +0 -0
  465. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S4_ctrl/expected/manifest.json +0 -0
  466. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S4_ctrl/expected/validate.json +0 -0
  467. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S5/config.yml +0 -0
  468. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S5/expected/validate.json +0 -0
  469. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S5_ctrl/config.yml +0 -0
  470. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S5_ctrl/expected/manifest.json +0 -0
  471. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S5_ctrl/expected/validate.json +0 -0
  472. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S6/config.yml +0 -0
  473. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S6/expected/validate.json +0 -0
  474. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S6_ctrl/config.yml +0 -0
  475. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S6_ctrl/expected/manifest.json +0 -0
  476. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S6_ctrl/expected/validate.json +0 -0
  477. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7_ctrl/config.yml +0 -0
  478. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7_ctrl/domains/finance/_domain.yml +0 -0
  479. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7_ctrl/domains/finance/accounts.yml +0 -0
  480. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7_ctrl/domains/sales/_domain.yml +0 -0
  481. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7_ctrl/domains/sales/accounts.yml +0 -0
  482. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7_ctrl/expected/manifest.json +0 -0
  483. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7_ctrl/expected/validate.json +0 -0
  484. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7_ctrl/sources.yml +0 -0
  485. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7a/config.yml +0 -0
  486. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7a/domains/finance/_domain.yml +0 -0
  487. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7a/domains/finance/accounts.yml +0 -0
  488. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7a/domains/sales/_domain.yml +0 -0
  489. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7a/domains/sales/accounts.yml +0 -0
  490. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7a/expected/validate.json +0 -0
  491. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7a/sources.yml +0 -0
  492. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7b/config.yml +0 -0
  493. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7b/domains/finance/_domain.yml +0 -0
  494. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7b/domains/finance/accounts.yml +0 -0
  495. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7b/domains/sales/_domain.yml +0 -0
  496. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7b/domains/sales/accounts.yml +0 -0
  497. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7b/expected/validate.json +0 -0
  498. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7b/sources.yml +0 -0
  499. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7c/config.yml +0 -0
  500. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7c/domains/finance/_domain.yml +0 -0
  501. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7c/domains/finance/accounts.yml +0 -0
  502. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7c/domains/sales/_domain.yml +0 -0
  503. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7c/domains/sales/accounts.yml +0 -0
  504. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7c/expected/validate.json +0 -0
  505. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S7c/sources.yml +0 -0
  506. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S8/config.yml +0 -0
  507. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S8/expected/validate.json +0 -0
  508. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S8_ctrl/config.yml +0 -0
  509. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S8_ctrl/expected/manifest.json +0 -0
  510. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S8_ctrl/expected/validate.json +0 -0
  511. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S9/config.yml +0 -0
  512. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S9/expected/validate.json +0 -0
  513. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S9_ctrl/config.yml +0 -0
  514. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S9_ctrl/expected/manifest.json +0 -0
  515. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/div_S9_ctrl/expected/validate.json +0 -0
  516. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_config_yml/config.yml +0 -0
  517. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_config_yml/expected/validate.json +0 -0
  518. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_profile_dev/config.yml +0 -0
  519. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_profile_dev/expected/validate.json +0 -0
  520. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_profile_dev/profile.yml +0 -0
  521. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_profile_prod/config.yml +0 -0
  522. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_profile_prod/expected/validate.json +0 -0
  523. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_profile_prod/profile.yml +0 -0
  524. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_profile_uat/config.yml +0 -0
  525. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_profile_uat/expected/validate.json +0 -0
  526. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_profile_uat/profile.yml +0 -0
  527. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_project/config.yml +0 -0
  528. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_project/domains/finance/_domain.yml +0 -0
  529. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_project/domains/finance/accounts.yml +0 -0
  530. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_project/domains/sales/_domain.yml +0 -0
  531. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_project/domains/sales/accounts.yml +0 -0
  532. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_project/expected/manifest.json +0 -0
  533. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_project/expected/validate.json +0 -0
  534. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_project/sources.yml +0 -0
  535. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_standalone/config.yml +0 -0
  536. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_standalone/expected/manifest.json +0 -0
  537. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/example_standalone/expected/validate.json +0 -0
  538. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_fields/config.yml +0 -0
  539. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_fields/expected/manifest.json +0 -0
  540. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_fields/expected/validate.json +0 -0
  541. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_registries/config.yml +0 -0
  542. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_registries/domains/hr/_domain.yml +0 -0
  543. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_registries/domains/hr/people.yml +0 -0
  544. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_registries/domains/sales/_domain.yml +0 -0
  545. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_registries/domains/sales/orders.yml +0 -0
  546. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_registries/expected/manifest.json +0 -0
  547. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/manifest_registries/expected/validate.json +0 -0
  548. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_catalogs_definition_wrapper/config.yml +0 -0
  549. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_catalogs_definition_wrapper/expected/validate.json +0 -0
  550. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_catalogs_missing_definitions/config.yml +0 -0
  551. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_catalogs_missing_definitions/expected/validate.json +0 -0
  552. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_catalogs_type_unsupported/config.yml +0 -0
  553. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_catalogs_type_unsupported/expected/validate.json +0 -0
  554. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d28_date_column_missing/config.yml +0 -0
  555. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d28_date_column_missing/expected/validate.json +0 -0
  556. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d28_named_source_ok/config.yml +0 -0
  557. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d28_named_source_ok/expected/validate.json +0 -0
  558. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d28_unknown_key/config.yml +0 -0
  559. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d28_unknown_key/expected/validate.json +0 -0
  560. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d30_lookback_days_negative/config.yml +0 -0
  561. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d30_lookback_days_negative/expected/validate.json +0 -0
  562. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d30_lookback_days_ok/config.yml +0 -0
  563. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_d30_lookback_days_ok/expected/validate.json +0 -0
  564. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_drops_schema_columns_and_primary_key/config.yml +0 -0
  565. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_drops_schema_columns_and_primary_key/expected/validate.json +0 -0
  566. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_entity_overrides/config.yml +0 -0
  567. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_entity_overrides/expected/manifest.json +0 -0
  568. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_entity_overrides/expected/validate.json +0 -0
  569. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_inherit_error_prefix/config.yml +0 -0
  570. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_inherit_error_prefix/domains/sales/_domain.yml +0 -0
  571. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_inherit_error_prefix/domains/sales/orders.yml +0 -0
  572. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_inherit_error_prefix/expected/validate.json +0 -0
  573. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_merge_ok/config.yml +0 -0
  574. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_merge_ok/expected/manifest.json +0 -0
  575. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_merge_ok/expected/validate.json +0 -0
  576. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_not_a_map/config.yml +0 -0
  577. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_not_a_map/expected/validate.json +0 -0
  578. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_requires_0_3/config.yml +0 -0
  579. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_defaults_requires_0_3/expected/validate.json +0 -0
  580. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_duplicate_name/config.yml +0 -0
  581. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_duplicate_name/expected/validate.json +0 -0
  582. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_incoming_dir_optional_from_0_3/config.yml +0 -0
  583. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_incoming_dir_optional_from_0_3/expected/manifest.json +0 -0
  584. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_incoming_dir_optional_from_0_3/expected/validate.json +0 -0
  585. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_missing_incoming_dir_before_0_3/config.yml +0 -0
  586. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_missing_incoming_dir_before_0_3/expected/validate.json +0 -0
  587. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_missing_name/config.yml +0 -0
  588. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_missing_name/expected/validate.json +0 -0
  589. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_not_array/config.yml +0 -0
  590. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_not_array/expected/validate.json +0 -0
  591. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_unknown_key/config.yml +0 -0
  592. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_domains_unknown_key/expected/validate.json +0 -0
  593. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_entity_unknown_domain/config.yml +0 -0
  594. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_entity_unknown_domain/expected/validate.json +0 -0
  595. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_entity_without_name/config.yml +0 -0
  596. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_entity_without_name/expected/validate.json +0 -0
  597. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_empty/config.yml +0 -0
  598. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_empty/env.yml +0 -0
  599. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_empty/expected/validate.json +0 -0
  600. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_missing/config.yml +0 -0
  601. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_missing/expected/validate.json +0 -0
  602. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_not_a_map/config.yml +0 -0
  603. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_not_a_map/env.yml +0 -0
  604. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_not_a_map/expected/validate.json +0 -0
  605. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_ok/config.yml +0 -0
  606. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_ok/env.yml +0 -0
  607. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_ok/expected/manifest.json +0 -0
  608. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_ok/expected/validate.json +0 -0
  609. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_value_not_string/config.yml +0 -0
  610. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_value_not_string/env.yml +0 -0
  611. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_file_value_not_string/expected/validate.json +0 -0
  612. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_not_a_map/config.yml +0 -0
  613. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_not_a_map/expected/validate.json +0 -0
  614. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_unknown_key/config.yml +0 -0
  615. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_unknown_key/expected/validate.json +0 -0
  616. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_not_a_map/config.yml +0 -0
  617. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_not_a_map/expected/validate.json +0 -0
  618. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_ok/config.yml +0 -0
  619. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_ok/expected/manifest.json +0 -0
  620. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_ok/expected/validate.json +0 -0
  621. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_override_file/config.yml +0 -0
  622. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_override_file/env.yml +0 -0
  623. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_override_file/expected/manifest.json +0 -0
  624. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_override_file/expected/validate.json +0 -0
  625. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_value_not_string/config.yml +0 -0
  626. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_env_vars_value_not_string/expected/validate.json +0 -0
  627. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_expected_boolean/config.yml +0 -0
  628. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_expected_boolean/expected/validate.json +0 -0
  629. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_expected_integer/config.yml +0 -0
  630. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_expected_integer/expected/validate.json +0 -0
  631. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_expected_positive_integer/config.yml +0 -0
  632. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_expected_positive_integer/expected/validate.json +0 -0
  633. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_filesystems_alias_ok/config.yml +0 -0
  634. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_filesystems_alias_ok/expected/manifest.json +0 -0
  635. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_filesystems_alias_ok/expected/validate.json +0 -0
  636. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_empty/config.yml +0 -0
  637. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_empty/domains/sales/_domain.yml +0 -0
  638. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_empty/domains/sales/orders.yml +0 -0
  639. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_empty/expected/validate.json +0 -0
  640. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_missing_name/config.yml +0 -0
  641. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_missing_name/domains/sales/_domain.yml +0 -0
  642. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_missing_name/domains/sales/orders.yml +0 -0
  643. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_missing_name/expected/validate.json +0 -0
  644. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_not_a_map/config.yml +0 -0
  645. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_not_a_map/domains/sales/_domain.yml +0 -0
  646. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_not_a_map/domains/sales/orders.yml +0 -0
  647. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_not_a_map/expected/validate.json +0 -0
  648. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_syntax_error/config.yml +0 -0
  649. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_syntax_error/domains/sales/_domain.yml +0 -0
  650. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_syntax_error/domains/sales/orders.yml +0 -0
  651. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domain_file_syntax_error/expected/validate.json +0 -0
  652. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_no_match/config.yml +0 -0
  653. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_no_match/domains/sales/_domain.yml +0 -0
  654. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_no_match/domains/sales/orders.yml +0 -0
  655. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_no_match/expected/validate.json +0 -0
  656. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_not_array/config.yml +0 -0
  657. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_not_array/domains/sales/_domain.yml +0 -0
  658. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_not_array/domains/sales/orders.yml +0 -0
  659. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_not_array/expected/validate.json +0 -0
  660. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_pattern_not_string/config.yml +0 -0
  661. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_pattern_not_string/domains/sales/_domain.yml +0 -0
  662. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_pattern_not_string/domains/sales/orders.yml +0 -0
  663. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_domains_pattern_not_string/expected/validate.json +0 -0
  664. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entities_array_conflict/config.yml +0 -0
  665. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entities_array_conflict/domains/sales/_domain.yml +0 -0
  666. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entities_array_conflict/domains/sales/orders.yml +0 -0
  667. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entities_array_conflict/expected/validate.json +0 -0
  668. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_matches/config.yml +0 -0
  669. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_matches/domains/sales/_domain.yml +0 -0
  670. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_matches/domains/sales/orders.yml +0 -0
  671. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_matches/expected/manifest.json +0 -0
  672. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_matches/expected/validate.json +0 -0
  673. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_mismatch/config.yml +0 -0
  674. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_mismatch/domains/sales/_domain.yml +0 -0
  675. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_mismatch/domains/sales/orders.yml +0 -0
  676. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_mismatch/expected/validate.json +0 -0
  677. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_not_string/config.yml +0 -0
  678. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_not_string/domains/sales/_domain.yml +0 -0
  679. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_not_string/domains/sales/orders.yml +0 -0
  680. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_domain_not_string/expected/validate.json +0 -0
  681. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_error_names_file/config.yml +0 -0
  682. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_error_names_file/domains/sales/_domain.yml +0 -0
  683. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_error_names_file/domains/sales/orders.yml +0 -0
  684. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_error_names_file/expected/validate.json +0 -0
  685. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_not_a_map/config.yml +0 -0
  686. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_not_a_map/domains/sales/_domain.yml +0 -0
  687. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_not_a_map/domains/sales/orders.yml +0 -0
  688. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_entity_file_not_a_map/expected/validate.json +0 -0
  689. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_glob_pattern_invalid/config.yml +0 -0
  690. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_glob_pattern_invalid/domains/sales/_domain.yml +0 -0
  691. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_glob_pattern_invalid/domains/sales/orders.yml +0 -0
  692. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_glob_pattern_invalid/expected/validate.json +0 -0
  693. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_missing_domains/config.yml +0 -0
  694. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_missing_domains/domains/sales/_domain.yml +0 -0
  695. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_missing_domains/domains/sales/orders.yml +0 -0
  696. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_missing_domains/expected/validate.json +0 -0
  697. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_missing_version/config.yml +0 -0
  698. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_missing_version/domains/sales/_domain.yml +0 -0
  699. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_missing_version/domains/sales/orders.yml +0 -0
  700. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_missing_version/expected/validate.json +0 -0
  701. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_not_a_map/config.yml +0 -0
  702. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_not_a_map/domains/sales/_domain.yml +0 -0
  703. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_not_a_map/domains/sales/orders.yml +0 -0
  704. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_not_a_map/expected/validate.json +0 -0
  705. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_ok/config.yml +0 -0
  706. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_ok/domains/sales/_domain.yml +0 -0
  707. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_ok/domains/sales/orders.yml +0 -0
  708. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_ok/expected/manifest.json +0 -0
  709. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_ok/expected/validate.json +0 -0
  710. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_requires_version_0_3/config.yml +0 -0
  711. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_requires_version_0_3/domains/sales/_domain.yml +0 -0
  712. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_requires_version_0_3/domains/sales/orders.yml +0 -0
  713. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_requires_version_0_3/expected/validate.json +0 -0
  714. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_root_entities_not_array/config.yml +0 -0
  715. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_root_entities_not_array/domains/sales/_domain.yml +0 -0
  716. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_root_entities_not_array/domains/sales/orders.yml +0 -0
  717. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_root_entities_not_array/expected/validate.json +0 -0
  718. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sibling_non_yml_ignored/config.yml +0 -0
  719. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sibling_non_yml_ignored/domains/sales/_domain.yml +0 -0
  720. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sibling_non_yml_ignored/domains/sales/notes.txt +0 -0
  721. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sibling_non_yml_ignored/domains/sales/orders.yml +0 -0
  722. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sibling_non_yml_ignored/expected/manifest.json +0 -0
  723. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sibling_non_yml_ignored/expected/validate.json +0 -0
  724. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_source_ref_error_names_files/config.yml +0 -0
  725. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_source_ref_error_names_files/domains/sales/_domain.yml +0 -0
  726. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_source_ref_error_names_files/domains/sales/orders.yml +0 -0
  727. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_source_ref_error_names_files/expected/validate.json +0 -0
  728. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_source_ref_error_names_files/sources.yml +0 -0
  729. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_and_root_sources/config.yml +0 -0
  730. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_and_root_sources/expected/validate.json +0 -0
  731. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_and_root_sources/sources.yml +0 -0
  732. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_empty/config.yml +0 -0
  733. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_empty/expected/validate.json +0 -0
  734. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_empty/sources.yml +0 -0
  735. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_missing/config.yml +0 -0
  736. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_missing/expected/validate.json +0 -0
  737. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_missing_sources/config.yml +0 -0
  738. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_missing_sources/expected/validate.json +0 -0
  739. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_missing_sources/sources.yml +0 -0
  740. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_unknown_key/config.yml +0 -0
  741. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_unknown_key/expected/validate.json +0 -0
  742. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_file_unknown_key/sources.yml +0 -0
  743. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_only_no_entities/config.yml +0 -0
  744. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_only_no_entities/expected/validate.json +0 -0
  745. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_only_no_entities/sources.yml +0 -0
  746. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_path_not_string/config.yml +0 -0
  747. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_path_not_string/expected/validate.json +0 -0
  748. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_with_domains/config.yml +0 -0
  749. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_with_domains/domains/sales/_domain.yml +0 -0
  750. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_with_domains/domains/sales/orders.yml +0 -0
  751. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_with_domains/expected/manifest.json +0 -0
  752. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_with_domains/expected/validate.json +0 -0
  753. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_sources_with_domains/sources.yml +0 -0
  754. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_unknown_key/config.yml +0 -0
  755. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_unknown_key/domains/sales/_domain.yml +0 -0
  756. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_unknown_key/domains/sales/orders.yml +0 -0
  757. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_include_unknown_key/expected/validate.json +0 -0
  758. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_incremental_mode_case_insensitive/config.yml +0 -0
  759. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_incremental_mode_case_insensitive/expected/manifest.json +0 -0
  760. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_incremental_mode_case_insensitive/expected/validate.json +0 -0
  761. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_incremental_mode_unsupported/config.yml +0 -0
  762. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_incremental_mode_unsupported/expected/validate.json +0 -0
  763. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_integer_exceeds_u32/config.yml +0 -0
  764. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_integer_exceeds_u32/expected/validate.json +0 -0
  765. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_integer_u32_max_ok/config.yml +0 -0
  766. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_integer_u32_max_ok/expected/manifest.json +0 -0
  767. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_integer_u32_max_ok/expected/validate.json +0 -0
  768. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_lineage_missing_url/config.yml +0 -0
  769. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_lineage_missing_url/expected/validate.json +0 -0
  770. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_missing_entities/config.yml +0 -0
  771. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_missing_entities/expected/validate.json +0 -0
  772. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_missing_entity_source/config.yml +0 -0
  773. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_missing_entity_source/expected/validate.json +0 -0
  774. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_missing_version/config.yml +0 -0
  775. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_missing_version/expected/validate.json +0 -0
  776. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_pii_column_wrapper/config.yml +0 -0
  777. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_pii_column_wrapper/expected/validate.json +0 -0
  778. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_pii_strategy_unsupported/config.yml +0 -0
  779. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_pii_strategy_unsupported/expected/validate.json +0 -0
  780. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_policy_severity_case_sensitive/config.yml +0 -0
  781. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_policy_severity_case_sensitive/expected/validate.json +0 -0
  782. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_policy_severity_unsupported/config.yml +0 -0
  783. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_policy_severity_unsupported/expected/validate.json +0 -0
  784. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_root_storages_and_filesystems/config.yml +0 -0
  785. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_root_storages_and_filesystems/expected/validate.json +0 -0
  786. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_schema_column_wrapper/config.yml +0 -0
  787. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_schema_column_wrapper/expected/validate.json +0 -0
  788. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_schema_evolution_mode_unsupported/config.yml +0 -0
  789. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_schema_evolution_mode_unsupported/expected/validate.json +0 -0
  790. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_schema_evolution_on_incompatible_unsupported/config.yml +0 -0
  791. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_schema_evolution_on_incompatible_unsupported/expected/validate.json +0 -0
  792. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_schema_evolution_strict_fail_ok/config.yml +0 -0
  793. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_schema_evolution_strict_fail_ok/expected/manifest.json +0 -0
  794. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_schema_evolution_strict_fail_ok/expected/validate.json +0 -0
  795. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sink_accepted_storage_and_filesystem/config.yml +0 -0
  796. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sink_accepted_storage_and_filesystem/expected/validate.json +0 -0
  797. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sink_duckdb_block_on_parquet/config.yml +0 -0
  798. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sink_duckdb_block_on_parquet/expected/validate.json +0 -0
  799. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sink_rejected_rejects_accepted_only_keys/config.yml +0 -0
  800. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sink_rejected_rejects_accepted_only_keys/expected/validate.json +0 -0
  801. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sink_rejected_storage_and_filesystem/config.yml +0 -0
  802. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sink_rejected_storage_and_filesystem/expected/validate.json +0 -0
  803. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_source_storage_and_filesystem/config.yml +0 -0
  804. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_source_storage_and_filesystem/expected/validate.json +0 -0
  805. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_duplicate_name/config.yml +0 -0
  806. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_duplicate_name/expected/validate.json +0 -0
  807. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_entity_source_overlays_named/config.yml +0 -0
  808. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_entity_source_overlays_named/expected/manifest.json +0 -0
  809. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_entity_source_overlays_named/expected/validate.json +0 -0
  810. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_item_not_a_map/config.yml +0 -0
  811. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_item_not_a_map/expected/validate.json +0 -0
  812. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_missing_name/config.yml +0 -0
  813. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_missing_name/expected/validate.json +0 -0
  814. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_not_array/config.yml +0 -0
  815. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_not_array/expected/validate.json +0 -0
  816. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_not_string/config.yml +0 -0
  817. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_not_string/expected/validate.json +0 -0
  818. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_ok/config.yml +0 -0
  819. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_ok/expected/manifest.json +0 -0
  820. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_ok/expected/validate.json +0 -0
  821. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_resource_not_string/config.yml +0 -0
  822. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_resource_not_string/expected/validate.json +0 -0
  823. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_resource_override/config.yml +0 -0
  824. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_resource_override/expected/manifest.json +0 -0
  825. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_resource_override/expected/validate.json +0 -0
  826. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_undeclared/config.yml +0 -0
  827. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_ref_undeclared/expected/validate.json +0 -0
  828. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_requires_0_3/config.yml +0 -0
  829. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_requires_0_3/expected/validate.json +0 -0
  830. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_unknown_key/config.yml +0 -0
  831. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_sources_unknown_key/expected/validate.json +0 -0
  832. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_storages_definition_wrapper/config.yml +0 -0
  833. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_storages_definition_wrapper/expected/validate.json +0 -0
  834. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_storages_missing_definitions/config.yml +0 -0
  835. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_storages_missing_definitions/expected/validate.json +0 -0
  836. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_domain_incoming_dir_unknown/config.yml +0 -0
  837. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_domain_incoming_dir_unknown/expected/validate.json +0 -0
  838. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_domain_incoming_dir_unset/config.yml +0 -0
  839. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_domain_incoming_dir_unset/expected/validate.json +0 -0
  840. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_domain_vars_ok/config.yml +0 -0
  841. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_domain_vars_ok/expected/manifest.json +0 -0
  842. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_domain_vars_ok/expected/validate.json +0 -0
  843. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_empty_placeholder/config.yml +0 -0
  844. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_empty_placeholder/expected/validate.json +0 -0
  845. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_entity_name_ok/config.yml +0 -0
  846. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_entity_name_ok/expected/manifest.json +0 -0
  847. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_entity_name_ok/expected/validate.json +0 -0
  848. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_lineage_api_key_unknown/config.yml +0 -0
  849. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_lineage_api_key_unknown/expected/validate.json +0 -0
  850. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_lineage_dataset_namespace_unknown/config.yml +0 -0
  851. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_lineage_dataset_namespace_unknown/expected/validate.json +0 -0
  852. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_lineage_endpoint_unknown/config.yml +0 -0
  853. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_lineage_endpoint_unknown/expected/validate.json +0 -0
  854. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_lineage_url_unknown/config.yml +0 -0
  855. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_lineage_url_unknown/expected/validate.json +0 -0
  856. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_missing_closing/config.yml +0 -0
  857. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_missing_closing/expected/validate.json +0 -0
  858. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_report_path_unknown/config.yml +0 -0
  859. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_report_path_unknown/expected/validate.json +0 -0
  860. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_resource_not_substituted_without_ref/config.yml +0 -0
  861. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_resource_not_substituted_without_ref/expected/validate.json +0 -0
  862. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_sink_accepted_unknown/config.yml +0 -0
  863. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_sink_accepted_unknown/expected/validate.json +0 -0
  864. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_sink_archive_unknown/config.yml +0 -0
  865. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_sink_archive_unknown/expected/validate.json +0 -0
  866. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_sink_rejected_unknown/config.yml +0 -0
  867. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_sink_rejected_unknown/expected/validate.json +0 -0
  868. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_storage_field_unknown/config.yml +0 -0
  869. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_storage_field_unknown/expected/validate.json +0 -0
  870. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_unknown_variable/config.yml +0 -0
  871. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_template_unknown_variable/expected/validate.json +0 -0
  872. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_version_0_3_ok/config.yml +0 -0
  873. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_version_0_3_ok/expected/manifest.json +0 -0
  874. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_version_0_3_ok/expected/validate.json +0 -0
  875. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_write_mode_case_insensitive/config.yml +0 -0
  876. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_write_mode_case_insensitive/expected/manifest.json +0 -0
  877. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_write_mode_case_insensitive/expected/validate.json +0 -0
  878. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_write_mode_unsupported/config.yml +0 -0
  879. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_write_mode_unsupported/expected/validate.json +0 -0
  880. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_comment_only/config.yml +0 -0
  881. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_comment_only/expected/validate.json +0 -0
  882. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_duplicate_key/config.yml +0 -0
  883. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_duplicate_key/expected/validate.json +0 -0
  884. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_empty_file/config.yml +0 -0
  885. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_empty_file/expected/validate.json +0 -0
  886. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_expected_array/config.yml +0 -0
  887. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_expected_array/expected/validate.json +0 -0
  888. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_expected_map/config.yml +0 -0
  889. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_expected_map/expected/validate.json +0 -0
  890. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_multiple_documents/config.yml +0 -0
  891. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_multiple_documents/expected/validate.json +0 -0
  892. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_name_is_int/config.yml +0 -0
  893. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_name_is_int/expected/validate.json +0 -0
  894. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_non_string_key/config.yml +0 -0
  895. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_non_string_key/expected/validate.json +0 -0
  896. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_optional_null_is_absent/config.yml +0 -0
  897. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_optional_null_is_absent/expected/manifest.json +0 -0
  898. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_optional_null_is_absent/expected/validate.json +0 -0
  899. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_required_null/config.yml +0 -0
  900. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_required_null/expected/validate.json +0 -0
  901. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_root_is_list/config.yml +0 -0
  902. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_root_is_list/expected/validate.json +0 -0
  903. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_root_is_scalar/config.yml +0 -0
  904. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_root_is_scalar/expected/validate.json +0 -0
  905. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_syntax_error/config.yml +0 -0
  906. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_syntax_error/expected/validate.json +0 -0
  907. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_tab_indent/config.yml +0 -0
  908. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_tab_indent/expected/validate.json +0 -0
  909. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_unknown_nested_field/config.yml +0 -0
  910. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_unknown_nested_field/expected/validate.json +0 -0
  911. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_unknown_root_field/config.yml +0 -0
  912. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_unknown_root_field/expected/validate.json +0 -0
  913. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_version_is_float/config.yml +0 -0
  914. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/parse_yaml_version_is_float/expected/validate.json +0 -0
  915. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_api_version_missing/config.yml +0 -0
  916. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_api_version_missing/expected/validate.json +0 -0
  917. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_api_version_missing/profile.yml +0 -0
  918. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_api_version_not_string/config.yml +0 -0
  919. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_api_version_not_string/expected/validate.json +0 -0
  920. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_api_version_not_string/profile.yml +0 -0
  921. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_api_version_wrong/config.yml +0 -0
  922. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_api_version_wrong/expected/validate.json +0 -0
  923. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_api_version_wrong/profile.yml +0 -0
  924. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_auth_not_map/config.yml +0 -0
  925. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_auth_not_map/expected/validate.json +0 -0
  926. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_auth_not_map/profile.yml +0 -0
  927. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_auth_ref_not_string/config.yml +0 -0
  928. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_auth_ref_not_string/expected/validate.json +0 -0
  929. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_auth_ref_not_string/profile.yml +0 -0
  930. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_auth_unknown_key/config.yml +0 -0
  931. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_auth_unknown_key/expected/validate.json +0 -0
  932. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_auth_unknown_key/profile.yml +0 -0
  933. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_default_absent_ok/config.yml +0 -0
  934. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_default_absent_ok/expected/validate.json +0 -0
  935. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_default_absent_ok/profile.yml +0 -0
  936. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_default_null_ok/config.yml +0 -0
  937. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_default_null_ok/expected/validate.json +0 -0
  938. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_default_null_ok/profile.yml +0 -0
  939. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_default_unknown/config.yml +0 -0
  940. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_default_unknown/expected/validate.json +0 -0
  941. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_default_unknown/profile.yml +0 -0
  942. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_duplicate/config.yml +0 -0
  943. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_duplicate/expected/validate.json +0 -0
  944. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_duplicate/profile.yml +0 -0
  945. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_name_empty/config.yml +0 -0
  946. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_name_empty/expected/validate.json +0 -0
  947. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_name_empty/profile.yml +0 -0
  948. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_name_missing/config.yml +0 -0
  949. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_name_missing/expected/validate.json +0 -0
  950. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_name_missing/profile.yml +0 -0
  951. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_not_map/config.yml +0 -0
  952. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_not_map/expected/validate.json +0 -0
  953. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_not_map/profile.yml +0 -0
  954. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_type_missing/config.yml +0 -0
  955. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_type_missing/expected/validate.json +0 -0
  956. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_type_missing/profile.yml +0 -0
  957. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_type_unsupported/config.yml +0 -0
  958. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_type_unsupported/expected/validate.json +0 -0
  959. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_type_unsupported/profile.yml +0 -0
  960. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_unknown_key/config.yml +0 -0
  961. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_unknown_key/expected/validate.json +0 -0
  962. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definition_unknown_key/profile.yml +0 -0
  963. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definitions_empty/config.yml +0 -0
  964. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definitions_empty/expected/validate.json +0 -0
  965. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definitions_empty/profile.yml +0 -0
  966. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definitions_missing/config.yml +0 -0
  967. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definitions_missing/expected/validate.json +0 -0
  968. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definitions_missing/profile.yml +0 -0
  969. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definitions_not_array/config.yml +0 -0
  970. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definitions_not_array/expected/validate.json +0 -0
  971. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_definitions_not_array/profile.yml +0 -0
  972. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_not_map/config.yml +0 -0
  973. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_not_map/expected/validate.json +0 -0
  974. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_not_map/profile.yml +0 -0
  975. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_rest_uri_missing/config.yml +0 -0
  976. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_rest_uri_missing/expected/validate.json +0 -0
  977. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_rest_uri_missing/profile.yml +0 -0
  978. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_two_definitions_ok/config.yml +0 -0
  979. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_two_definitions_ok/expected/validate.json +0 -0
  980. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_two_definitions_ok/profile.yml +0 -0
  981. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_unknown_key/config.yml +0 -0
  982. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_unknown_key/expected/validate.json +0 -0
  983. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_catalogs_unknown_key/profile.yml +0 -0
  984. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_catalog_and_storage_from_profile/config.yml +0 -0
  985. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_catalog_and_storage_from_profile/expected/validate.json +0 -0
  986. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_catalog_and_storage_from_profile/profile.yml +0 -0
  987. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_catalog_from_profile_local_storage/config.yml +0 -0
  988. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_catalog_from_profile_local_storage/expected/validate.json +0 -0
  989. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_catalog_from_profile_local_storage/profile.yml +0 -0
  990. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_catalog_without_profile/config.yml +0 -0
  991. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_catalog_without_profile/expected/validate.json +0 -0
  992. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_profile_catalog_wrong_name/config.yml +0 -0
  993. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_profile_catalog_wrong_name/expected/validate.json +0 -0
  994. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_iceberg_profile_catalog_wrong_name/profile.yml +0 -0
  995. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_invalid_config_storages_without_profile_override/config.yml +0 -0
  996. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_invalid_config_storages_without_profile_override/expected/validate.json +0 -0
  997. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_invalid_config_storages_without_profile_override/profile.yml +0 -0
  998. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_invalid_lineage_without_profile_lineage/config.yml +0 -0
  999. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_invalid_lineage_without_profile_lineage/expected/validate.json +0 -0
  1000. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_invalid_lineage_without_profile_lineage/profile.yml +0 -0
  1001. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_catalogs_replace_config_catalogs/config.yml +0 -0
  1002. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_catalogs_replace_config_catalogs/expected/validate.json +0 -0
  1003. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_catalogs_replace_config_catalogs/profile.yml +0 -0
  1004. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_lineage_replaces_invalid_config_lineage/config.yml +0 -0
  1005. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_lineage_replaces_invalid_config_lineage/expected/validate.json +0 -0
  1006. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_lineage_replaces_invalid_config_lineage/profile.yml +0 -0
  1007. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_lineage_url_template/config.yml +0 -0
  1008. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_lineage_url_template/expected/validate.json +0 -0
  1009. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_lineage_url_template/profile.yml +0 -0
  1010. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_storages_fix_invalid_config_storages/config.yml +0 -0
  1011. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_storages_fix_invalid_config_storages/expected/validate.json +0 -0
  1012. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_storages_fix_invalid_config_storages/profile.yml +0 -0
  1013. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_storages_replace_config_storages/config.yml +0 -0
  1014. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_storages_replace_config_storages/expected/validate.json +0 -0
  1015. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_profile_storages_replace_config_storages/profile.yml +0 -0
  1016. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_storage_defined_by_profile/config.yml +0 -0
  1017. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_storage_defined_by_profile/expected/validate.json +0 -0
  1018. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_storage_defined_by_profile/profile.yml +0 -0
  1019. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_storage_not_in_profile_storages/config.yml +0 -0
  1020. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_storage_not_in_profile_storages/expected/validate.json +0 -0
  1021. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_storage_not_in_profile_storages/profile.yml +0 -0
  1022. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_unknown_storage_without_profile/config.yml +0 -0
  1023. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_cfg_unknown_storage_without_profile/expected/validate.json +0 -0
  1024. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_auth_empty_map/config.yml +0 -0
  1025. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_auth_empty_map/expected/validate.json +0 -0
  1026. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_auth_empty_map/profile.yml +0 -0
  1027. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_auth_missing/config.yml +0 -0
  1028. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_auth_missing/expected/validate.json +0 -0
  1029. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_auth_missing/profile.yml +0 -0
  1030. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_auth_ref_blank/config.yml +0 -0
  1031. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_auth_ref_blank/expected/validate.json +0 -0
  1032. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_auth_ref_blank/profile.yml +0 -0
  1033. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_config_uri_blank/config.yml +0 -0
  1034. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_config_uri_blank/expected/validate.json +0 -0
  1035. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_config_uri_blank/profile.yml +0 -0
  1036. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_config_uri_missing/config.yml +0 -0
  1037. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_config_uri_missing/expected/validate.json +0 -0
  1038. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_config_uri_missing/profile.yml +0 -0
  1039. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_existing_cluster_id_blank/config.yml +0 -0
  1040. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_existing_cluster_id_blank/expected/validate.json +0 -0
  1041. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_existing_cluster_id_blank/profile.yml +0 -0
  1042. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_existing_cluster_id_missing/config.yml +0 -0
  1043. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_existing_cluster_id_missing/expected/validate.json +0 -0
  1044. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_existing_cluster_id_missing/profile.yml +0 -0
  1045. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_ok/config.yml +0 -0
  1046. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_ok/expected/validate.json +0 -0
  1047. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_ok/profile.yml +0 -0
  1048. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_ok_with_extras/config.yml +0 -0
  1049. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_ok_with_extras/expected/validate.json +0 -0
  1050. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_ok_with_extras/profile.yml +0 -0
  1051. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_only_type/config.yml +0 -0
  1052. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_only_type/expected/validate.json +0 -0
  1053. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_only_type/profile.yml +0 -0
  1054. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_python_file_uri_blank/config.yml +0 -0
  1055. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_python_file_uri_blank/expected/validate.json +0 -0
  1056. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_python_file_uri_blank/profile.yml +0 -0
  1057. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_python_file_uri_missing/config.yml +0 -0
  1058. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_python_file_uri_missing/expected/validate.json +0 -0
  1059. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_python_file_uri_missing/profile.yml +0 -0
  1060. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_workspace_url_blank/config.yml +0 -0
  1061. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_workspace_url_blank/expected/validate.json +0 -0
  1062. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_workspace_url_blank/profile.yml +0 -0
  1063. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_workspace_url_missing/config.yml +0 -0
  1064. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_workspace_url_missing/expected/validate.json +0 -0
  1065. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_dbx_workspace_url_missing/profile.yml +0 -0
  1066. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_execution_not_map/config.yml +0 -0
  1067. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_execution_not_map/expected/validate.json +0 -0
  1068. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_execution_not_map/profile.yml +0 -0
  1069. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_execution_runner_missing/config.yml +0 -0
  1070. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_execution_runner_missing/expected/validate.json +0 -0
  1071. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_execution_runner_missing/profile.yml +0 -0
  1072. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_execution_unknown_key/config.yml +0 -0
  1073. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_execution_unknown_key/expected/validate.json +0 -0
  1074. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_execution_unknown_key/profile.yml +0 -0
  1075. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_empty/config.yml +0 -0
  1076. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_empty/expected/validate.json +0 -0
  1077. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_empty/profile.yml +0 -0
  1078. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_invalid_yaml/config.yml +0 -0
  1079. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_invalid_yaml/expected/validate.json +0 -0
  1080. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_invalid_yaml/profile.yml +0 -0
  1081. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_is_directory/config.yml +0 -0
  1082. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_is_directory/expected/validate.json +0 -0
  1083. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_is_directory/profile.yml/keep +0 -0
  1084. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_non_string_key/config.yml +0 -0
  1085. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_non_string_key/expected/validate.json +0 -0
  1086. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_non_string_key/profile.yml +0 -0
  1087. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_only_comment/config.yml +0 -0
  1088. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_only_comment/expected/validate.json +0 -0
  1089. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_only_comment/profile.yml +0 -0
  1090. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_root_is_list/config.yml +0 -0
  1091. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_root_is_list/expected/validate.json +0 -0
  1092. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_root_is_list/profile.yml +0 -0
  1093. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_root_is_scalar/config.yml +0 -0
  1094. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_root_is_scalar/expected/validate.json +0 -0
  1095. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_root_is_scalar/profile.yml +0 -0
  1096. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_two_documents/config.yml +0 -0
  1097. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_two_documents/expected/validate.json +0 -0
  1098. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_two_documents/profile.yml +0 -0
  1099. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_unknown_root_key/config.yml +0 -0
  1100. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_unknown_root_key/expected/validate.json +0 -0
  1101. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_file_unknown_root_key/profile.yml +0 -0
  1102. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_image_blank/config.yml +0 -0
  1103. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_image_blank/expected/validate.json +0 -0
  1104. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_image_blank/profile.yml +0 -0
  1105. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_image_checked_before_namespace/config.yml +0 -0
  1106. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_image_checked_before_namespace/expected/validate.json +0 -0
  1107. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_image_checked_before_namespace/profile.yml +0 -0
  1108. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_image_missing/config.yml +0 -0
  1109. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_image_missing/expected/validate.json +0 -0
  1110. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_image_missing/profile.yml +0 -0
  1111. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_namespace_blank/config.yml +0 -0
  1112. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_namespace_blank/expected/validate.json +0 -0
  1113. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_namespace_blank/profile.yml +0 -0
  1114. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_namespace_missing/config.yml +0 -0
  1115. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_namespace_missing/expected/validate.json +0 -0
  1116. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_namespace_missing/profile.yml +0 -0
  1117. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_ok/config.yml +0 -0
  1118. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_ok/expected/validate.json +0 -0
  1119. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_ok/profile.yml +0 -0
  1120. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_ok_with_extras/config.yml +0 -0
  1121. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_ok_with_extras/expected/validate.json +0 -0
  1122. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_k8s_ok_with_extras/profile.yml +0 -0
  1123. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_kind_missing/config.yml +0 -0
  1124. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_kind_missing/expected/validate.json +0 -0
  1125. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_kind_missing/profile.yml +0 -0
  1126. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_kind_wrong/config.yml +0 -0
  1127. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_kind_wrong/expected/validate.json +0 -0
  1128. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_kind_wrong/profile.yml +0 -0
  1129. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_negative/config.yml +0 -0
  1130. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_negative/expected/validate.json +0 -0
  1131. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_negative/profile.yml +0 -0
  1132. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_one_ok/config.yml +0 -0
  1133. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_one_ok/expected/validate.json +0 -0
  1134. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_one_ok/profile.yml +0 -0
  1135. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_too_large/config.yml +0 -0
  1136. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_too_large/expected/validate.json +0 -0
  1137. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_too_large/profile.yml +0 -0
  1138. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_zero/config.yml +0 -0
  1139. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_zero/expected/validate.json +0 -0
  1140. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_max_failures_zero/profile.yml +0 -0
  1141. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_namespace_empty/config.yml +0 -0
  1142. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_namespace_empty/expected/validate.json +0 -0
  1143. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_namespace_empty/profile.yml +0 -0
  1144. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_namespace_missing/config.yml +0 -0
  1145. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_namespace_missing/expected/validate.json +0 -0
  1146. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_namespace_missing/profile.yml +0 -0
  1147. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_not_map/config.yml +0 -0
  1148. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_not_map/expected/validate.json +0 -0
  1149. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_not_map/profile.yml +0 -0
  1150. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_ok/config.yml +0 -0
  1151. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_ok/expected/validate.json +0 -0
  1152. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_ok/profile.yml +0 -0
  1153. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_ok_full/config.yml +0 -0
  1154. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_ok_full/expected/validate.json +0 -0
  1155. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_ok_full/profile.yml +0 -0
  1156. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_timeout_negative/config.yml +0 -0
  1157. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_timeout_negative/expected/validate.json +0 -0
  1158. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_timeout_negative/profile.yml +0 -0
  1159. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_timeout_not_integer/config.yml +0 -0
  1160. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_timeout_not_integer/expected/validate.json +0 -0
  1161. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_timeout_not_integer/profile.yml +0 -0
  1162. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_unknown_key/config.yml +0 -0
  1163. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_unknown_key/expected/validate.json +0 -0
  1164. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_unknown_key/profile.yml +0 -0
  1165. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_blank/config.yml +0 -0
  1166. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_blank/expected/validate.json +0 -0
  1167. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_blank/profile.yml +0 -0
  1168. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_empty/config.yml +0 -0
  1169. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_empty/expected/validate.json +0 -0
  1170. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_empty/profile.yml +0 -0
  1171. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_missing/config.yml +0 -0
  1172. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_missing/expected/validate.json +0 -0
  1173. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_missing/profile.yml +0 -0
  1174. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_not_string/config.yml +0 -0
  1175. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_not_string/expected/validate.json +0 -0
  1176. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_lineage_url_not_string/profile.yml +0 -0
  1177. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_local_blank_image_namespace_ok/config.yml +0 -0
  1178. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_local_blank_image_namespace_ok/expected/validate.json +0 -0
  1179. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_local_blank_image_namespace_ok/profile.yml +0 -0
  1180. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_description_not_string/config.yml +0 -0
  1181. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_description_not_string/expected/validate.json +0 -0
  1182. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_description_not_string/profile.yml +0 -0
  1183. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_missing/config.yml +0 -0
  1184. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_missing/expected/validate.json +0 -0
  1185. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_missing/profile.yml +0 -0
  1186. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_name_empty/config.yml +0 -0
  1187. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_name_empty/expected/validate.json +0 -0
  1188. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_name_empty/profile.yml +0 -0
  1189. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_name_missing/config.yml +0 -0
  1190. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_name_missing/expected/validate.json +0 -0
  1191. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_name_missing/profile.yml +0 -0
  1192. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_name_not_string/config.yml +0 -0
  1193. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_name_not_string/expected/validate.json +0 -0
  1194. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_name_not_string/profile.yml +0 -0
  1195. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_not_map/config.yml +0 -0
  1196. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_not_map/expected/validate.json +0 -0
  1197. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_not_map/profile.yml +0 -0
  1198. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_tag_not_string/config.yml +0 -0
  1199. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_tag_not_string/expected/validate.json +0 -0
  1200. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_tag_not_string/profile.yml +0 -0
  1201. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_tags_not_array/config.yml +0 -0
  1202. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_tags_not_array/expected/validate.json +0 -0
  1203. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_tags_not_array/profile.yml +0 -0
  1204. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_unknown_key/config.yml +0 -0
  1205. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_unknown_key/expected/validate.json +0 -0
  1206. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_metadata_unknown_key/profile.yml +0 -0
  1207. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_base/config.yml +0 -0
  1208. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_base/expected/validate.json +0 -0
  1209. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_base/profile.yml +0 -0
  1210. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_full_local_runner/config.yml +0 -0
  1211. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_full_local_runner/expected/validate.json +0 -0
  1212. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_full_local_runner/profile.yml +0 -0
  1213. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_metadata_only_runner_absent/config.yml +0 -0
  1214. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_metadata_only_runner_absent/expected/validate.json +0 -0
  1215. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_metadata_only_runner_absent/profile.yml +0 -0
  1216. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_minimal/config.yml +0 -0
  1217. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_minimal/expected/validate.json +0 -0
  1218. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_minimal/profile.yml +0 -0
  1219. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_orchestration_absent/config.yml +0 -0
  1220. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_orchestration_absent/expected/validate.json +0 -0
  1221. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_orchestration_absent/profile.yml +0 -0
  1222. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_orchestration_empty/config.yml +0 -0
  1223. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_orchestration_empty/expected/validate.json +0 -0
  1224. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_orchestration_empty/profile.yml +0 -0
  1225. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_strategy_sequential/config.yml +0 -0
  1226. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_strategy_sequential/expected/validate.json +0 -0
  1227. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_strategy_sequential/profile.yml +0 -0
  1228. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_validation_strict_false/config.yml +0 -0
  1229. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_validation_strict_false/expected/validate.json +0 -0
  1230. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_ok_validation_strict_false/profile.yml +0 -0
  1231. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_bool/config.yml +0 -0
  1232. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_bool/expected/validate.json +0 -0
  1233. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_bool/profile.yml +0 -0
  1234. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_float/config.yml +0 -0
  1235. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_float/expected/validate.json +0 -0
  1236. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_float/profile.yml +0 -0
  1237. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_i64_max/config.yml +0 -0
  1238. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_i64_max/expected/validate.json +0 -0
  1239. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_i64_max/profile.yml +0 -0
  1240. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_negative/config.yml +0 -0
  1241. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_negative/expected/validate.json +0 -0
  1242. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_negative/profile.yml +0 -0
  1243. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_one/config.yml +0 -0
  1244. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_one/expected/validate.json +0 -0
  1245. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_one/profile.yml +0 -0
  1246. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_string/config.yml +0 -0
  1247. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_string/expected/validate.json +0 -0
  1248. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_string/profile.yml +0 -0
  1249. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_zero/config.yml +0 -0
  1250. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_zero/expected/validate.json +0 -0
  1251. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_max_zero/profile.yml +0 -0
  1252. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_not_map/config.yml +0 -0
  1253. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_not_map/expected/validate.json +0 -0
  1254. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_not_map/profile.yml +0 -0
  1255. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_strategy_case_sensitive/config.yml +0 -0
  1256. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_strategy_case_sensitive/expected/validate.json +0 -0
  1257. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_strategy_case_sensitive/profile.yml +0 -0
  1258. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_strategy_invalid/config.yml +0 -0
  1259. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_strategy_invalid/expected/validate.json +0 -0
  1260. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_strategy_invalid/profile.yml +0 -0
  1261. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_strategy_not_string/config.yml +0 -0
  1262. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_strategy_not_string/expected/validate.json +0 -0
  1263. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_strategy_not_string/profile.yml +0 -0
  1264. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_unknown_key/config.yml +0 -0
  1265. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_unknown_key/expected/validate.json +0 -0
  1266. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_orch_unknown_key/profile.yml +0 -0
  1267. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_cpu_not_string/config.yml +0 -0
  1268. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_cpu_not_string/expected/validate.json +0 -0
  1269. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_cpu_not_string/profile.yml +0 -0
  1270. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_memory_float/config.yml +0 -0
  1271. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_memory_float/expected/validate.json +0 -0
  1272. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_memory_float/profile.yml +0 -0
  1273. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_memory_negative/config.yml +0 -0
  1274. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_memory_negative/expected/validate.json +0 -0
  1275. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_memory_negative/profile.yml +0 -0
  1276. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_not_map/config.yml +0 -0
  1277. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_not_map/expected/validate.json +0 -0
  1278. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_not_map/profile.yml +0 -0
  1279. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_unknown_key/config.yml +0 -0
  1280. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_unknown_key/expected/validate.json +0 -0
  1281. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_resources_unknown_key/profile.yml +0 -0
  1282. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_args_item_not_string/config.yml +0 -0
  1283. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_args_item_not_string/expected/validate.json +0 -0
  1284. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_args_item_not_string/profile.yml +0 -0
  1285. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_args_not_array/config.yml +0 -0
  1286. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_args_not_array/expected/validate.json +0 -0
  1287. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_args_not_array/profile.yml +0 -0
  1288. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_command_not_string/config.yml +0 -0
  1289. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_command_not_string/expected/validate.json +0 -0
  1290. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_command_not_string/profile.yml +0 -0
  1291. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_key_not_string/config.yml +0 -0
  1292. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_key_not_string/expected/validate.json +0 -0
  1293. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_key_not_string/profile.yml +0 -0
  1294. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_not_map/config.yml +0 -0
  1295. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_not_map/expected/validate.json +0 -0
  1296. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_not_map/profile.yml +0 -0
  1297. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_parameters_not_map/config.yml +0 -0
  1298. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_parameters_not_map/expected/validate.json +0 -0
  1299. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_parameters_not_map/profile.yml +0 -0
  1300. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_parameters_value_not_string/config.yml +0 -0
  1301. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_parameters_value_not_string/expected/validate.json +0 -0
  1302. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_parameters_value_not_string/profile.yml +0 -0
  1303. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_value_not_string/config.yml +0 -0
  1304. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_value_not_string/expected/validate.json +0 -0
  1305. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_env_value_not_string/profile.yml +0 -0
  1306. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_image_not_string/config.yml +0 -0
  1307. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_image_not_string/expected/validate.json +0 -0
  1308. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_image_not_string/profile.yml +0 -0
  1309. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_job_name_not_string/config.yml +0 -0
  1310. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_job_name_not_string/expected/validate.json +0 -0
  1311. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_job_name_not_string/profile.yml +0 -0
  1312. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_namespace_not_string/config.yml +0 -0
  1313. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_namespace_not_string/expected/validate.json +0 -0
  1314. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_namespace_not_string/profile.yml +0 -0
  1315. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_not_map/config.yml +0 -0
  1316. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_not_map/expected/validate.json +0 -0
  1317. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_not_map/profile.yml +0 -0
  1318. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_poll_huge/config.yml +0 -0
  1319. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_poll_huge/expected/validate.json +0 -0
  1320. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_poll_huge/profile.yml +0 -0
  1321. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_poll_interval_seconds_negative/config.yml +0 -0
  1322. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_poll_interval_seconds_negative/expected/validate.json +0 -0
  1323. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_poll_interval_seconds_negative/profile.yml +0 -0
  1324. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_service_account_not_string/config.yml +0 -0
  1325. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_service_account_not_string/expected/validate.json +0 -0
  1326. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_service_account_not_string/profile.yml +0 -0
  1327. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_timeout_float/config.yml +0 -0
  1328. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_timeout_float/expected/validate.json +0 -0
  1329. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_timeout_float/profile.yml +0 -0
  1330. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_timeout_seconds_negative/config.yml +0 -0
  1331. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_timeout_seconds_negative/expected/validate.json +0 -0
  1332. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_timeout_seconds_negative/profile.yml +0 -0
  1333. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_timeout_string/config.yml +0 -0
  1334. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_timeout_string/expected/validate.json +0 -0
  1335. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_timeout_string/profile.yml +0 -0
  1336. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_ttl_huge/config.yml +0 -0
  1337. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_ttl_huge/expected/validate.json +0 -0
  1338. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_ttl_huge/profile.yml +0 -0
  1339. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_ttl_seconds_after_finished_negative/config.yml +0 -0
  1340. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_ttl_seconds_after_finished_negative/expected/validate.json +0 -0
  1341. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_ttl_seconds_after_finished_negative/profile.yml +0 -0
  1342. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_case_sensitive/config.yml +0 -0
  1343. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_case_sensitive/expected/validate.json +0 -0
  1344. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_case_sensitive/profile.yml +0 -0
  1345. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_missing/config.yml +0 -0
  1346. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_missing/expected/validate.json +0 -0
  1347. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_missing/profile.yml +0 -0
  1348. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_not_string/config.yml +0 -0
  1349. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_not_string/expected/validate.json +0 -0
  1350. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_not_string/profile.yml +0 -0
  1351. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_unknown/config.yml +0 -0
  1352. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_unknown/expected/validate.json +0 -0
  1353. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_type_unknown/profile.yml +0 -0
  1354. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_unknown_key/config.yml +0 -0
  1355. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_unknown_key/expected/validate.json +0 -0
  1356. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_runner_unknown_key/profile.yml +0 -0
  1357. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_empty_list/config.yml +0 -0
  1358. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_empty_list/expected/validate.json +0 -0
  1359. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_empty_list/profile.yml +0 -0
  1360. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_item_not_map/config.yml +0 -0
  1361. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_item_not_map/expected/validate.json +0 -0
  1362. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_item_not_map/profile.yml +0 -0
  1363. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_key_missing/config.yml +0 -0
  1364. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_key_missing/expected/validate.json +0 -0
  1365. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_key_missing/profile.yml +0 -0
  1366. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_key_not_string/config.yml +0 -0
  1367. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_key_not_string/expected/validate.json +0 -0
  1368. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_key_not_string/profile.yml +0 -0
  1369. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_name_missing/config.yml +0 -0
  1370. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_name_missing/expected/validate.json +0 -0
  1371. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_name_missing/profile.yml +0 -0
  1372. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_not_array/config.yml +0 -0
  1373. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_not_array/expected/validate.json +0 -0
  1374. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_not_array/profile.yml +0 -0
  1375. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_secret_name_missing/config.yml +0 -0
  1376. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_secret_name_missing/expected/validate.json +0 -0
  1377. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_secret_name_missing/profile.yml +0 -0
  1378. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_unknown_key/config.yml +0 -0
  1379. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_unknown_key/expected/validate.json +0 -0
  1380. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_secrets_unknown_key/profile.yml +0 -0
  1381. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_default_missing/config.yml +0 -0
  1382. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_default_missing/expected/validate.json +0 -0
  1383. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_default_missing/profile.yml +0 -0
  1384. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_default_not_string/config.yml +0 -0
  1385. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_default_not_string/expected/validate.json +0 -0
  1386. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_default_not_string/profile.yml +0 -0
  1387. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_default_unknown/config.yml +0 -0
  1388. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_default_unknown/expected/validate.json +0 -0
  1389. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_default_unknown/profile.yml +0 -0
  1390. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_duplicate/config.yml +0 -0
  1391. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_duplicate/expected/validate.json +0 -0
  1392. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_duplicate/profile.yml +0 -0
  1393. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_name_empty/config.yml +0 -0
  1394. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_name_empty/expected/validate.json +0 -0
  1395. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_name_empty/profile.yml +0 -0
  1396. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_name_missing/config.yml +0 -0
  1397. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_name_missing/expected/validate.json +0 -0
  1398. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_name_missing/profile.yml +0 -0
  1399. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_not_map/config.yml +0 -0
  1400. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_not_map/expected/validate.json +0 -0
  1401. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_not_map/profile.yml +0 -0
  1402. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_type_missing/config.yml +0 -0
  1403. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_type_missing/expected/validate.json +0 -0
  1404. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_type_missing/profile.yml +0 -0
  1405. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_unknown_key/config.yml +0 -0
  1406. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_unknown_key/expected/validate.json +0 -0
  1407. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definition_unknown_key/profile.yml +0 -0
  1408. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definitions_empty/config.yml +0 -0
  1409. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definitions_empty/expected/validate.json +0 -0
  1410. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definitions_empty/profile.yml +0 -0
  1411. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definitions_missing/config.yml +0 -0
  1412. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definitions_missing/expected/validate.json +0 -0
  1413. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definitions_missing/profile.yml +0 -0
  1414. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definitions_not_array/config.yml +0 -0
  1415. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definitions_not_array/expected/validate.json +0 -0
  1416. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_definitions_not_array/profile.yml +0 -0
  1417. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_local_ok/config.yml +0 -0
  1418. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_local_ok/expected/validate.json +0 -0
  1419. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_local_ok/profile.yml +0 -0
  1420. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_not_map/config.yml +0 -0
  1421. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_not_map/expected/validate.json +0 -0
  1422. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_not_map/profile.yml +0 -0
  1423. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_path_style_not_bool/config.yml +0 -0
  1424. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_path_style_not_bool/expected/validate.json +0 -0
  1425. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_path_style_not_bool/profile.yml +0 -0
  1426. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_s3_bucket_missing/config.yml +0 -0
  1427. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_s3_bucket_missing/expected/validate.json +0 -0
  1428. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_s3_bucket_missing/profile.yml +0 -0
  1429. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_s3_ok/config.yml +0 -0
  1430. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_s3_ok/expected/validate.json +0 -0
  1431. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_s3_ok/profile.yml +0 -0
  1432. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_s3_region_missing/config.yml +0 -0
  1433. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_s3_region_missing/expected/validate.json +0 -0
  1434. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_s3_region_missing/profile.yml +0 -0
  1435. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_type_unsupported/config.yml +0 -0
  1436. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_type_unsupported/expected/validate.json +0 -0
  1437. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_type_unsupported/profile.yml +0 -0
  1438. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_unknown_key/config.yml +0 -0
  1439. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_unknown_key/expected/validate.json +0 -0
  1440. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_storages_unknown_key/profile.yml +0 -0
  1441. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_config_env_overrides_profile/config.yml +0 -0
  1442. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_config_env_overrides_profile/expected/validate.json +0 -0
  1443. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_config_env_overrides_profile/profile.yml +0 -0
  1444. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_no_variables_block/config.yml +0 -0
  1445. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_no_variables_block/expected/validate.json +0 -0
  1446. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_no_variables_block/profile.yml +0 -0
  1447. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_profile_var_missing/config.yml +0 -0
  1448. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_profile_var_missing/expected/validate.json +0 -0
  1449. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_profile_var_missing/profile.yml +0 -0
  1450. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_profile_var_used/config.yml +0 -0
  1451. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_profile_var_used/expected/validate.json +0 -0
  1452. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_profile_var_used/profile.yml +0 -0
  1453. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_report_path_profile_var/config.yml +0 -0
  1454. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_report_path_profile_var/expected/validate.json +0 -0
  1455. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_report_path_profile_var/profile.yml +0 -0
  1456. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_report_path_unknown/config.yml +0 -0
  1457. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_report_path_unknown/expected/validate.json +0 -0
  1458. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_tpl_report_path_unknown/profile.yml +0 -0
  1459. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_empty_map/config.yml +0 -0
  1460. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_empty_map/expected/validate.json +0 -0
  1461. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_empty_map/profile.yml +0 -0
  1462. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_not_map/config.yml +0 -0
  1463. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_not_map/expected/validate.json +0 -0
  1464. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_not_map/profile.yml +0 -0
  1465. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_strict_int/config.yml +0 -0
  1466. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_strict_int/expected/validate.json +0 -0
  1467. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_strict_int/profile.yml +0 -0
  1468. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_strict_not_bool/config.yml +0 -0
  1469. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_strict_not_bool/expected/validate.json +0 -0
  1470. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_strict_not_bool/profile.yml +0 -0
  1471. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_unknown_key/config.yml +0 -0
  1472. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_unknown_key/expected/validate.json +0 -0
  1473. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_validation_unknown_key/profile.yml +0 -0
  1474. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_empty_placeholder/config.yml +0 -0
  1475. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_empty_placeholder/expected/validate.json +0 -0
  1476. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_empty_placeholder/profile.yml +0 -0
  1477. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_overrides_profile_cycle/config.yml +0 -0
  1478. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_overrides_profile_cycle/expected/validate.json +0 -0
  1479. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_overrides_profile_cycle/profile.yml +0 -0
  1480. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_unclosed/config.yml +0 -0
  1481. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_unclosed/expected/validate.json +0 -0
  1482. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_unclosed/profile.yml +0 -0
  1483. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_unknown_reference/config.yml +0 -0
  1484. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_unknown_reference/expected/validate.json +0 -0
  1485. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_config_env_unknown_reference/profile.yml +0 -0
  1486. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_dollar_without_brace_ok/config.yml +0 -0
  1487. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_dollar_without_brace_ok/expected/validate.json +0 -0
  1488. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_dollar_without_brace_ok/profile.yml +0 -0
  1489. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_empty_map/config.yml +0 -0
  1490. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_empty_map/expected/validate.json +0 -0
  1491. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_empty_map/profile.yml +0 -0
  1492. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_key_not_string/config.yml +0 -0
  1493. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_key_not_string/expected/validate.json +0 -0
  1494. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_key_not_string/profile.yml +0 -0
  1495. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_malformed_blank_key/config.yml +0 -0
  1496. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_malformed_blank_key/expected/validate.json +0 -0
  1497. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_malformed_blank_key/profile.yml +0 -0
  1498. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_malformed_second_placeholder/config.yml +0 -0
  1499. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_malformed_second_placeholder/expected/validate.json +0 -0
  1500. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_malformed_second_placeholder/profile.yml +0 -0
  1501. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_not_map/config.yml +0 -0
  1502. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_not_map/expected/validate.json +0 -0
  1503. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_not_map/profile.yml +0 -0
  1504. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_reference_chain_ok/config.yml +0 -0
  1505. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_reference_chain_ok/expected/validate.json +0 -0
  1506. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_reference_chain_ok/profile.yml +0 -0
  1507. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_reference_defined_by_config_env/config.yml +0 -0
  1508. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_reference_defined_by_config_env/expected/validate.json +0 -0
  1509. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_reference_defined_by_config_env/profile.yml +0 -0
  1510. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_reference_ok/config.yml +0 -0
  1511. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_reference_ok/expected/validate.json +0 -0
  1512. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_reference_ok/profile.yml +0 -0
  1513. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_self_cycle/config.yml +0 -0
  1514. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_self_cycle/expected/validate.json +0 -0
  1515. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_self_cycle/profile.yml +0 -0
  1516. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_unknown_reference/config.yml +0 -0
  1517. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_unknown_reference/expected/validate.json +0 -0
  1518. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_unknown_reference/profile.yml +0 -0
  1519. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_value_bool/config.yml +0 -0
  1520. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_value_bool/expected/validate.json +0 -0
  1521. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_value_bool/profile.yml +0 -0
  1522. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_value_not_string/config.yml +0 -0
  1523. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_value_not_string/expected/validate.json +0 -0
  1524. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/prof_vars_value_not_string/profile.yml +0 -0
  1525. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_abort_severity_without_rejected_sink/config.yml +0 -0
  1526. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_abort_severity_without_rejected_sink/expected/validate.json +0 -0
  1527. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_conflicts_with_file_mode/config.yml +0 -0
  1528. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_conflicts_with_file_mode/expected/validate.json +0 -0
  1529. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_conflicts_with_row_mode/config.yml +0 -0
  1530. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_conflicts_with_row_mode/expected/validate.json +0 -0
  1531. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_storage_differs_from_source/config.yml +0 -0
  1532. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_storage_differs_from_source/expected/validate.json +0 -0
  1533. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_storage_same_as_source_ok/config.yml +0 -0
  1534. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_storage_same_as_source_ok/expected/manifest.json +0 -0
  1535. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_storage_same_as_source_ok/expected/validate.json +0 -0
  1536. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_without_incremental_mode_warns_ok/config.yml +0 -0
  1537. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_without_incremental_mode_warns_ok/expected/manifest.json +0 -0
  1538. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_archive_without_incremental_mode_warns_ok/expected/validate.json +0 -0
  1539. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_batch_column_same_as_date/config.yml +0 -0
  1540. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_batch_column_same_as_date/expected/validate.json +0 -0
  1541. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_batch_column_without_token/config.yml +0 -0
  1542. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_batch_column_without_token/expected/validate.json +0 -0
  1543. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_date_column_clash/config.yml +0 -0
  1544. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_date_column_clash/expected/validate.json +0 -0
  1545. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_date_column_clash_normalised/config.yml +0 -0
  1546. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_date_column_clash_normalised/expected/validate.json +0 -0
  1547. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_date_column_empty/config.yml +0 -0
  1548. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_date_column_empty/expected/validate.json +0 -0
  1549. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_partitioning_hour_hive_ok/config.yml +0 -0
  1550. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_partitioning_hour_hive_ok/expected/validate.json +0 -0
  1551. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_partitioning_ok/config.yml +0 -0
  1552. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_partitioning_ok/expected/validate.json +0 -0
  1553. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_pattern_missing_day/config.yml +0 -0
  1554. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_pattern_missing_day/expected/validate.json +0 -0
  1555. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_pattern_repeated_token/config.yml +0 -0
  1556. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_pattern_repeated_token/expected/validate.json +0 -0
  1557. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_pattern_unknown_token/config.yml +0 -0
  1558. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_pattern_unknown_token/expected/validate.json +0 -0
  1559. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_pattern_unmatched_brace/config.yml +0 -0
  1560. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d28_pattern_unmatched_brace/expected/validate.json +0 -0
  1561. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_iceberg_merge_scd1/config.yml +0 -0
  1562. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_iceberg_merge_scd1/expected/validate.json +0 -0
  1563. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_iceberg_merge_scd2/config.yml +0 -0
  1564. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_iceberg_merge_scd2/expected/validate.json +0 -0
  1565. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_iceberg_merge_with_empty_primary_key/config.yml +0 -0
  1566. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_iceberg_merge_with_empty_primary_key/expected/validate.json +0 -0
  1567. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_iceberg_merge_without_primary_key/config.yml +0 -0
  1568. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_iceberg_merge_without_primary_key/expected/validate.json +0 -0
  1569. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_pii_on_primary_key_with_merge/config.yml +0 -0
  1570. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_d2_pii_on_primary_key_with_merge/expected/validate.json +0 -0
  1571. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_entities_empty/config.yml +0 -0
  1572. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_entities_empty/expected/validate.json +0 -0
  1573. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_entity_duplicate_name/config.yml +0 -0
  1574. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_entity_duplicate_name/expected/validate.json +0 -0
  1575. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_entity_same_name_other_domain_ok/config.yml +0 -0
  1576. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_entity_same_name_other_domain_ok/expected/manifest.json +0 -0
  1577. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_entity_same_name_other_domain_ok/expected/validate.json +0 -0
  1578. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_domain_empty/config.yml +0 -0
  1579. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_domain_empty/expected/validate.json +0 -0
  1580. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_domain_with_backslash/config.yml +0 -0
  1581. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_domain_with_backslash/expected/validate.json +0 -0
  1582. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_name_with_dot/config.yml +0 -0
  1583. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_name_with_dot/expected/validate.json +0 -0
  1584. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_name_with_dot_before_0_3_ok/config.yml +0 -0
  1585. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_name_with_dot_before_0_3_ok/expected/manifest.json +0 -0
  1586. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_name_with_dot_before_0_3_ok/expected/validate.json +0 -0
  1587. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_name_with_slash/config.yml +0 -0
  1588. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_id_name_with_slash/expected/validate.json +0 -0
  1589. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_incremental_archive_with_sink_archive_ok/config.yml +0 -0
  1590. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_incremental_archive_with_sink_archive_ok/expected/manifest.json +0 -0
  1591. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_incremental_archive_with_sink_archive_ok/expected/validate.json +0 -0
  1592. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_incremental_archive_without_sink_archive/config.yml +0 -0
  1593. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_incremental_archive_without_sink_archive/expected/validate.json +0 -0
  1594. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_max_failures_one_ok/config.yml +0 -0
  1595. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_max_failures_one_ok/expected/manifest.json +0 -0
  1596. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_max_failures_one_ok/expected/validate.json +0 -0
  1597. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_max_failures_zero/config.yml +0 -0
  1598. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_max_failures_zero/expected/validate.json +0 -0
  1599. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_namespace_blank/config.yml +0 -0
  1600. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_namespace_blank/expected/validate.json +0 -0
  1601. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_ok/config.yml +0 -0
  1602. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_ok/expected/manifest.json +0 -0
  1603. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_ok/expected/validate.json +0 -0
  1604. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_url_blank/config.yml +0 -0
  1605. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_lineage_url_blank/expected/validate.json +0 -0
  1606. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_abort_severity/config.yml +0 -0
  1607. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_abort_severity/expected/validate.json +0 -0
  1608. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_drop_ok/config.yml +0 -0
  1609. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_drop_ok/expected/manifest.json +0 -0
  1610. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_drop_ok/expected/validate.json +0 -0
  1611. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_drop_on_iceberg/config.yml +0 -0
  1612. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_drop_on_iceberg/expected/validate.json +0 -0
  1613. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_drop_on_primary_key/config.yml +0 -0
  1614. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_drop_on_primary_key/expected/validate.json +0 -0
  1615. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_duplicate_column/config.yml +0 -0
  1616. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_duplicate_column/expected/validate.json +0 -0
  1617. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_ok/config.yml +0 -0
  1618. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_ok/expected/manifest.json +0 -0
  1619. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_ok/expected/validate.json +0 -0
  1620. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_on_iceberg_ok/config.yml +0 -0
  1621. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_on_iceberg_ok/expected/validate.json +0 -0
  1622. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_on_legacy_unique_column/config.yml +0 -0
  1623. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_on_legacy_unique_column/expected/validate.json +0 -0
  1624. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_on_number/config.yml +0 -0
  1625. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_on_number/expected/validate.json +0 -0
  1626. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_on_unique_key/config.yml +0 -0
  1627. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_on_unique_key/expected/validate.json +0 -0
  1628. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_with_key_ok/config.yml +0 -0
  1629. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_hash_with_key_ok/expected/validate.json +0 -0
  1630. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_legacy_unique_ignored_when_unique_keys_set_ok/config.yml +0 -0
  1631. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_legacy_unique_ignored_when_unique_keys_set_ok/expected/manifest.json +0 -0
  1632. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_legacy_unique_ignored_when_unique_keys_set_ok/expected/validate.json +0 -0
  1633. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_ok/config.yml +0 -0
  1634. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_ok/expected/manifest.json +0 -0
  1635. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_ok/expected/validate.json +0 -0
  1636. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_on_number/config.yml +0 -0
  1637. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_on_number/expected/validate.json +0 -0
  1638. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_pattern_without_token/config.yml +0 -0
  1639. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_pattern_without_token/expected/validate.json +0 -0
  1640. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_pattern_zero_width_token/config.yml +0 -0
  1641. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_pattern_zero_width_token/expected/validate.json +0 -0
  1642. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_without_pattern/config.yml +0 -0
  1643. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mask_without_pattern/expected/validate.json +0 -0
  1644. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mismatch_extra_reject_file/config.yml +0 -0
  1645. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mismatch_extra_reject_file/expected/validate.json +0 -0
  1646. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mismatch_fill_nulls_ignore_ok/config.yml +0 -0
  1647. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mismatch_fill_nulls_ignore_ok/expected/manifest.json +0 -0
  1648. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mismatch_fill_nulls_ignore_ok/expected/validate.json +0 -0
  1649. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mismatch_missing_reject_file/config.yml +0 -0
  1650. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_mismatch_missing_reject_file/expected/validate.json +0 -0
  1651. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_nullify_ok/config.yml +0 -0
  1652. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_nullify_ok/expected/manifest.json +0 -0
  1653. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_nullify_ok/expected/validate.json +0 -0
  1654. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_nullify_on_not_nullable/config.yml +0 -0
  1655. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_nullify_on_not_nullable/expected/validate.json +0 -0
  1656. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_redact_ok/config.yml +0 -0
  1657. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_redact_ok/expected/manifest.json +0 -0
  1658. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_redact_ok/expected/validate.json +0 -0
  1659. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_redact_on_primary_key/config.yml +0 -0
  1660. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_redact_on_primary_key/expected/validate.json +0 -0
  1661. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_redact_on_unique_key/config.yml +0 -0
  1662. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_redact_on_unique_key/expected/validate.json +0 -0
  1663. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_tokenize/config.yml +0 -0
  1664. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_tokenize/expected/validate.json +0 -0
  1665. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_unknown_column/config.yml +0 -0
  1666. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_unknown_column/expected/validate.json +0 -0
  1667. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_with_archive/config.yml +0 -0
  1668. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_pii_with_archive/expected/validate.json +0 -0
  1669. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_reject_severity_with_rejected_sink_ok/config.yml +0 -0
  1670. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_reject_severity_with_rejected_sink_ok/expected/manifest.json +0 -0
  1671. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_reject_severity_with_rejected_sink_ok/expected/validate.json +0 -0
  1672. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_reject_severity_without_rejected_sink/config.yml +0 -0
  1673. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_reject_severity_without_rejected_sink/expected/validate.json +0 -0
  1674. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_report_remote_path_on_local/config.yml +0 -0
  1675. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_report_remote_path_on_local/expected/validate.json +0 -0
  1676. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_report_remote_path_on_s3_ok/config.yml +0 -0
  1677. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_report_remote_path_on_s3_ok/expected/manifest.json +0 -0
  1678. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_report_remote_path_on_s3_ok/expected/validate.json +0 -0
  1679. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_accepted_format_unknown/config.yml +0 -0
  1680. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_accepted_format_unknown/expected/validate.json +0 -0
  1681. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_options_compression_unknown/config.yml +0 -0
  1682. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_options_compression_unknown/expected/validate.json +0 -0
  1683. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_options_max_size_per_file_zero/config.yml +0 -0
  1684. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_options_max_size_per_file_zero/expected/validate.json +0 -0
  1685. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_options_row_group_size_zero/config.yml +0 -0
  1686. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_options_row_group_size_zero/expected/validate.json +0 -0
  1687. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_options_valid_ok/config.yml +0 -0
  1688. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_options_valid_ok/expected/manifest.json +0 -0
  1689. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_options_valid_ok/expected/validate.json +0 -0
  1690. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_rejected_csv_ok/config.yml +0 -0
  1691. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_rejected_csv_ok/expected/manifest.json +0 -0
  1692. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_rejected_csv_ok/expected/validate.json +0 -0
  1693. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_rejected_format_parquet/config.yml +0 -0
  1694. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_sink_rejected_format_parquet/expected/validate.json +0 -0
  1695. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_cast_mode_coerce_ok/config.yml +0 -0
  1696. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_cast_mode_coerce_ok/expected/manifest.json +0 -0
  1697. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_cast_mode_coerce_ok/expected/validate.json +0 -0
  1698. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_cast_mode_unknown/config.yml +0 -0
  1699. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_cast_mode_unknown/expected/validate.json +0 -0
  1700. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_format_unknown/config.yml +0 -0
  1701. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_format_unknown/expected/validate.json +0 -0
  1702. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_json_default_mode_ok/config.yml +0 -0
  1703. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_json_default_mode_ok/expected/manifest.json +0 -0
  1704. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_json_default_mode_ok/expected/validate.json +0 -0
  1705. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_json_mode_ndjson_ok/config.yml +0 -0
  1706. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_json_mode_ndjson_ok/expected/manifest.json +0 -0
  1707. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_json_mode_ndjson_ok/expected/validate.json +0 -0
  1708. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_json_mode_unknown/config.yml +0 -0
  1709. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_source_json_mode_unknown/expected/validate.json +0 -0
  1710. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_state_path_blank/config.yml +0 -0
  1711. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_state_path_blank/expected/validate.json +0 -0
  1712. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_state_path_ok/config.yml +0 -0
  1713. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_state_path_ok/expected/manifest.json +0 -0
  1714. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_state_path_ok/expected/validate.json +0 -0
  1715. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_below_minimum/config.yml +0 -0
  1716. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_below_minimum/expected/validate.json +0 -0
  1717. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_d21_floe_ok/config.yml +0 -0
  1718. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_d21_floe_ok/expected/validate.json +0 -0
  1719. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_extra_dot/config.yml +0 -0
  1720. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_extra_dot/expected/validate.json +0 -0
  1721. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_future_major_ok/config.yml +0 -0
  1722. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_major_not_numeric/config.yml +0 -0
  1723. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_major_not_numeric/expected/validate.json +0 -0
  1724. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_minimum_ok/config.yml +0 -0
  1725. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_minimum_ok/expected/manifest.json +0 -0
  1726. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_minimum_ok/expected/validate.json +0 -0
  1727. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_minor_not_numeric/config.yml +0 -0
  1728. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_minor_not_numeric/expected/validate.json +0 -0
  1729. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_no_dot/config.yml +0 -0
  1730. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_version_no_dot/expected/validate.json +0 -0
  1731. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_write_mode_append_ok/config.yml +0 -0
  1732. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_write_mode_append_ok/expected/manifest.json +0 -0
  1733. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_write_mode_append_ok/expected/validate.json +0 -0
  1734. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_write_mode_merge_on_parquet/config.yml +0 -0
  1735. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val1_write_mode_merge_on_parquet/expected/validate.json +0 -0
  1736. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_default_absent_ok/config.yml +0 -0
  1737. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_default_absent_ok/expected/manifest.json +0 -0
  1738. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_default_absent_ok/expected/validate.json +0 -0
  1739. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_default_unknown/config.yml +0 -0
  1740. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_default_unknown/expected/validate.json +0 -0
  1741. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_duplicate/config.yml +0 -0
  1742. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_duplicate/expected/validate.json +0 -0
  1743. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_rest_wh_storage_local/config.yml +0 -0
  1744. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_rest_wh_storage_local/expected/validate.json +0 -0
  1745. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_rest_wh_storage_s3_ok/config.yml +0 -0
  1746. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_rest_wh_storage_s3_ok/expected/manifest.json +0 -0
  1747. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_rest_wh_storage_s3_ok/expected/validate.json +0 -0
  1748. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_rest_wh_storage_unknown/config.yml +0 -0
  1749. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalog_rest_wh_storage_unknown/expected/validate.json +0 -0
  1750. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalogs_empty/config.yml +0 -0
  1751. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalogs_empty/expected/validate.json +0 -0
  1752. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalogs_ok/config.yml +0 -0
  1753. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalogs_ok/expected/manifest.json +0 -0
  1754. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_catalogs_ok/expected/validate.json +0 -0
  1755. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d26_iceberg_no_catalog/config.yml +0 -0
  1756. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d26_iceberg_no_catalog/expected/validate.json +0 -0
  1757. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d28_partition_spec_day_ok/config.yml +0 -0
  1758. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d28_partition_spec_day_ok/expected/validate.json +0 -0
  1759. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_compare_pk/config.yml +0 -0
  1760. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_compare_pk/expected/validate.json +0 -0
  1761. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_ignore_pk/config.yml +0 -0
  1762. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_ignore_pk/expected/validate.json +0 -0
  1763. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_block_overwrite/config.yml +0 -0
  1764. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_block_overwrite/expected/validate.json +0 -0
  1765. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_list_duplicate/config.yml +0 -0
  1766. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_list_duplicate/expected/validate.json +0 -0
  1767. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_list_entry_empty/config.yml +0 -0
  1768. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_list_entry_empty/expected/validate.json +0 -0
  1769. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_list_unknown_column/config.yml +0 -0
  1770. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_list_unknown_column/expected/validate.json +0 -0
  1771. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_scd1_ignore_columns_ok/config.yml +0 -0
  1772. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_scd1_ignore_columns_ok/expected/validate.json +0 -0
  1773. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_scd1_ok/config.yml +0 -0
  1774. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_scd1_ok/expected/validate.json +0 -0
  1775. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_scd2_ok/config.yml +0 -0
  1776. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_merge_scd2_ok/expected/validate.json +0 -0
  1777. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_scd2_column_collides/config.yml +0 -0
  1778. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_scd2_column_collides/expected/validate.json +0 -0
  1779. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_scd2_column_empty/config.yml +0 -0
  1780. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_scd2_column_empty/expected/validate.json +0 -0
  1781. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_scd2_columns_not_unique/config.yml +0 -0
  1782. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_scd2_columns_not_unique/expected/validate.json +0 -0
  1783. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_scd2_with_scd1/config.yml +0 -0
  1784. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_d2_scd2_with_scd1/expected/validate.json +0 -0
  1785. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_evolution_add_columns_iceberg_ok/config.yml +0 -0
  1786. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_evolution_add_columns_iceberg_ok/expected/validate.json +0 -0
  1787. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_evolution_add_columns_not_delta/config.yml +0 -0
  1788. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_evolution_add_columns_not_delta/expected/validate.json +0 -0
  1789. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_evolution_old_version/config.yml +0 -0
  1790. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_evolution_old_version/expected/validate.json +0 -0
  1791. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_evolution_strict_ok/config.yml +0 -0
  1792. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_evolution_strict_ok/expected/manifest.json +0 -0
  1793. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_evolution_strict_ok/expected/validate.json +0 -0
  1794. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_block_on_parquet/config.yml +0 -0
  1795. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_block_on_parquet/expected/validate.json +0 -0
  1796. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_default_catalog_ok/config.yml +0 -0
  1797. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_default_catalog_ok/expected/manifest.json +0 -0
  1798. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_default_catalog_ok/expected/validate.json +0 -0
  1799. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_local_storage/config.yml +0 -0
  1800. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_local_storage/expected/validate.json +0 -0
  1801. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_local_storage_with_warehouse_storage_ok/config.yml +0 -0
  1802. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_local_storage_with_warehouse_storage_ok/expected/manifest.json +0 -0
  1803. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_local_storage_with_warehouse_storage_ok/expected/validate.json +0 -0
  1804. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_no_catalog/config.yml +0 -0
  1805. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_no_catalog/expected/validate.json +0 -0
  1806. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_unknown_catalog/config.yml +0 -0
  1807. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_unknown_catalog/expected/validate.json +0 -0
  1808. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_valid/config.yml +0 -0
  1809. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_valid/expected/manifest.json +0 -0
  1810. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_iceberg_valid/expected/validate.json +0 -0
  1811. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_blank/config.yml +0 -0
  1812. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_blank/expected/validate.json +0 -0
  1813. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_empty/config.yml +0 -0
  1814. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_empty/expected/validate.json +0 -0
  1815. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_empty_field/config.yml +0 -0
  1816. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_empty_field/expected/validate.json +0 -0
  1817. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_empty/config.yml +0 -0
  1818. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_empty/expected/validate.json +0 -0
  1819. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_negative/config.yml +0 -0
  1820. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_negative/expected/validate.json +0 -0
  1821. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_not_numeric/config.yml +0 -0
  1822. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_not_numeric/expected/validate.json +0 -0
  1823. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_overflow/config.yml +0 -0
  1824. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_overflow/expected/validate.json +0 -0
  1825. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_unclosed/config.yml +0 -0
  1826. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_index_unclosed/expected/validate.json +0 -0
  1827. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_leading_dot/config.yml +0 -0
  1828. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_leading_dot/expected/validate.json +0 -0
  1829. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_name_used_when_no_source/config.yml +0 -0
  1830. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_name_used_when_no_source/expected/validate.json +0 -0
  1831. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_unexpected_bracket/config.yml +0 -0
  1832. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_unexpected_bracket/expected/validate.json +0 -0
  1833. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_valid_ok/config.yml +0 -0
  1834. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_valid_ok/expected/manifest.json +0 -0
  1835. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_jsel_valid_ok/expected/validate.json +0 -0
  1836. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_json_columns_limit/config.yml +0 -0
  1837. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_json_columns_limit/expected/validate.json +0 -0
  1838. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_json_columns_limit_ok/config.yml +0 -0
  1839. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_json_columns_limit_ok/expected/manifest.json +0 -0
  1840. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_json_columns_limit_ok/expected/validate.json +0 -0
  1841. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_merge_on_parquet/config.yml +0 -0
  1842. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_merge_on_parquet/expected/validate.json +0 -0
  1843. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_mismatch_extra_unsupported/config.yml +0 -0
  1844. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_mismatch_extra_unsupported/expected/validate.json +0 -0
  1845. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_mismatch_missing_unsupported/config.yml +0 -0
  1846. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_mismatch_missing_unsupported/expected/validate.json +0 -0
  1847. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_mismatch_ok/config.yml +0 -0
  1848. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_mismatch_ok/expected/manifest.json +0 -0
  1849. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_mismatch_ok/expected/validate.json +0 -0
  1850. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_normalize_selector_collision/config.yml +0 -0
  1851. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_normalize_selector_collision/expected/validate.json +0 -0
  1852. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_normalize_strategy_spelling_ok/config.yml +0 -0
  1853. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_normalize_strategy_spelling_ok/expected/manifest.json +0 -0
  1854. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_normalize_strategy_spelling_ok/expected/validate.json +0 -0
  1855. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_normalize_strategy_unsupported/config.yml +0 -0
  1856. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_normalize_strategy_unsupported/expected/validate.json +0 -0
  1857. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_both/config.yml +0 -0
  1858. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_both/expected/validate.json +0 -0
  1859. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_by_on_parquet/config.yml +0 -0
  1860. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_by_on_parquet/expected/validate.json +0 -0
  1861. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_bucket_not_integer/config.yml +0 -0
  1862. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_bucket_not_integer/expected/validate.json +0 -0
  1863. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_bucket_ok/config.yml +0 -0
  1864. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_bucket_ok/expected/validate.json +0 -0
  1865. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_bucket_on_day/config.yml +0 -0
  1866. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_bucket_on_day/expected/validate.json +0 -0
  1867. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_bucket_zero/config.yml +0 -0
  1868. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_bucket_zero/expected/validate.json +0 -0
  1869. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_column_empty/config.yml +0 -0
  1870. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_column_empty/expected/validate.json +0 -0
  1871. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_column_unknown/config.yml +0 -0
  1872. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_column_unknown/expected/validate.json +0 -0
  1873. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_duplicate/config.yml +0 -0
  1874. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_duplicate/expected/validate.json +0 -0
  1875. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_empty/config.yml +0 -0
  1876. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_empty/expected/validate.json +0 -0
  1877. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_ok/config.yml +0 -0
  1878. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_ok/expected/validate.json +0 -0
  1879. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_on_parquet/config.yml +0 -0
  1880. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_on_parquet/expected/validate.json +0 -0
  1881. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_same_column_other_transform_ok/config.yml +0 -0
  1882. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_same_column_other_transform_ok/expected/validate.json +0 -0
  1883. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_transform_unsupported/config.yml +0 -0
  1884. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_part_spec_transform_unsupported/expected/validate.json +0 -0
  1885. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_duplicate/config.yml +0 -0
  1886. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_duplicate/expected/validate.json +0 -0
  1887. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_duplicate_after_trim/config.yml +0 -0
  1888. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_duplicate_after_trim/expected/validate.json +0 -0
  1889. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_empty/config.yml +0 -0
  1890. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_empty/expected/validate.json +0 -0
  1891. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_entry_empty/config.yml +0 -0
  1892. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_entry_empty/expected/validate.json +0 -0
  1893. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_nullable_false_ok/config.yml +0 -0
  1894. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_nullable_false_ok/expected/manifest.json +0 -0
  1895. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_nullable_false_ok/expected/validate.json +0 -0
  1896. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_nullable_true/config.yml +0 -0
  1897. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_nullable_true/expected/validate.json +0 -0
  1898. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_ok/config.yml +0 -0
  1899. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_ok/expected/manifest.json +0 -0
  1900. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_ok/expected/validate.json +0 -0
  1901. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_trimmed_ok/config.yml +0 -0
  1902. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_trimmed_ok/expected/manifest.json +0 -0
  1903. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_trimmed_ok/expected/validate.json +0 -0
  1904. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_unknown_column/config.yml +0 -0
  1905. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_pk_unknown_column/expected/validate.json +0 -0
  1906. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_accepted_unknown/config.yml +0 -0
  1907. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_accepted_unknown/expected/validate.json +0 -0
  1908. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_accepted_unknown_no_block/config.yml +0 -0
  1909. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_accepted_unknown_no_block/expected/validate.json +0 -0
  1910. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_rejected_unknown/config.yml +0 -0
  1911. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_rejected_unknown/expected/validate.json +0 -0
  1912. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_report_ok/config.yml +0 -0
  1913. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_report_ok/expected/manifest.json +0 -0
  1914. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_report_ok/expected/validate.json +0 -0
  1915. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_report_unknown/config.yml +0 -0
  1916. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_report_unknown/expected/validate.json +0 -0
  1917. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_report_unknown_no_block/config.yml +0 -0
  1918. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_report_unknown_no_block/expected/validate.json +0 -0
  1919. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_source_local_no_block_ok/config.yml +0 -0
  1920. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_source_local_no_block_ok/expected/manifest.json +0 -0
  1921. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_source_local_no_block_ok/expected/validate.json +0 -0
  1922. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_source_unknown/config.yml +0 -0
  1923. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_source_unknown/expected/validate.json +0 -0
  1924. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_source_unknown_no_block/config.yml +0 -0
  1925. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_ref_source_unknown_no_block/expected/validate.json +0 -0
  1926. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_default_missing/config.yml +0 -0
  1927. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_default_missing/expected/validate.json +0 -0
  1928. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_default_unknown/config.yml +0 -0
  1929. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_default_unknown/expected/validate.json +0 -0
  1930. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_duplicate/config.yml +0 -0
  1931. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_duplicate/expected/validate.json +0 -0
  1932. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_s3_no_bucket/config.yml +0 -0
  1933. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_s3_no_bucket/expected/validate.json +0 -0
  1934. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_s3_no_region/config.yml +0 -0
  1935. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_s3_no_region/expected/validate.json +0 -0
  1936. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_s3_ok/config.yml +0 -0
  1937. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_s3_ok/expected/manifest.json +0 -0
  1938. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_s3_ok/expected/validate.json +0 -0
  1939. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_type_unsupported/config.yml +0 -0
  1940. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storage_type_unsupported/expected/validate.json +0 -0
  1941. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storages_empty/config.yml +0 -0
  1942. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storages_empty/expected/validate.json +0 -0
  1943. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storages_ok/config.yml +0 -0
  1944. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storages_ok/expected/manifest.json +0 -0
  1945. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_storages_ok/expected/validate.json +0 -0
  1946. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_type_aliases_ok/config.yml +0 -0
  1947. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_type_aliases_ok/expected/validate.json +0 -0
  1948. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_type_time/config.yml +0 -0
  1949. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_type_time/expected/validate.json +0 -0
  1950. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_type_unsupported/config.yml +0 -0
  1951. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_type_unsupported/expected/validate.json +0 -0
  1952. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_duplicate_column/config.yml +0 -0
  1953. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_duplicate_column/expected/validate.json +0 -0
  1954. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_duplicate_group_warns_ok/config.yml +0 -0
  1955. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_duplicate_group_warns_ok/expected/manifest.json +0 -0
  1956. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_duplicate_group_warns_ok/expected/validate.json +0 -0
  1957. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_empty/config.yml +0 -0
  1958. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_empty/expected/validate.json +0 -0
  1959. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_entry_empty/config.yml +0 -0
  1960. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_entry_empty/expected/validate.json +0 -0
  1961. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_group_empty/config.yml +0 -0
  1962. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_group_empty/expected/validate.json +0 -0
  1963. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_legacy_unique_warns_ok/config.yml +0 -0
  1964. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_legacy_unique_warns_ok/expected/manifest.json +0 -0
  1965. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_legacy_unique_warns_ok/expected/validate.json +0 -0
  1966. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_ok/config.yml +0 -0
  1967. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_ok/expected/manifest.json +0 -0
  1968. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_ok/expected/validate.json +0 -0
  1969. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_unknown_column/config.yml +0 -0
  1970. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/config/val2_uk_unknown_column/expected/validate.json +0 -0
  1971. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/example/standalone/config.yml +0 -0
  1972. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/example/standalone/expected/accepted/orders.parquet +0 -0
  1973. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/example/standalone/expected/manifest.json +0 -0
  1974. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/example/standalone/expected/rejected/orders/part-00000.csv +0 -0
  1975. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/example/standalone/expected/reports/report/sales/run_ID/run.summary.json +0 -0
  1976. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/example/standalone/expected/reports/report/sales/run_ID/sales/orders/run.json +0 -0
  1977. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/example/standalone/in/orders.csv +0 -0
  1978. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file/config.yml +0 -0
  1979. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file/expected/accepted/orders.parquet +0 -0
  1980. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  1981. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -0
  1982. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file/in/orders.csv +0 -0
  1983. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file/runs +0 -0
  1984. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file_full_refresh/config.yml +0 -0
  1985. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file_full_refresh/expected/accepted/orders.parquet +0 -0
  1986. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file_full_refresh/expected/manifest.json +0 -0
  1987. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file_full_refresh/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  1988. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file_full_refresh/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -0
  1989. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file_full_refresh/in/orders.csv +0 -0
  1990. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/incremental_file_full_refresh/runs +0 -0
  1991. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/json_orders/config.yml +0 -0
  1992. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/json_orders/expected/accepted/orders.parquet +0 -0
  1993. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/json_orders/expected/manifest.json +0 -0
  1994. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/json_orders/expected/rejected/orders/part-00000.csv +0 -0
  1995. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/json_orders/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  1996. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/json_orders/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -0
  1997. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/json_orders/in/orders_invalid.json +0 -0
  1998. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/json_orders/in/orders_valid.json +0 -0
  1999. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/README.md +0 -0
  2000. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/config.yml +0 -0
  2001. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/expected/accepted/finance_orders.parquet +0 -0
  2002. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/expected/accepted/sales_orders.parquet +0 -0
  2003. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/expected/manifest.json +0 -0
  2004. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/expected/rejected/sales_orders/part-00000.csv +0 -0
  2005. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/in/finance/orders.csv +0 -0
  2006. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/in/sales/orders.csv +0 -0
  2007. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/manifest_run +0 -0
  2008. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/manifest_run/runs +0 -0
  2009. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch/config.yml +0 -0
  2010. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch/expected/accepted/customers.parquet +0 -0
  2011. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch/expected/manifest.json +0 -0
  2012. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch/expected/rejected/customers/part-00000.csv +0 -0
  2013. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  2014. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch/expected/reports/report/spike/run_ID/spike/customers/run.json +0 -0
  2015. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch/in/customers.csv +0 -0
  2016. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_abort/config.yml +0 -0
  2017. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_abort/expected/accepted/orders.parquet +0 -0
  2018. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_abort/expected/exit_code +0 -0
  2019. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_abort/expected/manifest.json +0 -0
  2020. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_abort/expected/rejected/orders/orders.csv +0 -0
  2021. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_abort/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  2022. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_abort/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -0
  2023. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_abort/in/orders.csv +0 -0
  2024. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_file_order/README.md +0 -0
  2025. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_file_order/config.yml +0 -0
  2026. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_file_order/expected/accepted/orders.parquet +0 -0
  2027. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_file_order/expected/manifest.json +0 -0
  2028. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_file_order/expected/rejected/orders/b.csv +0 -0
  2029. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_file_order/expected/reports/report/run_ID/orders/run.json +0 -0
  2030. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_file_order/expected/reports/report/run_ID/run.summary.json +0 -0
  2031. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_file_order/in/a.csv +0 -0
  2032. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_file_order/in/b.csv +0 -0
  2033. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_reject_file/config.yml +0 -0
  2034. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_reject_file/expected/accepted/orders.parquet +0 -0
  2035. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_reject_file/expected/manifest.json +0 -0
  2036. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_reject_file/expected/rejected/orders/orders.csv +0 -0
  2037. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_reject_file/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  2038. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_reject_file/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -0
  2039. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/mismatch_reject_file/in/orders.csv +0 -0
  2040. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/orc_read/config.yml +0 -0
  2041. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/orc_read/expected/accepted/orc_read.parquet +0 -0
  2042. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/orc_read/expected/manifest.json +0 -0
  2043. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/orc_read/expected/rejected/orc_read/part-00000.csv +0 -0
  2044. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/orc_read/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  2045. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/orc_read/expected/reports/report/spike/run_ID/spike/orc_read/run.json +0 -0
  2046. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/orc_read/in/orc_read.orc +0 -0
  2047. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_archive_full_refresh/README.md +0 -0
  2048. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_archive_full_refresh/config.yml +0 -0
  2049. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_archive_full_refresh/expected/accepted/orders.parquet +0 -0
  2050. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_archive_full_refresh/expected/events.jsonl +0 -0
  2051. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_archive_full_refresh/expected/manifest.json +0 -0
  2052. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_archive_full_refresh/expected/reports/report/raw/run_ID/raw/orders/run.json +0 -0
  2053. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_archive_full_refresh/expected/reports/report/raw/run_ID/run.summary.json +0 -0
  2054. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_archive_full_refresh/in/2026/10/24/f9e8/orders.csv +0 -0
  2055. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_archive_full_refresh/runs +0 -0
  2056. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/README.md +0 -0
  2057. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/config.yml +0 -0
  2058. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/expected/accepted/orders.parquet +0 -0
  2059. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/expected/events.jsonl +0 -0
  2060. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/expected/manifest.json +0 -0
  2061. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/expected/reports/report/raw/run_ID/raw/orders/run.json +0 -0
  2062. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/expected/reports/report/raw/run_ID/run.summary.json +0 -0
  2063. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/in/2026/10/20/a1/orders.csv +0 -0
  2064. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/in/2026/10/23/b2/orders.csv +0 -0
  2065. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/in/2026/10/24/c3/orders.csv +0 -0
  2066. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_file_watermark/runs +0 -0
  2067. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/README.md +0 -0
  2068. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/config.yml +0 -0
  2069. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/expected/accepted/orders.parquet +0 -0
  2070. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/expected/events.jsonl +0 -0
  2071. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/expected/manifest.json +0 -0
  2072. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/expected/reports/report/raw/run_ID/raw/orders/run.json +0 -0
  2073. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/expected/reports/report/raw/run_ID/run.summary.json +0 -0
  2074. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/in/year=2026/month=10/day=24/hour=09/orders.csv +0 -0
  2075. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/in/year=2026/month=10/day=24/hour=13/orders.csv +0 -0
  2076. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_hive_hour/runs +0 -0
  2077. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/README.md +0 -0
  2078. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/config.yml +0 -0
  2079. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/expected/accepted/orders.parquet +0 -0
  2080. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/expected/events.jsonl +0 -0
  2081. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/expected/manifest.json +0 -0
  2082. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/expected/rejected/orders/part-00000.csv +0 -0
  2083. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/expected/reports/report/raw/run_ID/raw/orders/run.json +0 -0
  2084. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/expected/reports/report/raw/run_ID/run.summary.json +0 -0
  2085. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/in/2026/10/24/f9e8/orders.csv +0 -0
  2086. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/in/2026/10/25/a1b2/orders.csv +0 -0
  2087. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_two_days/runs +0 -0
  2088. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_unmatched/README.md +0 -0
  2089. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_unmatched/config.yml +0 -0
  2090. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_unmatched/expected/events.jsonl +0 -0
  2091. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_unmatched/expected/exit_code +0 -0
  2092. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_unmatched/in/2026/10/24/f9e8/orders.csv +0 -0
  2093. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_unmatched/in/2026/10/24/orders.csv +0 -0
  2094. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/partitioning_unmatched/runs +0 -0
  2095. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/README.md +0 -0
  2096. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/config.yml +0 -0
  2097. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/expected/accepted/orders.parquet +0 -0
  2098. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/expected/manifest.json +0 -0
  2099. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/expected/rejected/orders/a.csv +0 -0
  2100. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/expected/rejected/orders/b.csv +0 -0
  2101. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/expected/reports/report/run_ID/orders/run.json +0 -0
  2102. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/expected/reports/report/run_ID/run.summary.json +0 -0
  2103. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/in/a.csv +0 -0
  2104. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/precheck_header_order/in/b.csv +0 -0
  2105. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/record.py +0 -0
  2106. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_abort/config.yml +0 -0
  2107. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_abort/expected/accepted/orders.parquet +0 -0
  2108. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_abort/expected/exit_code +0 -0
  2109. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_abort/expected/manifest.json +0 -0
  2110. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_abort/expected/rejected/orders/orders.csv +0 -0
  2111. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_abort/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  2112. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_abort/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -0
  2113. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_abort/in/orders.csv +0 -0
  2114. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_warn/config.yml +0 -0
  2115. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_warn/expected/accepted/orders.parquet +0 -0
  2116. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_warn/expected/manifest.json +0 -0
  2117. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_warn/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  2118. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_warn/expected/reports/report/spike/run_ID/spike/orders/run.json +0 -0
  2119. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/severity_warn/in/orders.csv +0 -0
  2120. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unique_pii/config.yml +0 -0
  2121. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unique_pii/expected/accepted/orders.parquet +0 -0
  2122. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unique_pii/expected/rejected/orders/part-00000.csv +0 -0
  2123. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unique_pii/expected/rejected/orders/part-UUID.csv +0 -0
  2124. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unique_pii/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  2125. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unique_pii/in/a.csv +0 -0
  2126. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unique_pii/in/b.csv +0 -0
  2127. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs/README.md +0 -0
  2128. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs/config.yml +0 -0
  2129. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs/expected/events.jsonl +0 -0
  2130. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs/expected/exit_code +0 -0
  2131. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs/in/first.csv +0 -0
  2132. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs/runs +0 -0
  2133. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs_dot/README.md +0 -0
  2134. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs_dot/config.yml +0 -0
  2135. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs_dot/expected/events.jsonl +0 -0
  2136. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs_dot/expected/exit_code +0 -0
  2137. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs_dot/in/first.csv +0 -0
  2138. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/unresolved_inputs_dot/runs +0 -0
  2139. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/write_oserror/README.md +0 -0
  2140. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/write_oserror/config.yml +0 -0
  2141. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/write_oserror/expected/events.jsonl +0 -0
  2142. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/write_oserror/expected/exit_code +0 -0
  2143. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/write_oserror/in/first.csv +0 -0
  2144. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/write_oserror/out/accepted +0 -0
  2145. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/write_oserror/runs +0 -0
  2146. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xlsx/config.yml +0 -0
  2147. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xlsx/expected/accepted/orders.parquet +0 -0
  2148. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xlsx/expected/manifest.json +0 -0
  2149. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xlsx/expected/reports/report/run_ID/orders/run.json +0 -0
  2150. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xlsx/expected/reports/report/run_ID/run.summary.json +0 -0
  2151. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xlsx/in/orders.xlsx +0 -0
  2152. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xml/config.yml +0 -0
  2153. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xml/expected/accepted/items.parquet +0 -0
  2154. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xml/expected/manifest.json +0 -0
  2155. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xml/expected/rejected/items/part-00000.csv +0 -0
  2156. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xml/expected/reports/report/spike/run_ID/run.summary.json +0 -0
  2157. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xml/expected/reports/report/spike/run_ID/spike/items/run.json +0 -0
  2158. {floe_python-0.8.8 → floe_python-0.9.0}/conformance/xml/in/items.xml +0 -0
  2159. {floe_python-0.8.8 → floe_python-0.9.0}/context/architecture.md +0 -0
  2160. {floe_python-0.8.8 → floe_python-0.9.0}/context/coding-standards.md +0 -0
  2161. {floe_python-0.8.8 → floe_python-0.9.0}/context/decisions/entity-commit-guarantees.md +0 -0
  2162. {floe_python-0.8.8 → floe_python-0.9.0}/context/decisions/incremental-state-cas.md +0 -0
  2163. {floe_python-0.8.8 → floe_python-0.9.0}/context/decisions/merge-delegated-to-sink.md +0 -0
  2164. {floe_python-0.8.8 → floe_python-0.9.0}/context/decisions/polars-and-arrow.md +0 -0
  2165. {floe_python-0.8.8 → floe_python-0.9.0}/context/decisions/python-core-for-olf.md +0 -0
  2166. {floe_python-0.8.8 → floe_python-0.9.0}/context/decisions/structured-floe-error.md +0 -0
  2167. {floe_python-0.8.8 → floe_python-0.9.0}/context/orchestrators.md +0 -0
  2168. {floe_python-0.8.8 → floe_python-0.9.0}/context/project.md +0 -0
  2169. {floe_python-0.8.8 → floe_python-0.9.0}/context/testing-strategy.md +0 -0
  2170. {floe_python-0.8.8 → floe_python-0.9.0}/docs/assets/architecture.png +0 -0
  2171. {floe_python-0.8.8 → floe_python-0.9.0}/docs/assets/floe-banner.png +0 -0
  2172. {floe_python-0.8.8 → floe_python-0.9.0}/docs/assets/floe.png +0 -0
  2173. {floe_python-0.8.8 → floe_python-0.9.0}/docs/checks.md +0 -0
  2174. {floe_python-0.8.8 → floe_python-0.9.0}/docs/cli.md +0 -0
  2175. {floe_python-0.8.8 → floe_python-0.9.0}/docs/how-it-works.md +0 -0
  2176. {floe_python-0.8.8 → floe_python-0.9.0}/docs/lineage.md +0 -0
  2177. {floe_python-0.8.8 → floe_python-0.9.0}/docs/logging.md +0 -0
  2178. {floe_python-0.8.8 → floe_python-0.9.0}/docs/projects.md +0 -0
  2179. {floe_python-0.8.8 → floe_python-0.9.0}/docs/python-bindings.md +0 -0
  2180. {floe_python-0.8.8 → floe_python-0.9.0}/docs/report.md +0 -0
  2181. {floe_python-0.8.8 → floe_python-0.9.0}/docs/sinks/options.md +0 -0
  2182. {floe_python-0.8.8 → floe_python-0.9.0}/docs/sinks/parquet.md +0 -0
  2183. {floe_python-0.8.8 → floe_python-0.9.0}/docs/storages/s3.md +0 -0
  2184. {floe_python-0.8.8 → floe_python-0.9.0}/docs/summary.md +0 -0
  2185. {floe_python-0.8.8 → floe_python-0.9.0}/docs/variables.md +0 -0
  2186. {floe_python-0.8.8 → floe_python-0.9.0}/docs/write_modes.md +0 -0
  2187. {floe_python-0.8.8 → floe_python-0.9.0}/example/README.md +0 -0
  2188. {floe_python-0.8.8 → floe_python-0.9.0}/example/config.yml +0 -0
  2189. {floe_python-0.8.8 → floe_python-0.9.0}/example/in/customer/customers_invalid.csv +0 -0
  2190. {floe_python-0.8.8 → floe_python-0.9.0}/example/in/customer/customers_missing.csv +0 -0
  2191. {floe_python-0.8.8 → floe_python-0.9.0}/example/in/customer/customers_valid.csv +0 -0
  2192. {floe_python-0.8.8 → floe_python-0.9.0}/example/in/orders/orders_invalid.json +0 -0
  2193. {floe_python-0.8.8 → floe_python-0.9.0}/example/in/orders/orders_valid.json +0 -0
  2194. {floe_python-0.8.8 → floe_python-0.9.0}/example/profiles/dev.yml +0 -0
  2195. {floe_python-0.8.8 → floe_python-0.9.0}/example/profiles/prod.yml +0 -0
  2196. {floe_python-0.8.8 → floe_python-0.9.0}/example/profiles/uat.yml +0 -0
  2197. {floe_python-0.8.8 → floe_python-0.9.0}/example/project/bronze/csv_drop/customer_accounts.csv +0 -0
  2198. {floe_python-0.8.8 → floe_python-0.9.0}/example/project/bronze/csv_drop/ledger_accounts.csv +0 -0
  2199. {floe_python-0.8.8 → floe_python-0.9.0}/example/project/config.yml +0 -0
  2200. {floe_python-0.8.8 → floe_python-0.9.0}/example/project/domains/finance/_domain.yml +0 -0
  2201. {floe_python-0.8.8 → floe_python-0.9.0}/example/project/domains/finance/accounts.yml +0 -0
  2202. {floe_python-0.8.8 → floe_python-0.9.0}/example/project/domains/sales/_domain.yml +0 -0
  2203. {floe_python-0.8.8 → floe_python-0.9.0}/example/project/domains/sales/accounts.yml +0 -0
  2204. {floe_python-0.8.8 → floe_python-0.9.0}/example/project/sources.yml +0 -0
  2205. {floe_python-0.8.8 → floe_python-0.9.0}/example/standalone/config.yml +0 -0
  2206. {floe_python-0.8.8 → floe_python-0.9.0}/example/standalone/in/orders.csv +0 -0
  2207. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/LOCAL_DEV.md +0 -0
  2208. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/INTEGRATION_SPEC.md +0 -0
  2209. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/dags/floe_example_operator_dag.py +0 -0
  2210. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/example/config.hr.yml +0 -0
  2211. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/example/in/hr/employees.csv +0 -0
  2212. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/example/in/sales/orders.csv +0 -0
  2213. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/schemas/floe.airflow.run.v1.json +0 -0
  2214. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/schemas/floe.airflow.validate.v1.json +0 -0
  2215. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/src/airflow_floe/__init__.py +0 -0
  2216. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/src/airflow_floe/databricks_client.py +0 -0
  2217. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/src/airflow_floe/databricks_runner.py +0 -0
  2218. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/src/airflow_floe/hooks.py +0 -0
  2219. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/src/airflow_floe/k8s_status.py +0 -0
  2220. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/src/airflow_floe/kubernetes_runner.py +0 -0
  2221. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/src/airflow_floe/manifest_discovery.py +0 -0
  2222. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/src/airflow_floe/operators.py +0 -0
  2223. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/src/airflow_floe/runtime.py +0 -0
  2224. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/tests/fixtures/manifest_0_8.json +0 -0
  2225. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/tests/test_databricks_client.py +0 -0
  2226. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/tests/test_databricks_runner.py +0 -0
  2227. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/tests/test_hook_and_operator.py +0 -0
  2228. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/tests/test_kubernetes_runner.py +0 -0
  2229. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/tests/test_manifest_discovery.py +0 -0
  2230. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/airflow-floe/tests/test_runtime.py +0 -0
  2231. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/.gitignore +0 -0
  2232. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/INTEGRATION_SPEC.md +0 -0
  2233. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/MANIFEST.in +0 -0
  2234. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/README.md +0 -0
  2235. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/config.hr.yml +0 -0
  2236. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/config.sales.yml +0 -0
  2237. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/config.yml +0 -0
  2238. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/definitions.py +0 -0
  2239. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/in/hr/employees.csv +0 -0
  2240. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/in/sales/invoices.csv +0 -0
  2241. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/in/sales/orders.csv +0 -0
  2242. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/manifest.dagster.json +0 -0
  2243. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/manifests/hr.manifest.json +0 -0
  2244. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/example/manifests/sales.manifest.json +0 -0
  2245. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/setup.py +0 -0
  2246. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/src/floe_dagster/__init__.py +0 -0
  2247. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/src/floe_dagster/asset_checks.py +0 -0
  2248. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/src/floe_dagster/databricks_client.py +0 -0
  2249. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/src/floe_dagster/databricks_runner.py +0 -0
  2250. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/src/floe_dagster/definitions.py +0 -0
  2251. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/src/floe_dagster/events.py +0 -0
  2252. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/src/floe_dagster/k8s_status.py +0 -0
  2253. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/src/floe_dagster/kubernetes_runner.py +0 -0
  2254. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/conftest.py +0 -0
  2255. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/fixtures/manifest.json +0 -0
  2256. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/fixtures/manifest_hr.json +0 -0
  2257. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/fixtures/manifest_sales.json +0 -0
  2258. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/fixtures/run_events.ndjson +0 -0
  2259. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_config_mode.py +0 -0
  2260. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_databricks_client.py +0 -0
  2261. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_databricks_runner.py +0 -0
  2262. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_domain_scope.py +0 -0
  2263. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_events.py +0 -0
  2264. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_kubernetes_runner.py +0 -0
  2265. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_localrunner_optional.py +0 -0
  2266. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_remote_json.py +0 -0
  2267. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_runner_defaults.py +0 -0
  2268. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_s3_boto3.py +0 -0
  2269. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/tests/test_s3_boto3_service.py +0 -0
  2270. {floe_python-0.8.8 → floe_python-0.9.0}/orchestrators/dagster-floe/workspace.yaml +0 -0
  2271. {floe_python-0.8.8 → floe_python-0.9.0}/schemas/README.md +0 -0
  2272. {floe_python-0.8.8 → floe_python-0.9.0}/schemas/domains.schema.yaml +0 -0
  2273. {floe_python-0.8.8 → floe_python-0.9.0}/schemas/entity.schema.yaml +0 -0
  2274. {floe_python-0.8.8 → floe_python-0.9.0}/schemas/project.schema.yaml +0 -0
  2275. {floe_python-0.8.8 → floe_python-0.9.0}/schemas/sources.schema.yaml +0 -0
  2276. {floe_python-0.8.8 → floe_python-0.9.0}/scripts/check_orchestrator_drift.py +0 -0
  2277. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/__init__.py +0 -0
  2278. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/__main__.py +0 -0
  2279. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/_cli.py +0 -0
  2280. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/_cli_output.py +0 -0
  2281. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/add_entity.py +0 -0
  2282. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/checks/cast.py +0 -0
  2283. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/checks/mismatch.py +0 -0
  2284. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/checks/normalize.py +0 -0
  2285. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/checks/rows.py +0 -0
  2286. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/__init__.py +0 -0
  2287. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/entity.py +0 -0
  2288. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/include.py +0 -0
  2289. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/parse.py +0 -0
  2290. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/project.py +0 -0
  2291. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/storage.py +0 -0
  2292. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/types.py +0 -0
  2293. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/validate.py +0 -0
  2294. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/vars.py +0 -0
  2295. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/config/yaml.py +0 -0
  2296. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/errors.py +0 -0
  2297. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/glob.py +0 -0
  2298. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/iceberg/merge.py +0 -0
  2299. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/iceberg/unique.py +0 -0
  2300. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/lineage/events.py +0 -0
  2301. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/lineage/observer.py +0 -0
  2302. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/maintain.py +0 -0
  2303. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/manifest_run.py +0 -0
  2304. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/pii.py +0 -0
  2305. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/py.typed +0 -0
  2306. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/read/__init__.py +0 -0
  2307. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/read/avro.py +0 -0
  2308. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/read/csv.py +0 -0
  2309. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/read/json.py +0 -0
  2310. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/read/orc.py +0 -0
  2311. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/read/parquet.py +0 -0
  2312. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/read/xlsx.py +0 -0
  2313. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/read/xml.py +0 -0
  2314. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/report/entity.py +0 -0
  2315. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/report/summary.py +0 -0
  2316. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/run/events.py +0 -0
  2317. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/run/parallel.py +0 -0
  2318. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/storage/__init__.py +0 -0
  2319. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/storage/inputs.py +0 -0
  2320. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/storage/paths.py +0 -0
  2321. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/storage/prefetch.py +0 -0
  2322. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/storage/resolve.py +0 -0
  2323. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/write/__init__.py +0 -0
  2324. {floe_python-0.8.8 → floe_python-0.9.0}/src/floe/write/outputs.py +0 -0
  2325. {floe_python-0.8.8 → floe_python-0.9.0}/tests/integration/test_iceberg_catalog.py +0 -0
  2326. {floe_python-0.8.8 → floe_python-0.9.0}/tests/integration/test_iceberg_glue.py +0 -0
  2327. {floe_python-0.8.8 → floe_python-0.9.0}/tests/integration/test_iceberg_merge.py +0 -0
  2328. {floe_python-0.8.8 → floe_python-0.9.0}/tests/integration/test_iceberg_write.py +0 -0
  2329. {floe_python-0.8.8 → floe_python-0.9.0}/tests/integration/test_profile_s3_seaweedfs.py +0 -0
  2330. {floe_python-0.8.8 → floe_python-0.9.0}/tests/integration/test_run_polaris_parallel.py +0 -0
  2331. {floe_python-0.8.8 → floe_python-0.9.0}/tests/integration/test_run_seaweedfs.py +0 -0
  2332. {floe_python-0.8.8 → floe_python-0.9.0}/tests/integration/test_s3_seaweedfs.py +0 -0
  2333. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/checks/test_cast.py +0 -0
  2334. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/checks/test_cast_native.py +0 -0
  2335. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/checks/test_mismatch.py +0 -0
  2336. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/checks/test_rows.py +0 -0
  2337. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/config/test_entity.py +0 -0
  2338. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/config/test_include.py +0 -0
  2339. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/config/test_project.py +0 -0
  2340. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/config/test_readers.py +0 -0
  2341. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/config/test_storage.py +0 -0
  2342. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/config/test_template.py +0 -0
  2343. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/config/test_vars.py +0 -0
  2344. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/config/test_yaml.py +0 -0
  2345. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/fixtures/public_api/config.yml +0 -0
  2346. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/fixtures/public_api/in/customer/customers_valid.csv +0 -0
  2347. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/fixtures/public_api/invalid_config.yml +0 -0
  2348. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/fixtures/public_api/profile.yml +0 -0
  2349. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/iceberg/test_catalog_reuse.py +0 -0
  2350. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/iceberg/test_merge.py +0 -0
  2351. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/iceberg/test_merge_commit_retry.py +0 -0
  2352. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/iceberg/test_unique_seed.py +0 -0
  2353. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/iceberg/test_write.py +0 -0
  2354. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/lineage/test_lineage_events.py +0 -0
  2355. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/lineage/test_lineage_observer.py +0 -0
  2356. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/read/test_avro.py +0 -0
  2357. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/read/test_csv.py +0 -0
  2358. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/read/test_json.py +0 -0
  2359. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/read/test_orc.py +0 -0
  2360. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/read/test_parquet.py +0 -0
  2361. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/read/test_xlsx.py +0 -0
  2362. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/read/test_xml.py +0 -0
  2363. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/report/test_entity_report.py +0 -0
  2364. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/report/test_summary.py +0 -0
  2365. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/run/test_incremental.py +0 -0
  2366. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/run/test_run_stream.py +0 -0
  2367. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/state/rust_0_7_state.json +0 -0
  2368. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/storage/test_local.py +0 -0
  2369. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/storage/test_partitioning.py +0 -0
  2370. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/storage/test_paths.py +0 -0
  2371. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/storage/test_prefetch.py +0 -0
  2372. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/storage/test_resolve.py +0 -0
  2373. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_add_entity_infer.py +0 -0
  2374. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_cli_maintain.py +0 -0
  2375. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_cli_output.py +0 -0
  2376. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_cli_run.py +0 -0
  2377. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_cli_run_manifest.py +0 -0
  2378. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_cli_state.py +0 -0
  2379. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_cli_validate.py +0 -0
  2380. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_cli_version.py +0 -0
  2381. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_glob.py +0 -0
  2382. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_import.py +0 -0
  2383. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_pii.py +0 -0
  2384. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_profile_env.py +0 -0
  2385. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_public_api.py +0 -0
  2386. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_python_m.py +0 -0
  2387. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/test_run_workers.py +0 -0
  2388. {floe_python-0.8.8 → floe_python-0.9.0}/tests/unit/write/test_outputs.py +0 -0
@@ -0,0 +1,1467 @@
1
+ # Changelog
2
+
3
+ All notable changes to Floe are documented in this file.
4
+
5
+ ## v0.9.0
6
+
7
+ Floe 0.9 accepts configs with `version:` up to `"0.9"` and generates manifests with `spec_version: "0.9"`; use
8
+ dagster-floe 0.5 or airflow-floe 0.3 with it.
9
+
10
+ - **A `kubernetes_job` runner passes its pod options through to the manifest (#1065).** The profile's
11
+ `kubernetes_job` runner keeps every key the core does not use (`security_context`, `node_selector`,
12
+ `tolerations`, `priority_class_name`, ...) as written, and the manifest carries it; a new pod option needs only a
13
+ dagster-floe release. The core no longer type-checks these options: a mistyped key or a wrongly typed pod option
14
+ now passes `floe validate` (dagster-floe still rejects a wrongly typed known option when it loads the manifest).
15
+ `local` and `databricks_job` runners still accept and ignore the old pod keys (`labels`, `tolerations`, ...)
16
+ and reject other unknown keys; a non-finite number (`.inf`, `.nan`) in a pod option is rejected. Existing manifests
17
+ are unchanged.
18
+
19
+ - **File-mode state prunes ingested entries behind a stored `pruned_before` date (#949).** With
20
+ `incremental_mode: file` and `source.partitioning`, each successful run moves `pruned_before` to the watermark
21
+ minus `lookback_days` and drops older `files` entries in the same state write, so the state file no longer grows
22
+ with every ingested file. A normal run never lists days before `pruned_before`, even after `lookback_days` is
23
+ raised; only `--full-refresh` does. After a failed full refresh the next run lists from `pruned_before`, no longer
24
+ from the start. State files without the field load unchanged.
25
+
26
+ - **A full refresh replays same-day S3 archive copies in their original order (#939).** An S3 archive copy keeps
27
+ the source's modification time in the object metadata `floe-source-mtime`, and a full refresh of a partitioned
28
+ entity reads it back (one HEAD per archived file) to order same-day batches. Before, batches archived in the same
29
+ second could replay in batch-name order and keep a different version of a key than the first run. Archiving now
30
+ takes one HEAD on the source before each copy; archives written before this change keep the old order.
31
+
32
+ - **`incremental_mode: file` with no source files has nothing pending (#1139).** An entity whose source prefix is
33
+ empty or missing used to fail the run with `no input files matched` / `no input objects matched`. It now finishes
34
+ with 0 files and 0 rows and leaves its table and state untouched, as when every listed file was already processed.
35
+ `--full-refresh` with no source files, and `incremental_mode: none` or `archive`, still fail.
36
+
37
+ - **Compaction no longer keeps all-deleted manifests in the manifest list (#1136).** `floe maintain --compact` left
38
+ one more dead manifest in the table's manifest list on every run, so later scans and commits read more manifests
39
+ each time; it now drops them, as overwrites do since v0.8.9.
40
+
41
+ ## v0.8.9
42
+
43
+ - **A file removed after listing no longer aborts a run with `sink.rejected` set (#1121).** The file is reported as
44
+ failed with its read error, without a raw copy, and the run continues.
45
+
46
+ - **Tied unique-key samples are ordered by the key, not its Rust Debug text (#984).** When duplicate keys share a
47
+ count, the report samples now order them by value: numbers numerically (2 before 10, no longer 10 before 2),
48
+ strings by code point, and composite keys column by column. Reports whose tied samples held keys of different
49
+ digit counts, or strings with control characters, list them in a different order.
50
+
51
+ - **Iceberg sinks apply `options.compression` and `options.row_group_size` (#1009).** Both were parsed and
52
+ validated but ignored for `sink.accepted.format: iceberg`. `overwrite` and `append` now write data files with the
53
+ configured codec and rows per row group, for that write only; the table's properties are not changed. Merge modes
54
+ still ignore them.
55
+
56
+ - **Parallel runs list entity inputs on the worker pool (#1131).** With `workers` > 1, the inputs of all entities are
57
+ listed on up to `workers` threads instead of one after another; they are still all resolved before the first
58
+ `entity_started`, and a listing failure raises the first error in config order.
59
+
60
+ - **Opening an existing Iceberg table takes one catalog call instead of three (#1130).** `ensure_table` now tries
61
+ `load_table` first and checks or creates the namespace only when the table is missing; merge entities no longer
62
+ call `table_exists` and `load_table` before it. With a remote catalog this saves about 0.2 s per entity at
63
+ 100 ms of latency. Errors and messages are unchanged.
64
+
65
+ - **Overwriting the same Iceberg table no longer gets slower with every earlier overwrite (#1132).** PyIceberg 0.12
66
+ left the all-deleted manifest of each earlier overwrite in the table's manifest list, so every scan and commit read
67
+ one more manifest. On a local SQL catalog the 100th overwrite took about 430-750 ms against about 45 ms for the
68
+ 2nd; it now takes about 230 ms, and the manifest list stays at 2 entries. A table that already accumulated them
69
+ sheds them on its next overwrite.
70
+
71
+ ## v0.8.8
72
+
73
+ - **Entities can run in parallel in one `floe run` (#1105).** With `execution.orchestration.strategy: parallel` in
74
+ the profile, `floe run -c … -p …`, `floe run --manifest …` and `floe.run(…, profile_path=…)` run up to
75
+ `max_concurrent_entities` entities at once (default `min(4, CPU count)`). Entities that share an Iceberg table, an
76
+ accepted path or a state file never run together, and merge entities run one at a time. Reports and the summary
77
+ stay in config order; events of different entities interleave and observers are called from worker threads. On
78
+ the Polaris/SeaweedFS harness, 12 entities writing 12 Iceberg tables took 2.04 s with one worker and 1.03 s with
79
+ four. Without `strategy: parallel` nothing changes. Profiles that already set `strategy: parallel` for Dagster now
80
+ also run the entities of a `job_scope: domain` Job in parallel; peak memory then grows with the number of workers
81
+ (see `docs/profiles.md`).
82
+
83
+ - **Creating a new Iceberg namespace no longer fails when two writers race (#1117).** Two entities, or two
84
+ processes such as concurrent Dagster Jobs, that both found a namespace missing and created it made the second
85
+ creation fail the run. A namespace that already exists by then now counts as created.
86
+
87
+ - **A small JSON file is parsed once (#1115).** The key check before the read parsed every JSON file a second
88
+ time. A file of at most 8 MiB is now parsed once and its records reused; larger files keep the two passes, so
89
+ memory stays bounded. On 300 files of 200 records, JSON reading took 37-38% less CPU, and a 100,000-record file
90
+ about 28% less end to end.
91
+
92
+ ## v0.8.7
93
+
94
+ - **The Iceberg catalog is opened once per run (#1101).** Every catalog call used to start a new REST session
95
+ (a config request, plus an OAuth token request when a credential is set), and an `append` entity did it twice.
96
+ A run now reuses one catalog per catalog definition and storage, so N entities no longer pay up to 2N
97
+ initialisations. The catalog is opened again at the start of each run.
98
+
99
+ - **S3 clients are reused within a run (#1100).** Each `S3Client` builds its own boto3 session, about 55-120 ms,
100
+ and one S3 entity built 6-8 of them (source, state, accepted, rejected, archive, report). A run now builds one
101
+ client per storage definition: a two-entity run on one storage went from 5 clients to 1. `AWS_*` variables and
102
+ credentials are read again at the start of each run, and by `inspect_entity_state()` and
103
+ `reset_entity_state()`.
104
+
105
+ - **Remote inputs are downloaded ahead of the file being read (#1102).** Each pending S3 file used to be
106
+ downloaded only when its turn came, so the read loop waited on every GET. An entity now downloads up to 8
107
+ files, and about 512 MiB, ahead of the one it is validating (a single larger file still downloads, alone).
108
+ Files are still processed in the same order, a failed download still raises its own error when that file's turn
109
+ comes, and local sources are unchanged. With a simulated 0.1 s download per file, 16 files went from 1.72 s to
110
+ 0.24 s.
111
+
112
+ - **Small CSV files cost fewer Polars plans (#1104).** A clean 200-row file ran 16 query plans between the
113
+ reader and the writer and now runs 6, with identical output. On 1,200 such files (8 entities of 150 files,
114
+ Parquet sink on local disk) the run was about 26-28% faster, 7.45 s to 5.38 s in the last measurement.
115
+
116
+ - **`poll_interval_seconds` and `job_scope` are documented (#1103).** `docs/profiles.md` and
117
+ `context/orchestrators.md` describe the Kubernetes runner's status poll (default 10 s, a Job that finishes
118
+ early is noticed at the next poll) and when to choose `job_scope: domain` over `entity`.
119
+
120
+ ## v0.8.6
121
+
122
+ - **Merge modes keep a key's latest version when it repeats across pending files (#1090).** With `merge_scd1`
123
+ or `merge_scd2`, a run that picks up several batches used to keep the oldest file's row and reject the newer
124
+ ones. A key repeated across files now resolves to the latest file in file order, and the older rows are
125
+ rejected as duplicates. Within one file the first row still wins. Under `policy.severity: abort` the order is
126
+ unchanged.
127
+
128
+ - **`--full-refresh` rebuilds a `merge_scd1` table from the inputs (#1091).** It used to be rejected. It now reads
129
+ every input and replaces the table with their rows in one commit, so a row deleted at the source leaves the
130
+ table. Merge-key checks still apply, and a key in several inputs keeps the latest file's row. `merge_scd2` still
131
+ rejects the flag, and the message now says its version history cannot be rebuilt from the inputs.
132
+
133
+ ## v0.8.5
134
+
135
+ - **An output column name collision now fails `floe validate`, not the run (#1080).** A column with an explicit
136
+ `source` keeps its `name`; a column without one is normalised. When the two end on the same output name,
137
+ `floe validate` passed and `floe run` then failed. Validate now rejects it, and the message names the two
138
+ columns as written instead of their normalised sources.
139
+
140
+ ## v0.8.4
141
+
142
+ - **Columns that normalise to the same name now fail `floe validate`, not the run (#1005).** With
143
+ `normalize_columns`, a column `order_id` and a JSON or XML selector `order.id` (or `order/id`) both become
144
+ `order_id`; `floe validate` passed and `floe run` then failed. Validate now rejects it, and the message names both
145
+ columns or selectors and the shared name.
146
+
147
+ - **`add_columns` schema evolution on Iceberg is reported and emitted.** An entity run that adds columns to
148
+ the table now sets `schema_evolution.applied` and lists them in `schema_evolution.added_columns` in `run.json`,
149
+ emits the `schema_evolution_applied` event, and `schema_evolution.enabled` is `true` whenever the mode is
150
+ `add_columns`. They were always `false` and the event was never emitted. (#994)
151
+
152
+ - **Accepted rows now reach the sink chunk by chunk (#1056)**: an entity no longer holds all its accepted rows
153
+ in memory before the write. The Parquet sink writes parts as the input is read, and the Iceberg sink writes
154
+ data files into the same single commit. A file's chunks after the first wait on local disk until the file
155
+ is read to the end, so a late read error or an `abort` still drops all of that file's rows. `append`
156
+ stages its Parquet parts like `overwrite` does, so a killed run leaves no visible part for a retry to duplicate.
157
+
158
+ - **`unique` checks with `append` read the target's keys once per entity (#1057)**: an Iceberg table's key columns
159
+ were scanned once per chunk, and a Parquet sink's parts were loaded into memory in full, so cost and memory
160
+ grew with chunks times history. The key columns are now written once to a local file in the entity's temp
161
+ directory, and each chunk joins its keys against that file. Flags and counts are unchanged; the temp
162
+ directory needs room for the history's key columns.
163
+
164
+ ## v0.8.3
165
+
166
+ - **`-p env:NAME` (#1068).** `-p` / `--profile` and `profile_path=` accept `env:NAME`, which reads the profile YAML
167
+ from environment variable `NAME`, so a `kubernetes_job` run needs no profile file in the Job (part of #1047).
168
+ An unset or empty variable is a `FloeConfigError` naming it. Relative paths a profile supplies resolve against
169
+ the config's directory, as for a file profile. `execution.runner` stays validate-only.
170
+ - **A Parquet or CSV `overwrite` keeps the previous parts until the new ones are written (#1054)**: the
171
+ new parts are staged as `_staging-*` files, and the old parts are removed only after every new part
172
+ was written, so a failed write no longer empties the sink. A crash during the final swap can still
173
+ leave a mix of old and new parts; see [the Parquet sink](docs/sinks/parquet.md).
174
+ - **Iceberg merges and compaction run DuckDB with `memory_limit=4GB` and a bounded spill directory (#1055).**
175
+ DuckDB defaulted to 80% of the host's RAM, so a large merge in a Kubernetes pod was OOM-killed
176
+ instead of spilling. It now caps memory at 4GB and spills to a temporary directory (at most
177
+ 50GB, removed afterwards). Size pods at 6 GiB or more (see `docs/write_modes.md`).
178
+
179
+ ## Unreleased
180
+
181
+ ### airflow-floe
182
+
183
+ - **A `kubernetes_job` runner `args` override no longer drops the entity selection (#1031)**, as in
184
+ dagster-floe: `args` now prefix Floe's rendered arguments instead of replacing them.
185
+
186
+ ## dagster-floe v0.5.0
187
+
188
+ - **Accepts Floe 0.9 manifests.** `spec_version` `0.8` and `0.9` load; the `floe` extra now installs
189
+ `floe-python>=0.9,<0.10`. Pod options a Floe 0.9 profile passes through on a `kubernetes_job` runner reach the
190
+ manifest unchanged and are validated here, against the manifest schema.
191
+
192
+ - **In-process runs log Floe events live (#904).** With `InProcessRunner` (the default of `build_runner_from_env()`
193
+ when the `floe` core is installed), each Floe event reaches the Dagster log as it happens, once, instead of all
194
+ together after the run. Subprocess, `kubernetes_job` and `databricks_job` runs, `job_scope: domain` runs and the
195
+ asset metadata are unchanged.
196
+
197
+ ## dagster-floe v0.4.3
198
+
199
+ - **Per-run full refresh from the `floe/full_refresh` run tag (#1091).** A Dagster run tagged
200
+ `floe/full_refresh=true` runs its entities with `floe run --full-refresh`, in process or through a
201
+ `local_process`, `kubernetes_job` or `databricks_job` runner. Runs without the tag are unchanged. A
202
+ `merge_scd1` entity needs Floe 0.8.6 or newer, which rebuilds the table from the inputs; `merge_scd2`
203
+ still rejects `--full-refresh`.
204
+
205
+ ## dagster-floe v0.4.2
206
+
207
+ - **Silver lineage events from a `kubernetes_job` run now carry the Dagster parent run (#1076).** The Job
208
+ container gets `DAGSTER_RUN_ID` and `DAGSTER_JOB_NAME`, and the Job and its pod a `dagster/run-id` label;
209
+ both `job_scope`s were missing them.
210
+
211
+ ## dagster-floe v0.4.1
212
+
213
+ **Upgrading from 0.4.0:** the `floe` extra now requires Floe 0.8.3 or newer, and so does the image a
214
+ `kubernetes_job` runs when the run has a profile.
215
+
216
+ - **A `kubernetes_job` Job gets the profile as content, not as a pod-local path (#1069).** A run with a
217
+ profile reads it in the run pod and sets it as the Job's `FLOE_PROFILE_CONTENT` env var, with
218
+ `-p env:FLOE_PROFILE_CONTENT` in place of `-p <path>`; `${VAR}` references stay unexpanded and a remote
219
+ profile (`s3://...`) is passed as is. The Job image needs Floe 0.8.3 or newer for these runs.
220
+
221
+ - **A `kubernetes_job` Job is deleted, with its pods, when the run stops watching it (#1070).** An
222
+ interrupt (a cancelled Dagster run), any error while polling, or the poll timeout used to leave the Job
223
+ writing tables, so a re-run could collide with it. A Job that reached a final state is left alone, so
224
+ `ttl_seconds_after_finished` still controls how long its logs stay.
225
+
226
+ ## dagster-floe v0.4.0
227
+
228
+ **Upgrading from 0.3:** rejected assets move to new keys (below). Works with Floe 0.8.1 or newer; a Glue
229
+ `database` with `{domain}` needs Floe 0.8.2.
230
+
231
+ - **Breaking: rejected assets are keyed `<domain>/rejected/<table>` (#1046).** They were
232
+ `<domain>/<table>_rejected`, which collided with a real table named `<table>_rejected`. Upgrade:
233
+ the history of the rejected assets restarts under the new key, and any selection, sensor or
234
+ automation condition that names the old keys must be updated.
235
+
236
+ - **`ManifestEntity` exposes `source_resource` (#1044)**, the entity's `source.resource`, next to
237
+ `source_ref`, so a `source_key_fn` can build `<source>/<resource>` from the manifest.
238
+
239
+ - **Accepted and rejected assets carry `floe/entity` and `floe/output` metadata (#1045)**: the entity
240
+ name and `"accepted"` or `"rejected"`, so callers no longer parse the `<op>__accepted` output names.
241
+
242
+ - **The `floe/table` asset tag of a Glue entity expands `{domain}` in `database` (#1043)**, so it
243
+ names the database the run writes.
244
+
245
+ ## v0.8.2
246
+
247
+ - **A Glue catalog can write one database per domain (#1043).** `database` may contain `{domain}`,
248
+ e.g. `dev_{domain}_silver`: per entity it expands to `sink.accepted.iceberg.namespace`, else
249
+ `entity.domain`, so one catalog writes `dev_sales_silver` and `dev_finance_silver`. Put the catalog in
250
+ each stage's profile (`catalogs:` replaces the config's) to vary the prefix per stage. An entity
251
+ with neither is a `floe validate` error. A `database` without `{domain}` behaves as before.
252
+
253
+ ## v0.8.1
254
+
255
+ - **floe-python requires `boto3>=1.36.0` (was `>=1.43.118`) (#1028).** The old floor made `s3fs`
256
+ uninstallable next to Floe: current `aiobotocore` caps `botocore` below 1.43.118. 1.36.0 is the
257
+ first release with every S3 call and option Floe uses (conditional writes, checksum settings).
258
+
259
+ - **AWS Glue catalogs are back.** Floe 0.8.0 rejected `catalogs.definitions[].type: glue`, a
260
+ regression for AWS deployments (OpenLakeForge). A Glue catalog takes the 0.7 keys (`region`,
261
+ `database`, `create_database_if_missing`, `warehouse_storage`, `warehouse_prefix`) and writes
262
+ Iceberg tables through PyIceberg's Glue catalog, with credentials from the AWS chain.
263
+ `overwrite` and `append` are supported; `merge_scd1`/`merge_scd2` and `floe maintain --compact`
264
+ still need a REST catalog. **D42:** `allow_takeover` is accepted and ignored; 0.8 does not check
265
+ 0.7's `floe.managed` ownership marker.
266
+
267
+ - **`floe run --domain <d>` (#1024)** selects every entity of a domain, for `-c` and `--manifest` runs. It
268
+ takes several domains (repeatable or comma-separated), fails on an unknown domain, and cannot be combined
269
+ with `--entities`.
270
+
271
+ - **`kubernetes_job` runners can shape the Job's pod (#1023).** `execution.runner` in a profile accepts
272
+ `labels` (added to the defaults), `annotations`, `image_pull_policy`, `security_context`,
273
+ `node_selector`, `tolerations`, `backoff_limit` and `env_from`. They are carried into the manifest
274
+ runner definition only when set, so existing manifests are unchanged. dagster-floe 0.3.1 applies them;
275
+ airflow-floe ignores them.
276
+
277
+ - **A profile's `execution.runner.command` may be a list (#1034)**, e.g. `command: [olf-floe-job, --]`,
278
+ as the manifest and the connectors already accept. A string still works.
279
+
280
+ - **`-p s3://...`.** `-p` / `--profile` and `profile_path=` accept an `s3://` URI, read as an `s3://` manifest is,
281
+ so a container run no longer needs the profile file copied in (#1025). `floe manifest generate -p s3://...`
282
+ records the URI as `profile_uri`. `-c` still takes a local path.
283
+
284
+ ## dagster-floe v0.3.1
285
+
286
+ - **The `floe` extra requires `floe-python>=0.8.1,<0.9` (#1041)**, the first release with `floe run --domain`.
287
+
288
+ - **A `kubernetes_job` runner `args` override no longer drops the entity selection (#1031).** It
289
+ used to replace the whole argument list, so every Job ran every entity. `args` now prefix Floe's
290
+ rendered arguments: `command: [python]` + `args: [-m, floe]` runs
291
+ `python -m floe run … --entities …`.
292
+
293
+ - **`s3://` run reports and manifests are read with boto3 (#1021).** When boto3 is importable (it is whenever the
294
+ `floe` extra is installed) it replaces fsspec/s3fs for `s3://`, honouring `AWS_ENDPOINT_URL_S3` /
295
+ `AWS_ENDPOINT_URL`, `AWS_REGION` and `AWS_S3_FORCE_PATH_STYLE`. s3fs no longer has to be installable next to
296
+ `floe-python`; without it Silver assets lost row counts, rejection counts and check detail. Other schemes, and
297
+ `s3://` without boto3, still use fsspec.
298
+
299
+ - **`kubernetes_job` pod options are applied to the Job (#1023).** dagster-floe puts the runner's `labels`
300
+ (added to `app` and `floe-job`, which are never overridden), `annotations`, `image_pull_policy`,
301
+ `security_context`, `node_selector`, `tolerations`, `backoff_limit` (default 0) and `env_from` in the Job
302
+ it creates. With retries the run waits for the Job's final status and reads the pod that matches it.
303
+
304
+ - **`manifest_name=` in config mode (#1022).** `load_floe_assets`, `build_definitions` and
305
+ `build_job_run_config_from_manifest` accept `manifest_name=` next to `config_path=` and pass it to
306
+ `floe.build_manifest`. With a fixed name, the op name of a `job_scope: domain` asset stays
307
+ `floe_<name>__<domain>__...` when the config changes; without it the name derives from the config's path and
308
+ checksum, as before. Passing it with `manifest_path=` raises `ValueError`.
309
+
310
+ - **`source_key_fn` picks each entity's upstream source key (#1020).** `load_floe_assets` and
311
+ `build_definitions` accept `source_key_fn=lambda entity: AssetKey([...])` (or `None` for the default key).
312
+ Entities of one named source can depend on different upstream assets, e.g. `crm/orders` and `crm/accounts`,
313
+ and Dagster still orders each after its upstream. No `SourceAsset` is registered for a key you choose.
314
+
315
+ - **`job_scope: domain` Jobs run `floe run --domain <d>` for a whole domain (#1036).** When the selected
316
+ entities are exactly every entity of the domain in the manifest, the Job sends `--domain <d>` in place of
317
+ `--entities a,b,c`; a subset keeps `--entities`. It needs Floe 0.8.1 (`floe run --domain`):
318
+ a `kubernetes_job` image must be 0.8.1 or newer.
319
+
320
+ ## v0.8.0
321
+
322
+ Floe 0.8 is the Python core. `pip install floe-python` installs the `floe` command (a pure-Python
323
+ `py3-none-any` wheel), and `ghcr.io/openlakeforge/floe` is the Python image. The Rust implementation is
324
+ archived at [OpenLakeForge/floe-rust](https://github.com/OpenLakeForge/floe-rust) (tag `rust-final`).
325
+ Every intentional behaviour change from 0.7 is numbered (D1–D41) in the migration register (#619).
326
+
327
+ **Upgrading from 0.7:**
328
+ - Regenerate manifests with `floe manifest generate`: manifests carry `spec_version` `0.8`, and the
329
+ connectors (dagster-floe 0.3, airflow-floe 0.2) reject older ones.
330
+ - PII `hash` keys used through a manifest must be `${ENV_VAR}` references (#1006).
331
+ - `policy.severity: abort` now requires `sink.rejected` at validation (D39).
332
+ - Dropped in 0.8: Delta and DuckDB sinks, the fixed-width reader, and GCS/ADLS storage; Iceberg needs a
333
+ REST catalog (D26). See `docs/support-matrix.md`.
334
+ - Run reports of a single-domain run live under `<report.path>/<domain>/run_<id>/` (D37), and a policy
335
+ abort fails only its entity while the run continues (D36).
336
+
337
+ - **JSON sources run end to end (#998)**, matching Floe 0.7's rows, statuses and rules, with two deliberate
338
+ changes from 0.7:
339
+ - **D40:** the column-mismatch check compares the top-level keys of *every* record, not just the first,
340
+ so `schema.mismatch.extra_columns`/`missing_columns` apply to the whole file;
341
+ - **D41:** an empty array `[]` (or an NDJSON file without records) is a valid empty extract: 0 rows,
342
+ success. Floe 0.7 rejected it as `json_parse_error`. A file that is not valid JSON is still rejected.
343
+ - **`floe validate` requires `sink.rejected` for `policy.severity: abort` (D39, #1007).** Abort writes the
344
+ failing file to the rejected sink, so a config without one could only fail at its first violation, as in
345
+ Rust 0.7. It is now refused up front with the same message as `reject`.
346
+ - **`floe run --manifest` and `floe.run_manifest` take an `s3://` manifest (#1003)**, and write the run
347
+ reports under an `s3://` `report_base_uri`, as Floe 0.7 did. Relative local paths in a remote manifest
348
+ resolve under its `work_root`, else `FLOE_WORK_ROOT`, else the current directory (`/work` for an `image`
349
+ manifest).
350
+ - **`floe manifest generate` refuses a literal PII hash key (#1006).** It used to write `key: null`, so
351
+ `floe run --manifest` hashed with unsalted SHA-256 instead of the config run's HMAC. Set the key to a
352
+ `${ENV_VAR}` reference; the manifest keeps it and both runs produce the same hashes.
353
+ - **Validation messages no longer point to Delta (#995).** Wording only:
354
+ - `sink.accepted.merge` on a format without merge now says it requires `sink.accepted.format=iceberg`;
355
+ - `sink.accepted.partition_by` now says it is not supported in 0.8 and points to `sink.accepted.partition_spec`
356
+ on Iceberg.
357
+ - **Floe is a pure-Python package (#971).** `pip install floe-python` installs the `floe`
358
+ command; the wheel is `py3-none-any`. `ghcr.io/openlakeforge/floe` is now the Python image
359
+ (`ghcr.io/openlakeforge/floe-python` is no longer published). The Rust core moved to the
360
+ archived OpenLakeForge/floe-rust repository: 0.8 publishes no Rust binaries, no `floe-core`
361
+ or `floe-cli` crates, no `floe-duckdb` companion and no Homebrew or Scoop update.
362
+ - **`merge_scd2` on Iceberg sinks in `floe run` (#997).** `floe validate` already accepted it; the run
363
+ now creates the table with the SCD2 system columns, closes changed current rows and inserts their new
364
+ versions, and reports `inserted_count`, `updated_count`, `closed_count` and `unchanged_count`.
365
+ - **`example/config.yml` validates on 0.8 (#993).** The `customer` entity writes Parquet instead of Delta, and the
366
+ `customer_warehouse` entity (a DuckDB sink) is removed; both formats were dropped in 0.8.
367
+ - **Clearer config error messages (#704).** Wording only; the same configs are accepted and rejected:
368
+ - `<ctx>.storage and <ctx>.storage are mutually exclusive` now names `<ctx>.filesystem`;
369
+ - an unknown key at the root of an included sources file is `unknown field root.<key>` (was `sources file.<key>`);
370
+ - `pii.columns: <name> is not an unknown schema column` is now `is not a schema column`;
371
+ - `pii.columns[...].strategy=` prints the strategy as written (`hash`, not `Hash`);
372
+ - `schema_evolution.mode=add_columns` on a non-Iceberg sink now says it requires `sink.accepted.format=iceberg`.
373
+ - **`floe.run` posts OpenLineage events (#989)**, as `floe run -c` and `floe.run_manifest` already do,
374
+ when the config has a `lineage` block.
375
+ - **`floe.build_manifest(config_path, profile_path=None, ...)` (#986).** Returns, as a dict, the
376
+ manifest `floe manifest generate` writes for the same config and profile (deterministic by
377
+ default). `manifest generate` now calls it.
378
+
379
+ ## dagster-floe v0.3.0
380
+
381
+ Supports Floe 0.8 (`floe-python` 0.8, manifest `spec_version` `0.8`); older Floe versions are not
382
+ supported. Floe 0.7 and earlier manifests are rejected.
383
+
384
+ - **Config mode (#986).** `load_floe_assets`, `build_definitions` and `build_job_run_config_from_manifest` accept
385
+ `config_path=` (and `profile_path=`) in place of `manifest_path=`. The manifest is built in memory with
386
+ `floe.build_manifest` (needs the `floe` extra), and runs take `floe run -c <config> [-p <profile>]` in place of
387
+ `--manifest <uri>`. `manifest_path=` is unchanged.
388
+ - **Optional `floe` extra (#973).** `pip install "dagster-floe[floe]"` installs `floe-python>=0.8,<0.9`
389
+ so `build_runner_from_env()` runs Floe in-process (see below) without a separate `floe` install.
390
+ - **Report paths follow D37.** A run whose entities share one domain writes its reports under
391
+ `<report.path>/<domain>/run_<id>/`; other runs keep `<report.path>/run_<id>/`. The connector
392
+ reads report locations from the `run_finished` event, so no configuration changes.
393
+ - **`ghcr.io/openlakeforge/floe` is now the Python image.** The image name and the `floe` command
394
+ are unchanged; `kubernetes_job` runners need no change.
395
+ - **S3 reads honour the Floe environment.** `s3://` manifests and run reports are read with the
396
+ endpoint (`AWS_ENDPOINT_URL_S3`/`AWS_ENDPOINT_URL`) and path-style (`AWS_S3_FORCE_PATH_STYLE`)
397
+ settings Floe itself uses, so deployments that patched `floe_dagster.assets._fsspec_read_text`
398
+ for S3-compatible stores can drop the patch and set those variables instead.
399
+ - Manifest schema additions for 0.8 are listed below (`partition_spec`, `source.partitioning`,
400
+ `lookback_days`, `sources` index).
401
+
402
+ - **`job_scope: domain` runs one Kubernetes Job per domain (#580).** With the opt-in
403
+ `execution.runner.job_scope: domain` on a `kubernetes_job` runner, the selected entities of a
404
+ domain (per runner) run one after another in a single `floe run --entities a,b,c` Job, while Dagster
405
+ still reports each entity. `execution.runner.resources` gains `cpu_limit` and `memory_limit_mb`, and
406
+ `domain_resources` sizes the Job per domain. Unset, nothing changes (one Job per entity). After
407
+ an entity aborted by its policy the run continues with the next one (D36, #959), and Dagster reports
408
+ each entity's own status; see `context/orchestrators.md`.
409
+
410
+ - **Iceberg entities carry a `floe/table` op tag (#924).** The value is the resolved
411
+ `catalog.namespace.table` from the manifest, so entities writing one table share it and other
412
+ tables don't. Advisory, and an op tag: a `tag_concurrency_limits` entry on `floe/table` in the
413
+ job's executor config (`applyLimitPerUniqueValue: true`, `limit: 1`) limits steps within one
414
+ run, not across runs. No manifest change.
415
+
416
+ - **Manifest sinks may carry the Iceberg `partition_spec` (#911).** The bundled schema accepts
417
+ `partition_spec` (`column`, `transform`, optional `num_buckets`) on a sink, so a run from the
418
+ manifest creates the same partitioned table as the config run.
419
+ - **Manifest `source.partitioning` may carry `lookback_days` (D30, #885).** The bundled schema
420
+ accepts the non-negative integer that bounds a `file`-mode run's listing to the watermark minus
421
+ that many days.
422
+ - **Manifest entity sources may carry `partitioning` (D28, #883).** The bundled schema accepts
423
+ the `source.partitioning` block (`pattern`, `date_column`, `batch_column`) that `floe run
424
+ --manifest` honours.
425
+ - **Floe runs in-process when the Python core is installed (#902).** `build_runner_from_env()`
426
+ now returns an `InProcessRunner` when `floe.run_manifest` is importable: a local
427
+ `floe run --manifest` execution runs through the Python API, with the same events, `RunResult`,
428
+ asset metadata and OpenLineage events as the subprocess. In-process runs are serialized within a
429
+ process. Set `FLOE_RUNNER=local` to keep the `floe` subprocess (`LocalRunner`).
430
+ - **Entities sharing a named source depend on one `sources/<project>/<name>` asset (D20, #796).** When
431
+ the manifest carries the `sources` index, every entity whose `source.ref` names an entry depends
432
+ on one shared `sources/<project>/<name>` asset (group `sources`, the source's format and `uri`
433
+ as metadata) instead of its own `<entity>_source` asset. `<project>` is the manifest's
434
+ `manifest_name`, else its `manifest_id`, so two manifests loaded together can both name a
435
+ source `crm`.
436
+ - **Manifests may carry a `sources` index and project `metadata` (D20, #796).** The bundled
437
+ schema accepts both optional blocks: `sources` lists each named config source with its
438
+ format, resolved `uri` and consuming entities; `metadata` is the config's project metadata.
439
+ - **Manifests are versioned by Floe release (D22, #798).** `load_manifest` accepts a
440
+ manifest whose `spec_version` (the Floe major.minor that generated it) is supported, `0.8`
441
+ for now, and rejects any other with a clear error. The `schema: "floe.manifest.v1"` field is
442
+ gone and the bundled schema is `floe.manifest.schema.json`; regenerate older manifests with
443
+ Floe 0.8.
444
+ - **`load_floe_assets(domains=[...])` loads one domain slice of a project manifest (#510).**
445
+ Only entities whose `domain` is listed are loaded; an unknown domain raises `ValueError`.
446
+ Op names of entities with a domain are now derived from the full asset key
447
+ (`sales__accounts`), so two domains sharing an entity name load in one manifest.
448
+ Entities without a domain keep their existing op name.
449
+ - **Fix: remote `s3://` reads honor S3-compatible endpoint env (#512).** Manifest and run
450
+ report reads via fsspec now pass `AWS_ENDPOINT_URL_S3` (falling back to
451
+ `AWS_ENDPOINT_URL`) as the endpoint and, when `AWS_S3_FORCE_PATH_STYLE` is `true`/`1`,
452
+ path-style addressing, matching Floe core (#448). Without these variables behaviour is
453
+ unchanged. Requires the existing `remote` extra.
454
+
455
+ ## airflow-floe v0.3.0
456
+
457
+ - **Accepts Floe 0.9 manifests.** `spec_version` `0.8` and `0.9` load. Pod options a Floe 0.9 profile passes
458
+ through on a `kubernetes_job` runner are ignored, as before.
459
+
460
+ ## airflow-floe v0.2.0
461
+
462
+ Built for Floe 0.8 (`floe-python` 0.8, where `floe` is the Python CLI and `ghcr.io/openlakeforge/floe`
463
+ is the Python image; the command line and image name are unchanged). Floe 0.7 and earlier are not
464
+ targeted by this release.
465
+
466
+ - **Report paths follow D37.** A run whose entities share one domain writes its reports under
467
+ `<report.path>/<domain>/run_<id>/`; other runs keep `<report.path>/run_<id>/`. The connector
468
+ reads report locations from the `run_finished` event, so no configuration changes.
469
+ - Per-domain run pods (`job_scope: domain`, #580) and the in-process runner are dagster-floe only;
470
+ airflow-floe still runs `floe run` as a subprocess or Kubernetes/Databricks job.
471
+
472
+ - **Loads Floe 0.8 manifests (#979).** The loader checks `spec_version` against
473
+ `SUPPORTED_SPEC_VERSIONS = ("0.8",)`, as dagster-floe does, instead of the pre-0.8
474
+ `schema: "floe.manifest.v1"` field that 0.8 manifests no longer carry. Other versions are
475
+ rejected; regenerate them with a supported Floe release. `MANIFEST_SCHEMA` is replaced by
476
+ `SUPPORTED_SPEC_VERSIONS`, and `AirflowManifest.schema` by `AirflowManifest.spec_version`.
477
+ - **`build_dag_manifest_context(domains=[...])` loads one domain slice of a project manifest
478
+ (#511).** Only entities whose `domain` is listed land in the context; an unknown domain
479
+ or an empty list raises `ValueError`. Pass `entities=context.entity_names` to `FloeRunOperator` so the run
480
+ covers only that slice.
481
+
482
+ ## v0.7.0
483
+
484
+ Floe projects: config `version: "0.3"` scales one project across many domains and files.
485
+ Existing 0.1/0.2 configs keep working unchanged; see the 0.2 → 0.3 migration section of
486
+ `docs/config.md` and the project layouts in `docs/projects.md`.
487
+
488
+ - **Qualified entity identity `<domain>.<name>` (#464).** With `version >= "0.3"`, an entity
489
+ with a `domain` is identified as `<domain>.<name>`; otherwise its identity stays the bare
490
+ `name`.
491
+ - The id keys report paths (`run_<id>/<domain>/<name>/run.json`), run events, the default
492
+ incremental state dir (`.floe/state/<domain>/<name>/`), manifest `entities[].name`
493
+ (`asset_key` is unchanged) and OpenLineage job names.
494
+ - `--entities` and `floe state` accept a qualified id or an unambiguous bare name; an
495
+ ambiguous bare name fails and lists the candidates.
496
+ - In 0.3, `name` and `domain` must be non-empty and must not contain `.`, `/` or `\`.
497
+ Regenerate manifests of 0.3 projects after upgrading.
498
+ - **Domain `defaults` merged into entities (#501).** A 0.3 domain may declare `defaults`:
499
+ the entity wins, maps deep-merge, lists replace, and `schema.columns` /
500
+ `schema.primary_key` are never inherited.
501
+ - **Reusable project `sources` and `source: { ref, resource }` (#503).** Named sources are
502
+ declared once and referenced by entities; the entity's own `source` fields win, and
503
+ `{{resource}}` in the source path resolves to `source.resource` (defaulting to the entity
504
+ name). An unknown `ref` lists the declared sources.
505
+ - **Multi-file projects with `include.domains` (#505).** Glob patterns, relative to the
506
+ project file, load each `_domain.yml` and its sibling entity files (one entity per file);
507
+ the domain is implied by the folder. Includes resolve against local files only.
508
+ - **Inherited-value errors name the contributing files (#582).** When an entity that
509
+ inherits `defaults` from an included `_domain.yml` or a source from an included
510
+ `sources.yml` fails to parse, the error adds `(inherits from <files>)` after the entity's
511
+ file (or leads with `inherits from <files>` for an inline entity); single-file config
512
+ errors are unchanged.
513
+ - **Errors in included domain and entity files name the file (#581).** In an
514
+ `include.domains` project, a load or parse error in a `_domain.yml` or entity file is
515
+ prefixed with that file's path; single-file config errors are unchanged.
516
+ - **Self-contained YAML authoring schemas (#574).** Replace editor/tooling references to
517
+ `schemas/config.schema.yaml` with `schemas/project.schema.yaml`. Included source,
518
+ domain and entity documents use `sources.schema.yaml`, `domains.schema.yaml` and
519
+ `entity.schema.yaml` directly under `schemas/`; each carries its own definitions.
520
+ Fragment sink options, CSV encodings and separators, string `env.vars` keys, PII mask
521
+ count bounds, nonblank include paths and version integer bounds now match parser and
522
+ assembly constraints; YAML real scalars remain rejected by `floe validate`.
523
+ - **`add-entity` can reference a declared source (#515).** Pass `--source <ref>` and
524
+ `--resource <name>`; `--input` still supplies the file used for schema inference.
525
+ - **`add-entity` writes included-domain entities as sibling files (#514).** With `--domain`
526
+ and no `--output`, the new entity is written beside `_domain.yml`; fields covered by domain
527
+ defaults are omitted, and existing files are never overwritten.
528
+ - **`include.sources` loads reusable sources from one project file (#508).** Config version
529
+ 0.3 projects may put their named `sources` array in a root-relative `sources.yml`; inline
530
+ and included sources cannot be combined, and the included file is covered by the manifest
531
+ config checksum.
532
+ - **Runnable standalone and multi-file project examples (#507).** `example/standalone/`
533
+ demonstrates inline source and domain config; `example/project/` demonstrates named sources,
534
+ source references, domain defaults, and sibling domain/entity files.
535
+ - **Generated manifests retain source references (#504).** Referenced entities include
536
+ `source.ref` and the effective `source.resource`; inline sources omit both fields.
537
+ - **Config 0.3 domains may omit `incoming_dir` (#500).** Config 0.2 still requires it;
538
+ manifests omit the field for domains without an incoming directory.
539
+ - **Manifest `config_checksum` covers every file of an `include.domains` project (#509).**
540
+ For a multi-file config the checksum is SHA-256 over the sorted `path\0sha256\n` lines of
541
+ every file read, so editing any `_domain.yml` or entity file changes `manifest_id`. The
542
+ files are listed in the new manifest field `config_files: [{path, sha256}]` (paths relative
543
+ to the root config's directory). Single-file configs keep their checksum and emit no
544
+ `config_files`.
545
+ - **Config path templates expose `{{entity.name}}` and `{{domain.name}}` (#502).** Domain
546
+ defaults can build a separate sink path for each entity.
547
+ - **Fix `include.domains` for Windows UNC project paths (#526).** Verbatim UNC paths such as
548
+ `\\?\UNC\server\share\project` now resolve relative include patterns from the network share.
549
+ - **Docs (#516, #517, #519).** New `docs/projects.md` project-layout guide; config 0.3
550
+ merge-rules table and 0.2 → 0.3 migration in `docs/config.md`; removed the nonexistent
551
+ `--var` CLI flag from `docs/variables.md` and `docs/profiles.md`.
552
+
553
+ ### Internal hardening
554
+
555
+ - Repository moved to `OpenLakeForge/floe`: crate metadata, docs, release scripts and the
556
+ GHCR owner point at the new org (#483, #484, #485).
557
+ - Dependency advisories patched (h2, rustls, yanked chacha20) (#486), plus routine
558
+ dependency bumps.
559
+
560
+ ## v0.6.11
561
+
562
+ - **Manifest replay now emits dataset lineage (#455).** `floe run --manifest`
563
+ built the OpenLineage observer with an empty entity set, so entity `COMPLETE`
564
+ events were posted with empty `inputs`/`outputs` and no upstream lineage edge
565
+ was created (OpenMetadata accepted the events with HTTP 200 but produced no
566
+ Bronze-to-Silver edge). Replay now passes the manifest's reconstructed
567
+ entities to the observer, so source and sink datasets are emitted exactly as
568
+ in a direct config run. A resolved `s3://` source is reported with an
569
+ `s3://<bucket>` namespace and its bucket-relative key as the dataset name.
570
+ Direct config execution is unchanged. See `docs/lineage.md`.
571
+
572
+ ## v0.6.10
573
+
574
+ - **Runtime `OPENLINEAGE_API_KEY` resolution for lineage auth (#452).**
575
+ - When `lineage.api_key` is unset, Floe now resolves the Bearer token from the
576
+ `OPENLINEAGE_API_KEY` environment variable when the lineage observer is
577
+ constructed, matching the OpenLineage Python client and `dbt-ol`. This lets
578
+ orchestrated runners and manifest replays authenticate from a mounted
579
+ Kubernetes Secret without persisting the credential in the generated
580
+ manifest, Git, or object storage.
581
+ - Precedence: an explicit `lineage.api_key` still wins (backward compatible);
582
+ otherwise the environment variable is used; if neither is present, events are
583
+ sent unauthenticated as before.
584
+ - An unresolved `{{VAR}}` placeholder that survives into a manifest (e.g. a
585
+ profile-only `api_key` merged after config templating) is treated as absent,
586
+ so replay falls back to `OPENLINEAGE_API_KEY` instead of sending the literal
587
+ placeholder as the token. See `docs/lineage.md`.
588
+
589
+ ## v0.6.9
590
+
591
+ - **Configurable OpenLineage endpoint and Iceberg dataset namespace (#450).**
592
+ - `lineage.endpoint` configures the request path, defaulting to
593
+ `api/v1/lineage`; this supports OpenMetadata's native
594
+ `api/v1/openlineage/lineage` route without a proxy.
595
+ - `lineage.dataset_namespace` separates accepted Iceberg output dataset
596
+ identity from the stable OpenLineage job namespace, defaulting to
597
+ `lineage.namespace` for backward compatibility. See `docs/lineage.md`.
598
+
599
+ ## v0.6.8
600
+
601
+ - **Fix image runner using custom S3 URL**
602
+ The published Floe image can hit S3-compatible endpoints through a hostname such as host.lima.internal, while the host CLI repro uses an IP literal such as 127.0.0.1. Floe already lets aws-config pick up AWS_ENDPOINT_URL / AWS_ENDPOINT_URL_S3, but the plain Rust S3Client only enabled path-style addressing from the YAML path_style_access field.
603
+
604
+ That left image runs using virtual-hosted-style requests against SeaweedFS/MinIO-style endpoints even when users set AWS_S3_FORCE_PATH_STYLE=true, which matches the failing direct-config and remote-manifest cases in the issue.
605
+
606
+ ## v0.6.7
607
+
608
+ - **Manifest local paths are always absolute, targeted at the replay runner (#443).**
609
+ v0.6.6 (#438) made `manifest generate` record local `config_uri` / `profile_uri` relative
610
+ (`local://domains/...`) for cross-checkout reproducible ids. That broke manifests generated
611
+ inside the container image, which downstream orchestrators deploy to object storage and
612
+ replay remotely: the portable `local:///work/...` form was lost, and a manifest loaded from a
613
+ remote URI resolved its relative paths against the *manifest's own bucket*, failing an
614
+ Iceberg write with `storage <name> bucket mismatch`. The definitive rule is now: because the
615
+ runner that generates a manifest is not the one that replays it, every local path is recorded
616
+ **absolute**, resolved against the target runner's work-root.
617
+ - New `manifest generate --runtime image|cli` (manifest field `runtime_env`). `image` records
618
+ local URIs absolute under the container work-root (`/work`) — portable for remote replay
619
+ *and* reproducible across containers; `cli` records them host-absolute (canonicalized) for
620
+ same-host execution. Omitted → auto-detect (container ⇒ image, else cli; override with
621
+ `FLOE_RUNTIME`; work-root override `FLOE_WORK_ROOT`). Cross-environment reproducible
622
+ `manifest_id` now comes from `--runtime image`, not from relative paths.
623
+ - `floe run --manifest` loaded from a **remote** URI no longer treats the manifest's own
624
+ location as the path-resolution base; local paths resolve under the recorded `work_root`
625
+ and remote paths resolve purely from their storage definitions. Local manifest files are
626
+ unchanged. See `docs/manifest.md`.
627
+ - Behaviour change: local-config `config_uri` / `manifest_id` change again (now absolute) —
628
+ regenerate committed manifests, preferring `--runtime image` for CI-stable ids.
629
+
630
+ ## dagster-floe v0.2.5
631
+
632
+ - **Fix: vendored manifest schema rejected the new `runtime_env` / `work_root` fields.**
633
+ `dagster-floe` validates every manifest against its own bundled copy of
634
+ `floe.manifest.v1.json` before parsing it. That copy predated #443/#444 and still set
635
+ `additionalProperties: false` without the two new fields, so `load_manifest()` failed with
636
+ `Additional properties are not allowed ('runtime_env', 'work_root' were unexpected)` for
637
+ every manifest generated by `floe` v0.6.7+. The vendored copy is now resynced with the
638
+ canonical schema (also picking up a `duckdb` sink-target field it had missed independently
639
+ of #443/#444) and a drift guard (`scripts/check_orchestrator_drift.py`) now checks the two
640
+ files stay byte-identical. `airflow-floe` was unaffected — it has no `jsonschema` dependency
641
+ and hand-parses only the fields it needs.
642
+
643
+
644
+ ## v0.6.6
645
+
646
+ - **Reproducible manifest IDs across environments (#438).** `manifest generate` baked the
647
+ host-absolute, canonicalized config/profile path into `config_uri` / `profile_uri`, so
648
+ the same config referenced by the same relative path produced different `manifest_id`
649
+ and `manifest_revision` under Docker (`/work/...`) versus a native checkout
650
+ (`/Users/...`). These URIs now record the path exactly as passed — a relative `-c`
651
+ stays relative — restoring the documented `--deterministic` byte-identical guarantee
652
+ across machines and containers. Remote config URIs (`s3://`, `gs://`, `abfs://`) stay
653
+ absolute and scheme-normalized. See `docs/manifest.md`.
654
+ - Behaviour change: `manifest_id` / `manifest_revision` values change for manifests
655
+ generated from local-file configs — regenerate any committed manifests.
656
+ - **Fix broken arm64 container image (#437).** The `aarch64-unknown-linux-gnu` release
657
+ binary was built on `ubuntu-24.04-arm` (glibc 2.39) and packaged into
658
+ `debian:bookworm-slim` (glibc 2.36), so `ghcr.io/malon64/floe:0.6.5` failed on ARM64
659
+ with `GLIBC_2.38/2.39 not found`. The lean `floe` and companion `floe-duckdb` aarch64
660
+ binaries now build on `ubuntu-22.04-arm` (glibc 2.35), which runs on bookworm and older
661
+ distros.
662
+ - Internal hardening:
663
+ - **CD: drop the redundant `docker-duckdb` dry-run job.** It was the last consumer of a
664
+ workflow_dispatch dry-run path that no longer adds coverage.
665
+
666
+ ## v0.6.5
667
+
668
+ - **Glue Iceberg tables now expose their schema to Iceberg REST clients (#433).** Floe previously
669
+ registered Glue tables with `StorageDescriptor.Columns` empty, leaving only a `metadata_location`
670
+ pointer. The Glue Iceberg REST endpoint reconstructs table metadata from its own catalog state,
671
+ so `loadTable` returned no `schemas` array — causing DuckDB's `ENDPOINT_TYPE GLUE` integration
672
+ to report the table as non-existent even though the data was intact on S3. Floe now mirrors the
673
+ full Iceberg schema into Glue's native column list (with correct Hive type mappings) on every
674
+ create and overwrite commit.
675
+ - Internal hardening:
676
+ - **CI: parallelize DuckDB job and centralize change detection (#435).** The DuckDB CI job
677
+ previously ran clippy → tests sequentially on one runner. It is now split into two parallel
678
+ jobs (`duckdb-clippy` / `duckdb-test`) sharing a cached bundled native build, and a single
679
+ upfront `changes` job gates all downstream jobs at the job level so runners do not boot when
680
+ relevant paths are untouched.
681
+
682
+ ## v0.6.4
683
+
684
+ - **Iceberg sink on Azure Data Lake Storage Gen2 (#411).** Iceberg tables can now be
685
+ written to ADLS Gen2 using filesystem catalog semantics, with account-key, SAS-token, or
686
+ service-principal credentials resolved from the environment. See `docs/sinks/iceberg.md`.
687
+ - **Resolved credentials are wrapped in a redacting `Secret` newtype (#392).** Unity / REST
688
+ catalog tokens and the MotherDuck token now live in a `Secret` type whose `Debug`/`Display`
689
+ render `[REDACTED]`, so an accidental `{:?}` in a log line or error can no longer leak a
690
+ PAT. The raw value is reachable only through an explicit accessor at the trust boundaries
691
+ that need it (HTTP bearer header, DuckDB connection config). Serde stays transparent, so
692
+ YAML config parsing and manifest round-trips are unchanged, and existing manifest token
693
+ redaction is unaffected. Docs recommend `${ENV_VAR}` references over literal secrets in YAML.
694
+ - Internal hardening:
695
+ - Bumped `apache-avro` from 0.16 to 0.21 (#401).
696
+ - Repaired the release CD: the `publish` job now polls the crates.io sparse index (not the
697
+ web API) before publishing `floe-cli` and retries the resolve-sensitive publish, and the
698
+ lean `aarch64-unknown-linux-gnu` binary builds on a native runner instead of `cross`
699
+ (#431). Bumped `actions/checkout` from 6 to 7 (#414).
700
+
701
+ ## v0.6.3
702
+
703
+ - **Fixes the `floe-duckdb` companion build (CLI binaries, Docker images).** Building
704
+ `floe-cli` with `--features duckdb` failed to compile (`error[E0425]: cannot find type
705
+ FloeResult`) because the `FloeResult` import in `crates/floe-cli/src/delegate.rs` was gated
706
+ to the lean build (`#[cfg(not(feature = "duckdb"))]`) yet used by the duckdb build's no-op
707
+ `maybe_delegate_duckdb`. The import is now unconditional. The lean `floe` binary and PyPI
708
+ wheels were unaffected; only the DuckDB companion artifacts failed to build for v0.6.2.
709
+ - **CI now compiles `floe-cli --features duckdb`.** The path-gated `duckdb` job previously
710
+ only linted `floe-core`; it now also builds the CLI binary the release ships as
711
+ `floe-duckdb` and triggers on `floe-cli` source changes, so feature-gated CLI breakage is
712
+ caught before a tagged release instead of in the release pipeline.
713
+
714
+ ## v0.6.2
715
+
716
+ - **`manifest generate` resolves profile variables in storage definitions (#424).**
717
+ `{{VAR}}` placeholders in config-level `storages.definitions` fields
718
+ (`bucket`/`region`/`account`/`container`/`prefix`/`endpoint`) supplied by a profile
719
+ `variables:` block are now substituted during manifest generation, not just `prefix`.
720
+ - **Generated manifests are self-contained for `floe run --manifest` (#424, #425).** The
721
+ manifest now embeds the effective `storages`/`catalogs`/`lineage` (config-level
722
+ definitions merged with the profile, with profile variables already resolved) instead of
723
+ only the profile sections, so manifest replay can resolve named storages such as
724
+ `source.storage` / `sink.*.storage`. A present-but-malformed embedded block now produces a
725
+ clear `manifest <section> block is malformed` error instead of being silently dropped
726
+ (which previously resurfaced as the confusing `no storages block` failure). See
727
+ `docs/manifest.md`.
728
+ - **EKS Pod Identity / container credentials for Glue/S3 Iceberg writes (#426).** The Iceberg
729
+ S3 write/seed path resolves AWS credentials through the AWS SDK default chain (which honors
730
+ `AWS_CONTAINER_CREDENTIALS_FULL_URI` + token file, the same chain the Glue client and S3
731
+ reads already use) and hands them to the opendal-backed writer as static credentials, so
732
+ writes no longer fall back to EC2 IMDS in EKS Pod Identity pods. Existing static-env / IMDS
733
+ setups are unaffected. See `docs/sinks/iceberg.md`.
734
+ - Internal hardening: removed a duplicated `#[cfg(feature = "delta")]` attribute flagged by
735
+ newer clippy.
736
+
737
+ ## v0.6.1
738
+
739
+ - **Structured `FloeError` type (#395).** `floe-core` previously returned
740
+ `Box<dyn Error>` over four stringly-typed wrappers
741
+ (`ConfigError`/`RunError`/`StorageError`/`IoError`); failures could only be
742
+ classified by inspecting message strings. Every failure is now a structured
743
+ `FloeError` enum variant (`Config`/`Validation`/`Storage`/`Sink`/`State`/`Run`/`Io`)
744
+ carrying typed context fields (entity, path, rule). Library consumers — including
745
+ the Python bindings and the CLI log emitter — recover the kind via
746
+ `err.downcast_ref::<FloeError>()` and `FloeError::kind()`.
747
+ - No user-visible behaviour change: `Display` output is byte-identical to the
748
+ old wrappers, the typed Python exceptions (`FloeConfigError`, `FloeRunError`,
749
+ `FloeStorageError`, `FloeIoError`) and CLI error codes are unchanged.
750
+ - `FloeResult<T>` remains the boxed alias so foreign errors keep flowing through
751
+ `?`. See `context/decisions/structured-floe-error.md`.
752
+ - Internal-only release: no config, CLI, or sink behaviour changes.
753
+
754
+ ## v0.6.0
755
+
756
+ - **HMAC-SHA256 keyed hashing for `strategy: hash` (`docs/pii.md`, #388).**
757
+ The optional `key:` field on a `pii.columns[]` entry selects HMAC-SHA256 instead of
758
+ plain SHA-256, making hash-masked values computationally infeasible to reverse by
759
+ dictionary attack while preserving referential integrity (same input + same key → same
760
+ output across runs). The key accepts a plain literal or a `${ENV_VAR}` reference
761
+ resolved at masking time.
762
+ - Plain SHA-256 remains the default for backward compatibility.
763
+ - A configuration warning is emitted when `strategy: hash` is used without `key:`.
764
+ - Literal keys are redacted from manifest serialization so they never appear in the
765
+ run manifest JSON.
766
+ - **`abfss://` URIs now accepted everywhere (#393).**
767
+ The secure `abfss://` spelling (the one Azure surfaces in the portal and Databricks
768
+ shows in external-location URIs) was previously not recognized and silently fell
769
+ through to local-path handling. Floe now normalizes `abfss://` to the canonical
770
+ `abfs://` at config-parse time, so both spellings work end-to-end in source paths,
771
+ sink paths, state paths, and storage config.
772
+ - `is_remote_uri` was deduplicated from four copy-pasted sites into a single
773
+ canonical helper (`io/storage/core/uri.rs`); adding a scheme is now a one-line change.
774
+ - **Run reliability hardening (#389, #390).**
775
+ - *Unity Catalog HTTP timeout*: the `reqwest` client used for Unity Catalog table
776
+ registration had no timeout. A hung or unreachable Databricks workspace now times out
777
+ after 30 seconds instead of blocking forever.
778
+ - *Stale lock recovery*: a local `.lock` file left behind by a killed or OOM-killed
779
+ process (previously permanent) is now broken automatically when older than 5 minutes.
780
+ The lock records its acquisition timestamp + PID; the fallback is file mtime for
781
+ legacy locks.
782
+ - *CAS jittered backoff*: conditional-write retries no longer fire in lockstep with no
783
+ delay. Full-jitter exponential backoff (50 ms base, 2 s cap) is applied between
784
+ failed attempts, and the retry count is raised from 5 to 8. No external PRNG
785
+ dependency — entropy is derived from the system clock.
786
+
787
+ ### Internal hardening
788
+
789
+ - **pyo3 0.22 → 0.29 (#391):** clears two supply-chain advisories
790
+ (RUSTSEC-2025-0020, RUSTSEC-2026-0177) that were parked under `[advisories].ignore`
791
+ in `deny.toml`. The `cargo-deny` supply-chain gate is re-armed with both ignore
792
+ entries removed. No API or behavior change visible to Python callers.
793
+ - **`cargo update`:** ~250 transitive lockfile bumps to latest semver-compatible
794
+ versions (tokio 1.49→1.52.3, aws-sdk-s3 1.120→1.137, openssl 0.10.75→0.10.81,
795
+ rustls 0.23.36→0.23.40, arrow 57.2→57.3.1, deltalake 0.30.1→0.30.2, and more).
796
+
797
+ ## v0.5.6
798
+
799
+ - **Fixes the `build-duckdb-cli` Windows build failure introduced in v0.5.5.**
800
+ The bundled C++ DuckDB library (`libduckdb-sys`) fails to compile with MSVC
801
+ `cl.exe` (exit code 2 on `ub_src_storage_compression_chimp.cpp`). Windows was
802
+ mistakenly included in the `build-duckdb-cli` matrix even though the
803
+ `build-duckdb-wheel` job already excluded it for the same reason. The Windows
804
+ entry is now dropped from `build-duckdb-cli`; four Unix/macOS platforms remain
805
+ (Linux x86\_64/arm64, macOS x86\_64/arm64). The lean `floe.exe` Windows binary is
806
+ **unaffected** — it is built by a separate job that does not enable the `duckdb`
807
+ feature. Windows users who need DuckDB support can use
808
+ `docker run ghcr.io/malon64/floe-duckdb` or build from source:
809
+ `cargo build -p floe-cli --release --features duckdb`.
810
+ - **Supply-chain hardening and dependency migrations (PR #396):**
811
+ - `cargo-deny` gate added (`deny.toml`): denies known advisories, yanked crates,
812
+ non-whitelisted licenses, and non-whitelisted crate sources; bans
813
+ re-introduction of `serde_yaml` and deprecated `azure_storage*` 0.x crates.
814
+ A new `.github/workflows/supply-chain.yml` workflow runs the gate on every PR
815
+ touching dependency files, weekly on a schedule, and on demand.
816
+ - Dependabot configured (`.github/dependabot.yml`): weekly Cargo updates
817
+ (minor + patch, grouped by ecosystem), GitHub Actions pin updates, and pip
818
+ updates. `duckdb`/`libduckdb-sys` are ignored until the Arrow 58 migration
819
+ lands (tracked in issue #387).
820
+ - **Five security advisories resolved:**
821
+ - `aws-lc-sys` 0.36 → 0.41: fixes RUSTSEC-2026-0044/0045/0046/0047/0048
822
+ (X.509 name-constraint bypass, AES-CCM timing side-channel, PKCS7
823
+ validation bypasses, CRL logic error).
824
+ - `rustls-webpki` 0.103.9 → 0.103.13: fixes RUSTSEC-2026-0098/0099/0104/0049.
825
+ - `lz4_flex` 0.11.5 → 0.11.6 and 0.12.0 → 0.12.1: fixes RUSTSEC-2026-0041
826
+ (uninitialized-memory leak on invalid input).
827
+ - **`serde_yaml` removed** (archived / unmaintained): `add_entity.rs` now uses
828
+ the `yaml-rust2` stack already present in the config parser — one YAML library
829
+ in the dependency tree instead of two.
830
+ - **Azure SDK migrated to GA 1.0:** `azure_core` / `azure_identity` /
831
+ `azure_storage` / `azure_storage_blobs` 0.20 (deprecated unofficial track) →
832
+ `azure_core` / `azure_identity` / `azure_storage_blob` 1.0. Conditional writes
833
+ (`If-Match` / `If-None-Match: *` on put; `If-Match` on delete) are preserved;
834
+ conflict detection is now typed (`ErrorKind::HttpResponse` 412/409) instead of
835
+ fragile string matching; 409 is now correctly mapped to `Conflict`.
836
+ `DefaultAzureCredential` is replaced by a `ChainedCredential` that tries
837
+ service-principal env vars → workload identity → managed identity → Azure CLI.
838
+ - Distribution-only and dependency patch — no engine, API, or config changes.
839
+
840
+ ## v0.5.5
841
+
842
+ - **Distributes `floe-duckdb` as a prebuilt standalone CLI binary for all platforms.**
843
+ Previous releases shipped the DuckDB-enabled build only as a Docker image
844
+ (`ghcr.io/malon64/floe-duckdb`) and a Python companion wheel. The CLI binary had to
845
+ be compiled from source. From this release, `floe-duckdb` binaries are attached to
846
+ every GitHub Release for all five supported platforms (Linux x86\_64/arm64,
847
+ macOS x86\_64/arm64, Windows x86\_64) and are available via the existing
848
+ Homebrew tap and Scoop bucket:
849
+ ```sh
850
+ # macOS / Linux — Homebrew
851
+ brew tap malon64/floe # skip if already tapped
852
+ brew install malon64/floe/floe-duckdb
853
+
854
+ # Windows — Scoop
855
+ scoop bucket add floe https://github.com/malon64/scoop-floe
856
+ scoop install floe-duckdb
857
+ ```
858
+ `floe-duckdb` is a complete, standalone CLI (same commands, same config format as
859
+ `floe`) with the DuckDB sink compiled in. It can be used directly (`floe-duckdb run
860
+ config.yml`) or placed alongside the lean `floe` binary — `floe` auto-delegates a
861
+ DuckDB-sink run to `floe-duckdb` without user intervention.
862
+ - Distribution-only patch — no engine, API, or config changes. DuckDB sink behavior
863
+ and supported targets (Local + MotherDuck) are unchanged.
864
+
865
+ ## v0.5.4
866
+
867
+ - **Fixes the Python DuckDB companion so `floe.run()` actually delegates to it.**
868
+ The off-PyPI `floe-duckdb` wheel installs its native extension as a **top-level
869
+ `_floe_duckdb`** package (maturin's pure-Rust layout), but the lean `floe`
870
+ wrapper only looked for the nested `floe._floe_duckdb` submodule via
871
+ `importlib.util.find_spec`. The two never matched, so a DuckDB-sink run on an
872
+ install that *had* the companion still raised *"the `floe-duckdb` companion
873
+ wheel is not installed"* — the Python DuckDB channel was non-functional as
874
+ shipped. The wrapper now accepts **both** layouts (`floe._floe_duckdb` and
875
+ top-level `_floe_duckdb`), preferring the nested name when present. Verified
876
+ end-to-end against the published `floe-duckdb` wheel: a `merge_scd1` DuckDB sink
877
+ inserts on first run and upserts idempotently on re-run.
878
+ - Operational note (no code change): the off-PyPI PEP 503 index at
879
+ `https://malon64.github.io/floe/simple/` requires **GitHub Pages** to be enabled
880
+ on the repository (source `gh-pages`); the release pipeline pushes the index to
881
+ that branch but cannot enable Pages itself.
882
+ - **Fixes four OpenLineage emission bugs that made Floe's OL events unusable by
883
+ OpenMetadata 1.12.x and other strict consumers** (fixes #382, PR #386):
884
+ - S3 input dataset names no longer carry a leading slash (`split_storage_uri` now
885
+ drops the `/` separator, so `s3://bucket/path` splits into `("s3://bucket", "path")`).
886
+ - `runId` is now a spec-valid UUID v4 (a single `Uuid::new_v4()` is generated at
887
+ `RunStarted` and reused at `RunFinished`; each entity gets its own UUID) instead
888
+ of the raw timestamp-based run ID that OpenMetadata silently dropped.
889
+ - `inputs`/`outputs` now use resolvable storage coordinates (Iceberg → catalog
890
+ namespace + `{ns}.{table}`; all other sinks → `split_storage_uri` on the storage
891
+ path) instead of unmappable logical names, so lineage edges are derivable. The
892
+ redundant symlinks facets are removed.
893
+ - Entity job names no longer prepend the OL namespace (it already lives in the job
894
+ object's `namespace` field).
895
+ - The DuckDB distribution changes above are distribution-only — DuckDB sink behavior
896
+ and supported targets (Local + MotherDuck) are unchanged.
897
+
898
+ ## v0.5.3
899
+
900
+ - **Fixes the release pipeline so the GitHub Release assets, Homebrew/Scoop
901
+ formulae, and off-PyPI `floe-duckdb` wheel actually publish.** In v0.5.2 the
902
+ `release` job's `Download artifacts` step had no `pattern`, so it pulled *every*
903
+ run artifact (~1.1 GB — including the ~80 MB DuckDB wheels and ~70 MB Python
904
+ wheels) and intermittently failed the download "after 5 retries", which left the
905
+ GitHub Release with no binary assets and skipped the dependent off-PyPI wheel
906
+ publish. The step is now scoped to `pattern: dist-*` (only the platform binary
907
+ archives it actually needs for the release assets and Homebrew/Scoop checksums);
908
+ the DuckDB wheels remain handled by the separately-scoped `publish-duckdb-wheel`
909
+ job. This was invisible to dry-runs because the `release` job is gated off on
910
+ dry-runs.
911
+ - No engine or API changes: distribution-only patch. The DuckDB sink behavior,
912
+ config surface, and supported targets (Local + MotherDuck) are identical to
913
+ v0.5.0–v0.5.2.
914
+
915
+ ## v0.5.2
916
+
917
+ - **Fixes the v0.5.1 release pipeline so the DuckDB companion actually ships.** v0.5.1
918
+ published the lean `floe` (PyPI wheel + `ghcr.io/malon64/floe` image) correctly, but
919
+ the `floe-duckdb` companion image and off-PyPI wheel never published because the
920
+ companion image build failed. `Dockerfile.duckdb`'s dependency-cache layer copied
921
+ `crates/floe-python/Cargo.toml` (which declares an explicit `[lib] name = "_floe"`)
922
+ without its source, so `cargo fetch` failed parsing the workspace manifest
923
+ (*"can't find library `_floe`"*). The fetch layer now stubs
924
+ `crates/floe-python/src/lib.rs` before fetching; the real source replaces it in the
925
+ subsequent `COPY`. This path was invisible to release dry-runs because the Docker
926
+ jobs are gated off on dry-runs.
927
+ - No engine or API changes: distribution-only patch. The DuckDB sink behavior, config
928
+ surface, and supported targets (Local + MotherDuck) are identical to v0.5.0/v0.5.1.
929
+
930
+ ## v0.5.1
931
+
932
+ - **DuckDB is now available to non-Rust users via a lean-primary + heavy-companion
933
+ distribution.** v0.5.0 made `duckdb` an opt-in Cargo feature, which left it reachable
934
+ only by building from source. v0.5.1 ships the existing DuckDB sink (local `.duckdb`
935
+ files and MotherDuck `md:` databases) as a separate companion that the lean,
936
+ default-distributed `floe` transparently delegates to — modeled on the
937
+ companion-on-PATH pattern used by `git`/`git-lfs` and cargo subcommands, and the
938
+ ONNX-Runtime / PyTorch split-package model for Python.
939
+ - **CLI:** the lean `floe` binary auto-detects a DuckDB sink in the resolved config
940
+ and re-execs a `floe-duckdb` companion (same `floe-cli` source built
941
+ `--features duckdb`) with identical arguments, propagating its exit status. The
942
+ companion is resolved **only** from `PATH` or the canonicalized directory of the
943
+ running executable — never the current working directory (avoids the git-lfs
944
+ CVE GHSA-6rw3-3whw-jvjj class of attack). If no companion is found, the run fails
945
+ with an actionable install hint instead of a cryptic missing-feature error.
946
+ - **Docker:** new `ghcr.io/malon64/floe-duckdb` image (built from `Dockerfile.duckdb`)
947
+ bundles the native DuckDB build with `ENTRYPOINT ["floe-duckdb"]`. The lean
948
+ `ghcr.io/malon64/floe` image is unchanged.
949
+ - **Python:** new off-PyPI `floe-duckdb` wheel installs a `floe._floe_duckdb`
950
+ companion extension into the same `floe` package; the lean `floe.run()`
951
+ transparently delegates a DuckDB-sink run to it. Because the bundled native build
952
+ exceeds PyPI's 100 MB per-file limit and does not build in the manylinux/musllinux
953
+ containers, the companion wheel is published off PyPI (GitHub Release assets + a
954
+ PEP 503 simple index), à la `download.pytorch.org`:
955
+ `pip install floe-python` then
956
+ `pip install floe-duckdb --index-url https://malon64.github.io/floe/simple/`
957
+ (`--index-url`, not `--extra-index-url`, so a squatted `floe-duckdb` on PyPI can't
958
+ shadow the off-PyPI companion).
959
+ - No engine changes: this release only changes *distribution*. The DuckDB sink
960
+ behavior, config surface, and supported targets (Local + MotherDuck) are identical
961
+ to v0.5.0. DuckLake and remote-DuckDB (Quack) sinks remain deferred (they require a
962
+ DuckDB ≥1.5.3 / Arrow 58 bump that is blocked upstream until the Iceberg crate
963
+ publishes an Arrow 58 release).
964
+ - See [DuckDB sink](docs/sinks/duckdb.md) and [installation](docs/installation.md).
965
+
966
+ - **`floe` 0.5.1**: version bump for this release.
967
+
968
+ ## dagster-floe v0.2.3
969
+
970
+ - **Floe assets now carry a `compute_kind="floe"` branding badge** (PR #384):
971
+ - Every asset materialized by `dagster-floe` displays a "floe" compute-kind badge
972
+ in the Dagster UI, consistent with how `dagster-dbt` and `dagster-duckdb` brand
973
+ their assets. Cosmetic/UX only — no change to asset keys, execution, or run config.
974
+
975
+ ## dagster-floe v0.2.2
976
+
977
+ - **Expose public job run-config helpers for mixed asset jobs** (closes #376, PR #378):
978
+ - `resolve_execution_config(execution)` — derives the Dagster multiprocess run-config dict from a parsed `ManifestExecution` object; returns `None` when no concurrency constraint is set.
979
+ - `build_job_run_config_from_manifest(manifest_path)` — convenience wrapper that loads the manifest and delegates to `resolve_execution_config`.
980
+ - Both are exported from the top-level `floe_dagster` package.
981
+ - Users composing mixed Dagster asset jobs (Floe + dlt + dbt + other assets) can now pass the manifest-derived run config directly to `define_asset_job(config=...)` without duplicating internal logic.
982
+
983
+ ## v0.5.0
984
+
985
+ - **Accepted sinks are now opt-in Cargo features** (PR #375):
986
+ - `delta`, `iceberg`, and `duckdb` are each gated behind their own Cargo feature in `floe-core`.
987
+ Parquet (via Polars) is always compiled; the heavy sink dependencies are pulled in only when
988
+ requested. `floe-core`'s default features are `["delta", "iceberg"]`, and `floe-cli` /
989
+ `floe-python` forward the same defaults — so the shipped CLI and published wheels keep
990
+ Delta + Iceberg support and stay lean.
991
+ - **`duckdb` is opt-in everywhere.** The bundled native DuckDB build inflated compile times and
992
+ broke the manylinux/musllinux wheel cross-compile (and pushed wheels past PyPI's per-file size
993
+ limit), so it is excluded from default builds. Enable it from source with `--features duckdb`.
994
+ - **Breaking for library consumers:** code depending on `floe-core` with `default-features = false`
995
+ no longer compiles any sink; add the features you need (`delta`, `iceberg`, `duckdb`).
996
+ - Config validation and manifest generation accept any *known* sink format — including one whose
997
+ feature is not compiled into the current build — so a lean build still validates and round-trips
998
+ a config it cannot execute. Only the runtime write path enforces the feature, failing with a
999
+ clear `rebuild with --features <sink>` hint.
1000
+ - CI now compiles and tests each sink selectively (path-filtered jobs with isolated caches), so the
1001
+ expensive DuckDB bundle is built only when DuckDB code changes.
1002
+
1003
+ - **`floe` 0.5.0**: version bump for this release.
1004
+
1005
+ ## v0.4.7
1006
+
1007
+ - **DuckDB accepted sink** (closes #248, PR #372):
1008
+ - New `sink.accepted.format: duckdb` writes accepted output into a DuckDB database — a local
1009
+ `.duckdb` file or a remote [MotherDuck](https://motherduck.com) (`md:<database>`) database.
1010
+ - Full write-mode parity with Delta: `overwrite`, `append`, `merge_scd1`, and `merge_scd2` via
1011
+ DuckDB's native `MERGE INTO` (bundled DuckDB 1.5.0). Merge metrics are reported from
1012
+ `RETURNING merge_action`.
1013
+ - Arrow-native ingestion (no intermediate file); the bundled `duckdb` crate pins Arrow 57 to
1014
+ match floe-core.
1015
+ - MotherDuck token auth via `${ENV}` substitution, passed through the connection configuration
1016
+ (never as SQL) and never logged.
1017
+ - Hardened connection handling: a process-wide single-writer connection cache keyed by canonical
1018
+ database id serializes writes and reuses one handle across flushes and entities. The MotherDuck
1019
+ cache key includes a non-reversible token fingerprint so distinct credentials never share a
1020
+ cached connection.
1021
+ - The `duckdb` sink block is carried through generated manifests, so manifest replay can address
1022
+ the target table / MotherDuck database.
1023
+ - `overwrite` replaces only the target table, leaving other tables in the same database intact.
1024
+ - Object-store `.duckdb` file paths (S3/GCS/ADLS) are rejected at validation with a pointer to
1025
+ MotherDuck (DuckDB cannot read-write database files over object storage).
1026
+ - See [DuckDB sink](docs/sinks/duckdb.md).
1027
+
1028
+ - **Fix: normalize raw headers before projection in Parquet and ORC readers** (PR #373):
1029
+ - `projected_columns` was comparing raw file headers (e.g. `"Customer ID"`) against
1030
+ already-normalised declared column names (e.g. `"customer_id"`), so any column renamed by
1031
+ `schema.normalize_columns` was silently projected out before reaching checks or the sink.
1032
+ - Fix: `normalize_name` is now applied to each raw header before the set-membership test,
1033
+ matching the pattern already used in the Avro reader.
1034
+
1035
+ - **`floe` 0.4.7**: version bump for this release.
1036
+
1037
+ ## v0.4.6
1038
+
1039
+ - **`dagster-floe`: load remote report URIs via fsspec** (fixes #361, PR #362):
1040
+ - `summary_uri` and `entity_report_uri` values pointing at `s3://`, `gs://`, or `abfs://` were raising a `ValueError` that was silently swallowed, causing asset checks to fall back to summary-only mode. They are now fetched correctly via `fsspec`.
1041
+ - New `remote` optional extra (`dagster-floe[remote]`) installs `s3fs`, `gcsfs`, and `adlfs` so all three cloud providers are covered out of the box.
1042
+
1043
+ - **`dagster-floe`: tolerate mixed stdout and surface floe events in Dagster logs** (PR #363):
1044
+ - The log parser now handles non-JSON lines interleaved with NDJSON floe events, so plain-text output from wrappers or logging middleware no longer breaks event parsing.
1045
+ - Floe run events (`run_started`, `entity_finished`, `run_finished`) are surfaced as structured Dagster log entries with appropriate log levels.
1046
+
1047
+ - **Soft-buffered accepted writes — cap per-entity memory at `max_size_per_file`** (PR #366):
1048
+ - Previously all accepted rows for an entity were accumulated in memory across every input file and written in a single pass at the end. Peak RAM scaled with input fanout.
1049
+ - Accepted rows are now flushed to the sink incrementally whenever the in-memory accumulation reaches `sink.accepted.options.max_size_per_file` (default 256 MB). Peak memory is bounded regardless of how many input files the entity processes.
1050
+ - `merge_scd1` / `merge_scd2` modes are unaffected — they still accumulate the full dataset before writing.
1051
+ - **Durability note**: flushes commit while the batch is still running — if a later input file fails, rows from earlier files are already committed and will be re-written on the next run. In `append` mode this produces duplicate output rows; use `schema.unique_keys`, `merge_scd1`, or `merge_scd2` to guard against this. See [Parquet sink limitations](docs/sinks/parquet.md#limitations) for details (the same partial-commit exposure applies to Delta and Iceberg accepted sinks, though their individual flushes are transactional).
1052
+
1053
+ - **Stream Parquet writes via the Polars `new_streaming` engine** (PR #369):
1054
+ - Accepted Parquet writes now emit one row group at a time rather than buffering the full chunk plus Arrow encoding state. This reduces per-write peak memory, most noticeably on wide schemas or large `row_group_size` values.
1055
+ - No config changes required. Output file naming, part counts, and the run report shape are unchanged.
1056
+
1057
+ - **Profile `execution.orchestration` → manifest → Dagster job concurrency** (PR #367):
1058
+ - New `orchestration` block in the profile's `execution` section (`strategy`, `max_concurrent_entities`). The manifest builder emits it as `execution.orchestration`; `dagster-floe` wires `max_concurrent` into the Dagster `multiprocess` executor config, driving entity-level parallelism end-to-end without per-job boilerplate.
1059
+ - `max_concurrent_entities: 0` is rejected at parse time with an immediate config error.
1060
+ - Profile JSON Schema updated to declare the new block (previously rejected by `additionalProperties: false`).
1061
+
1062
+ - **REST Iceberg: resolve environment-variable credentials** (PR #370):
1063
+ - REST catalog configs that use `${ENV_VAR}` placeholders for credentials are now resolved against the process environment before the HTTP client is constructed, fixing authentication failures when credentials are injected at runtime rather than baked into the config file.
1064
+ - Malformed placeholder errors are redacted in log output to avoid leaking partial secrets.
1065
+
1066
+ - **`floe` 0.4.6, `dagster-floe` 0.2.1, `airflow-floe` 0.1.5**: version bumps for this release.
1067
+
1068
+ ## v0.4.5
1069
+
1070
+ - **Iceberg: propagate S3 endpoint and path-style-access into FileIO** (fixes #352, PR #353):
1071
+ - For S3-compatible storage (SeaweedFS, MinIO), Iceberg/OpenDAL requires an explicit `endpoint` and `path_style_access` in addition to region. Without these, OpenDAL picks up the wrong `AWS_ENDPOINT_URL` and fails at Parquet file close.
1072
+ - Added optional `endpoint` and `path_style_access` fields to `StorageDefinition`; `iceberg_store_config()` now forwards them as `s3.endpoint` and `s3.path-style-access` when present.
1073
+ - The metadata `S3Client` is also wired: `build_client()` passes `endpoint_url` and `force_path_style` from `StorageDefinition`, so listing and uniqueness-seed calls to MinIO/SeaweedFS use the correct addressing style.
1074
+
1075
+ - **Manifest: write remote summary and enrich `run_finished` event** (fixes #354, PR #356):
1076
+ - In manifest mode with a remote `report_base_uri`, `RunContext::from_config()` was skipping `Target` construction and the run summary was never uploaded; `run_finished.summary_uri` was always `null`.
1077
+ - `StorageResolver` gains `find_definition_name_for_uri` / `register_definition` so a synthetic storage definition is created for remote report URIs even when the bucket is not listed in the config `storages` block.
1078
+ - `RunFinished` is extended with `report_base` and `entity_report_uris` (both `skip_serializing_if`-guarded, so existing parsers see identical JSON when no report is configured).
1079
+ - `dagster-floe`: `FloeRunFinished` + `parse_run_finished` + `assets.py` consume `entity_report_uris` directly when available.
1080
+ - `airflow-floe`: `operators.py` and `kubernetes_runner.py` pass the new fields through to the XCom payload.
1081
+
1082
+ - **Manifest: deterministic generation, source checksums, and content revision** (fixes #355, PR #357):
1083
+ - New `--deterministic` flag: sets `generated_at_ts_ms=0` so the same inputs produce byte-identical output — clean `diff` in CI without stripping the timestamp.
1084
+ - New `--manifest-name` flag: stores a stable logical name (e.g. `sales.prod`) in the manifest JSON.
1085
+ - `config_checksum` (SHA-256) is computed on every generation; `profile_checksum` is added when a profile is supplied.
1086
+ - `manifest_revision`: SHA-256 of canonical manifest content (excluding `generated_at_ts_ms`) provides a stable content fingerprint.
1087
+ - `manifest_id` now incorporates `config_checksum` so the ID changes when source config content changes.
1088
+ - All `HashMap` fields in manifest structs (`exit_codes`, `env`, `definitions`, `tags`, `env_parameters`) replaced with `BTreeMap` for stable alphabetical key ordering in serialised JSON.
1089
+ - `dagster-floe` and `airflow-floe` manifest dataclasses parse and surface the four new optional fields (`manifest_name`, `manifest_revision`, `profile_uri`, `profile_checksum`).
1090
+ - JSON Schema updated to declare the new fields, preventing `additionalProperties: false` rejections in the Dagster manifest validator.
1091
+
1092
+ - **`floe manifest generate` — deployment URI overrides** (fixes #358, PR #359):
1093
+ - `-c` and `-p` now accept remote URIs (`s3://`, `gs://`, `abfs://`), downloading transparently and recording the URI as `config_uri` / `profile_uri` in the manifest.
1094
+ - `--output` accepts remote URIs; when a remote URI is given the manifest is uploaded and that URI is automatically baked into `execution.base_args` (replacing the `{manifest_uri}` placeholder), eliminating post-generation JSON patching.
1095
+ - `--default-domain <domain>` sets `domain`, `group_name`, and `asset_key` prefix for entities that do not specify a domain.
1096
+ - `--manifest-path-mode resolved-uri` sets each entity's `source.path` and sink `path` fields to the fully resolved URI (stripping `local://` for local paths), making the manifest a standalone replay contract without a local config directory.
1097
+ - Unknown `--manifest-path-mode` values now produce an immediate CLI error instead of silently defaulting.
1098
+
1099
+ - **`floe` 0.4.5, `dagster-floe` 0.1.8, `airflow-floe` 0.1.5**: version bumps for this release.
1100
+
1101
+ ## v0.4.4
1102
+
1103
+ - **REST catalog: correct storage factory for S3 and GCS** (fixes #348 #349):
1104
+ - `build_rest_catalog()` previously always used `LocalFsStorageFactory` regardless of warehouse scheme, causing Parquet data file reads/writes to fail with OS-level errors on any cloud-backed REST catalog (Polaris, Snowflake Open Catalog, Nessie with S3).
1105
+ - The factory is now selected based on the concrete table location URI (`s3://`, `s3a://` → `OpenDalStorageFactory::S3`; `gs://` → `OpenDalStorageFactory::Gcs`; everything else → `LocalFsStorageFactory`).
1106
+ - When the warehouse field is a catalog name rather than a storage URI (e.g. Polaris `"lakehouse"`), the table location from `warehouse_location` / `table_root_uri` is used as the primary dispatch key, with `warehouse` as fallback.
1107
+ - Both write and uniqueness-seed (Append dedup) paths are fixed.
1108
+
1109
+ - **`floe` 0.4.4**: version bump for this release.
1110
+
1111
+ ## v0.4.3
1112
+
1113
+ - **Remote manifest support for `floe run --manifest`** (`docs/cli.md`, fixes #342):
1114
+ - `floe run --manifest` now accepts `s3://`, `gs://`, and `abfs://` URIs, downloading the manifest to a temporary directory using the same `resolve_config_location` infrastructure used by `floe run --config`.
1115
+
1116
+ - **OpenLineage: stable job name, versioned `_producer`, column lineage, and Dagster job injection** (`docs/lineage.md`, fixes #335 #336 #337 #338):
1117
+ - Top-level `RunStarted`/`RunFinished` events now use a **stable job name** derived from the config file stem (e.g. `orders.yml` → job name `orders`) instead of the ephemeral run UUID, so run history accumulates on a single job node in Marquez.
1118
+ - An optional `lineage.job_name` field in the config overrides the derived name.
1119
+ - The `_producer` URI is now **versioned** via `env!("CARGO_PKG_VERSION")` at compile time (e.g. `https://github.com/malon64/floe/releases/tag/v0.4.3`) instead of a static string, enabling consumers to correlate lineage events with the exact release.
1120
+ - **`ColumnLineageDatasetFacet`** is emitted on accepted output datasets, mapping each output column to its source field (or itself when no `source:` rename is configured). The `inputFields` dataset identity uses the same `(namespace, name)` tuple as the input dataset in the same event, so column-level edges are correctly joined in OpenLineage consumers.
1121
+ - `dagster-floe` now injects **`DAGSTER_JOB_NAME`** into the floe subprocess environment, so the `ParentRunFacet` carries the correct Dagster job name rather than an empty string.
1122
+
1123
+ - **OpenLineage: Marquez-compatible dataset naming and facet placement** (`docs/lineage.md`, fixes #340):
1124
+ - Source input datasets use a `.source` sub-namespace (e.g. `myns.source`) to avoid colliding with the logical entity name used for accepted outputs.
1125
+ - `SchemaDatasetFacet`, `DataQualityMetricsOutputDatasetFacet`, and `FloeQualityRunFacet` are placed on the accepted output dataset (the write side), matching OpenLineage's semantic: output facets describe what was written.
1126
+ - Rejected output datasets use a `.rejected` sub-namespace and carry their own `DataQualityMetricsOutputDatasetFacet` with the rejected row counts.
1127
+
1128
+ - **`dagster-floe`: `SourceAsset` registration and enriched rejected metadata** (fixes #339):
1129
+ - Each entity now registers a companion `SourceAsset` (key `<entity_key>_source`) so Dagster's asset graph shows the upstream data source as a node. `register_source_assets=False` opts out for pipelines that manage their own upstream declarations.
1130
+ - Rejected output metadata now includes `dominant_rejection_reason` and `files_with_rejections` computed from the entity report, giving Dagster run pages actionable context without opening the floe report file.
1131
+
1132
+ - **`dagster-floe` 0.1.7**, **`floe` 0.4.3**: version bumps for this release.
1133
+
1134
+ ## v0.4.2
1135
+
1136
+ - **OpenLineage: source and sink datasets emitted separately** (`docs/lineage.md`, fixes #317):
1137
+ - Entity `COMPLETE`/`FAIL` events now set `inputs` to the **source dataset** (named after `source.path`) and `outputs` to the **accepted sink dataset** (named after `sink.accepted.path`).
1138
+ - When a rejected sink is configured, a second output dataset (named after `sink.rejected.path`) is appended to `outputs`.
1139
+ - Schema (`SchemaDataset`), `DataQualityMetrics`, and `FloeQualityRun` facets are attached to the source input dataset, which is the correct OpenLineage placement for input facets.
1140
+ - Previously, `inputs` contained a single dataset named after the entity (not the path) and `outputs` was always empty, causing Marquez to show a dead-end lineage graph.
1141
+
1142
+ - **OpenLineage observer now installed from profile `lineage` block** (fixes #316):
1143
+ - `floe run --profile` now uses `load_config_with_profile_overrides` for the early config load that wires up the OpenLineage observer. Previously it used `load_config_with_profile_vars`, which substituted `{{VAR}}` placeholders but did not merge the `lineage` section from the profile. Users who declared `lineage:` only in their profile file saw no lineage events emitted.
1144
+
1145
+ - **Profile support for `floe state inspect` and `floe state reset`** (fixes #320):
1146
+ - Both state subcommands now accept `-p / --profile <path>`. Without a profile, configs that reference `{{VAR}}` placeholders would fail with "unknown variable" errors. The same profile-loading path used by `validate` and `run` (variable resolution + storages/catalogs/lineage merging) is now applied before reading or resetting entity state.
1147
+
1148
+ - **Incremental state committed for rejected terminal outcomes** (fixes #327):
1149
+ - In `incremental_mode: file`, files whose rows are fully or partially rejected under `severity: reject` are now committed to state after the run. Previously, any `RunStatus::Rejected` caused state to be released, making Floe reprocess the same file on every subsequent run and duplicate accepted/rejected sink outputs. `Aborted` and `Failed` outcomes still release state, as those represent incomplete processing where reprocessing is safe.
1150
+
1151
+ - **`dagster-floe` 0.1.6**: version bump accompanying the floe 0.4.2 release.
1152
+
1153
+ ## v0.4.1
1154
+
1155
+ - **Profile `storages` and `lineage` overrides** (`docs/profiles.md`):
1156
+ - Profile files can now declare a `storages` section and a `lineage` section alongside the existing `catalogs` override. Both are applied as wholesale config replacements before validation and run, following the same pattern as `catalogs`.
1157
+ - `floe validate --profile`, `floe run --profile`, and `floe manifest generate --profile` all honour the new sections.
1158
+ - Python bindings (`floe.validate`) pass storages and lineage through to the merged config.
1159
+ - Profile validation now enforces the same semantic constraints as config validation:
1160
+ - `storages.default` is required whenever `storages` is declared.
1161
+ - Storage definitions must use a supported type (`local`, `s3`, `adls`, `gcs`) and supply type-required fields (`s3`: bucket + region; `adls`: account + container; `gcs`: bucket).
1162
+ - `lineage.namespace` must not be empty; `lineage.max_failures` must be ≥ 1 when set.
1163
+
1164
+ ## v0.4.0
1165
+
1166
+ - **OpenLineage circuit breaker and retry** (`docs/lineage.md`):
1167
+ - Transient failures (connection errors, HTTP 5xx, 429) are retried up to 3 times with 0 / 100 / 500 ms backoff before counting as a failure.
1168
+ - Non-retryable 4xx responses (e.g. 401 bad API key) are counted immediately without retrying and emit a `lineage_http_error` warning.
1169
+ - After `max_failures` consecutive failures (default 3, configurable via `lineage.max_failures`), the circuit opens and all subsequent events in the run are skipped with no HTTP calls.
1170
+ - A single `lineage_circuit_open` warning is emitted when the circuit trips. The circuit resets at `RunStarted` so a recovered endpoint is retried in the next pipeline execution without restarting the process.
1171
+ - A `lineage_http_error` warning is emitted whenever any event is dropped so silent event loss is always visible in operator logs.
1172
+
1173
+ - **Hardened remote incremental state** (`docs/how-it-works.md`):
1174
+ - State schema bumped to v2 — a `claims` map sits alongside the existing `files` map, enabling CAS-based concurrent-writer safety on S3, GCS, and ADLS via conditional writes (`If-Match` / generation numbers).
1175
+ - Local storage uses `FileLock` (O_CREAT|O_EXCL) to serialize version-check + write, preventing two concurrent local processes from both returning `Written`.
1176
+ - Claim scope is restricted to the owning runner: promotion, release, and renewal only touch URIs held by the current `ClaimedEntityState`, preventing cross-runner interference when multiple processes share a `run_id`.
1177
+ - Unexpired claims from the same `run_id` now block re-claiming — two processes sharing a `run_id` can no longer process the same files concurrently.
1178
+ - Deletes remain conditional even when `expected_version` is `None`, preserving state written by a concurrent runner.
1179
+ - V1 state files (no `claims` field) are silently upgraded to V2 on read.
1180
+
1181
+ - **Kubernetes manifest runner fields** (`context/orchestrators.md`):
1182
+ - `floe manifest generate` with a Kubernetes profile now emits full runner fields in the manifest: `image`, `namespace`, `service_account`, `resources` (cpu / memory_mb), `env`, and structured `secrets`.
1183
+ - `secrets` changed from `Vec<String>` to `Vec<{name, secret_name, key}>` to match the shape expected by `kubernetes_runner.py`.
1184
+ - `dagster-floe[kubernetes]` optional extra added to express the Kubernetes client dependency explicitly.
1185
+
1186
+ - **Internal hardening** (no config or API changes):
1187
+ - `PolicySeverity` is now a typed enum parsed at config load time — string comparison in mismatch, precheck, and run/entity paths replaced with enum match.
1188
+ - `AcceptedWriteReportState` removed — `run_accepted_write_phase` returns `AcceptedWriteOutput` directly, eliminating a 24-field manual field-by-field copy.
1189
+ - Error types (`ConfigError`, `RunError`, `StorageError`, `IoError`) adopt `thiserror` — removes ~40 lines of boilerplate `Display + Error` impls.
1190
+ - `SinkFormat` trait centralises write, seed, and data-driven config validation — adding a new format no longer requires changes to validate.rs or dispatch code.
1191
+ - State module eliminates duplicated load / persist / claim patterns (76 fewer lines, same behaviour).
1192
+
1193
+ - **macOS wheels**: universal2 wheel replaces separate aarch64 + x86_64 artifacts — a single `.whl` runs natively on both Apple Silicon and Intel Macs.
1194
+
1195
+ - **`dagster-floe` 0.1.5**: adds `dagster-floe[kubernetes]` optional extra so consumers can declare the `kubernetes>=28` dependency explicitly when using the Kubernetes runner.
1196
+
1197
+ ## v0.3.9
1198
+
1199
+ - **Column-level PII masking** (`docs/pii.md`):
1200
+ - New `pii:` entity block with per-column transform strategies: `hash` (SHA-256), `drop`, `nullify`, `redact`, and `mask`.
1201
+ - `mask` strategy supports a pattern string with `{firstN}` / `{lastN}` reveal tokens (e.g. `{first4}****{last4}` for card numbers).
1202
+ - `redact` strategy replaces every non-null value with a configurable string (default `[REDACTED]`).
1203
+ - Masking runs after schema validation and data-quality checks — rejected rows are never masked.
1204
+ - Compatible with `normalize_columns`: `pii.columns[].name` matches schema names, not post-normalization runtime names.
1205
+ - Full config-validation coverage: duplicate columns, unknown strategies, missing `mask_pattern`, and `strategy: drop` on primary-key columns are all rejected at load time.
1206
+
1207
+ - **OpenLineage integration** (`docs/lineage.md`):
1208
+ - New optional `lineage:` top-level config block that posts run and entity lifecycle events to any OpenLineage-compatible HTTP endpoint (Marquez, Atlan, OpenMetadata, Astronomer, etc.).
1209
+ - Emits four facets per entity `COMPLETE` event: `DataQualityMetrics`, `FloeQualityRun`, `SchemaDataset`, and `ParentRun`.
1210
+ - `ParentRun` facet auto-detected from Airflow (`AIRFLOW_CTX_*`) and Dagster (`DAGSTER_*`) environment variables.
1211
+ - Bearer auth via `api_key` field; supports `{{VAR}}` placeholder expansion and nested `${HOST}/path` variable resolution via `--profile`.
1212
+ - Configurable `timeout_secs` (default 5); fail-silent — HTTP errors emit warnings and do not affect run outcome.
1213
+ - Lineage emission is independent of `--log-format`; events are always posted when configured.
1214
+ - Lineage HTTP error warnings (401, timeouts) are always surfaced to stderr, even with `--log-format off`.
1215
+ - Lifecycle correctness: every run produces a well-formed `START → COMPLETE/FAIL` sequence; pre-execution failures (config validation, context construction) emit a paired `START` before `FAIL`; post-start errors do not re-emit `START`.
1216
+
1217
+ - **Profile validation and catalog hardening** (v0.3.8 patch):
1218
+ - Profile variable resolution errors now produce explicit config errors instead of silently falling back to unresolved placeholders.
1219
+ - Catalog override validation tightened for Unity and REST catalog blocks.
1220
+
1221
+ ## v0.3.8
1222
+
1223
+ - Delta Lake + Unity Catalog registration:
1224
+ - new `unity` catalog type — after writing a Delta table to cloud storage, Floe
1225
+ optionally registers (or confirms) it as an EXTERNAL DELTA table in Databricks
1226
+ Unity Catalog via the REST API (`POST /api/2.1/unity-catalog/tables`).
1227
+ - existing-table safety: location mismatch and missing `storage_location`
1228
+ (managed table / view collision) are returned as explicit errors.
1229
+ - ADLS: `abfs://` URIs are normalised to `abfss://` before registration.
1230
+ - new `sink.accepted.delta` block: `catalog`, `schema`, `table` overrides.
1231
+ - `create_schema_if_missing` flag on the catalog definition.
1232
+ - Validation: `sink.accepted.delta` rejected on non-delta formats; Unity type
1233
+ rejected for Iceberg sinks; local storage rejected for Unity targets.
1234
+ - Three new report fields: `delta_catalog_name`, `delta_catalog_schema`,
1235
+ `delta_catalog_table`.
1236
+ - `token` accepts a literal PAT or a single `${ENV_VAR}` reference resolved from the OS environment at run time.
1237
+
1238
+ ## v0.3.7
1239
+
1240
+ - Windows binary now distributed via [Scoop](https://github.com/malon64/scoop-floe): `scoop bucket add floe https://github.com/malon64/scoop-floe` then `scoop install floe`.
1241
+ - Release pipeline extended with a `x86_64-pc-windows-msvc` build target; artifact packaged as `.zip`.
1242
+ - GitHub Actions upgraded to Node.js 24 runtime across all workflows.
1243
+
1244
+ ## v0.3.6
1245
+
1246
+ - Added `--profile <path>` flag to `floe run` for environment-specific variable injection into `{{VAR}}` config placeholders.
1247
+ - Profile variables support `${KEY}` cross-references; precedence chain: `env.vars` > `env.file` > profile variables.
1248
+ - Updated `profile.schema.yaml` with `kubernetes_job`/`databricks_job` runner types and accurate variable semantics.
1249
+ - Internal cleanup: shared test helper, consolidated `emit_log`, removed 8 redundant unit tests.
1250
+ - README rewrite: architecture diagram, pipeline stage table, `--profile` example.
1251
+
1252
+ ## v0.3.5
1253
+
1254
+ - Incremental ingestion release finalization:
1255
+ - documented `incremental_mode: file`, entity `state.path`, and the `floe state inspect/reset` CLI flow
1256
+ - refreshed the repository example config to show file-based incremental ingestion state explicitly
1257
+ - clarified incremental planning and state-commit behavior in the docs summary/reference set
1258
+ - Packaging/version updates:
1259
+ - bumped `floe-core` and `floe-cli` to `0.3.5`
1260
+
1261
+ ## v0.3.4
1262
+
1263
+ - Databricks runner foundation for orchestrator connectors:
1264
+ - added `databricks_job` runner contract support in Floe profile/manifest flow
1265
+ - added connector-side Databricks job client flow for Airflow and Dagster
1266
+ - standardized Databricks run status/result mapping with backend metadata and failure reason handling
1267
+ - added mocked integration coverage for success, failure, timeout, canceled, and infra failure paths
1268
+ - Packaging/version updates:
1269
+ - bumped `floe-core` and `floe-cli` to `0.3.4`
1270
+ - bumped `airflow-floe` and `dagster-floe` Python packages to `0.1.4`
1271
+
1272
+ ## v0.3.3
1273
+
1274
+ - Runner contract and architecture cleanup:
1275
+ - standardized Kubernetes runner naming to `kubernetes_job` across core/CLI/orchestrator-facing manifest surfaces
1276
+ - removed legacy runner alias handling for `kubernetes`
1277
+ - removed legacy Airflow manifest bridge from `floe.plan.v1` to `floe.manifest.v1` (manifest-v1 only)
1278
+ - Connector reliability/refactor:
1279
+ - improved Kubernetes status normalization and failure-reason surfacing for orchestrator runner execution paths
1280
+ - reduced Airflow/Dagster drift in k8 runner handling and metadata surfaces
1281
+ - Packaging/version updates:
1282
+ - bumped `floe-core` and `floe-cli` to `0.3.3`
1283
+ - bumped `airflow-floe` and `dagster-floe` Python packages to `0.1.3`
1284
+
1285
+ ## v0.3.2
1286
+
1287
+ - Delta schema evolution rollout:
1288
+ - added additive schema evolution support for Delta accepted writes across `append`, `overwrite`, `merge_scd1`, and `merge_scd2`
1289
+ - enforced rollout guardrails: additive-only changes, partitioned-table limitations, and merge-key protection against schema-evolved columns
1290
+ - added explicit observability via the entity report `schema_evolution` block and the `schema_evolution_applied` lifecycle event
1291
+
1292
+ ## v0.3.1
1293
+
1294
+ - Delta merge write modes:
1295
+ - added `merge_scd1` support for keyed upserts into accepted Delta outputs
1296
+ - added `merge_scd2` support for history-preserving merges with managed current/validity columns
1297
+ - Schema/config validation:
1298
+ - added `schema.primary_key` as the explicit merge key surface, including validation for required, known, unique, non-nullable key columns
1299
+ - Merge/reporting refinements:
1300
+ - added configurable Delta merge options and SCD2 closed/unchanged reporting metrics
1301
+
1302
+ ## v0.3.0
1303
+
1304
+ - Core performance and observability:
1305
+ - added internal phase timing instrumentation (gated by `FLOE_PERF_PHASE_TIMINGS`) for run- and entity-level phases
1306
+ - reduced CSV read overhead by reusing prechecked input columns in the read path
1307
+ - optimized JSON `read_parse` path by reducing intermediate row allocations during selector extraction.
1308
+ - Core refactoring (no intended behavior change):
1309
+ - split `run/entity` validation + split/reject flow into dedicated modules
1310
+ - split accepted write phase/report-state plumbing out of `run/entity/mod.rs`
1311
+ - further modularized writer internals (Delta/Iceberg) and report plumbing for maintainability.
1312
+ - Documentation:
1313
+ - refreshed v0.3 release communication draft and docs updates for the new core organization/perf instrumentation.
1314
+
1315
+ ## v0.2.8
1316
+
1317
+ - Iceberg accepted sink:
1318
+ - runtime execution of `sink.accepted.partition_spec` for supported transforms (`identity`, `year`, `month`, `day`, `hour`)
1319
+ - write-time file sizing metrics in entity reports (`files_written`, `total_bytes_written`, `avg_file_size_mb`, `small_files_count`)
1320
+ - Delta accepted sink:
1321
+ - exact remote commit-log write metrics (S3/GCS/ADLS) collected via object store commit entry parsing (best-effort fallback keeps metrics nullable)
1322
+ - `dagster-floe` connector package version bumped to `0.1.2` in the same release prep.
1323
+
1324
+ ## v0.2.7
1325
+
1326
+ - Added Iceberg S3 accepted sink support (filesystem catalog, no data catalog / Glue yet).
1327
+ - Improved `floe add-entity` bootstrap UX:
1328
+ - create a new config when target `-c` file does not exist
1329
+ - infer default entity name from input filename stem when `--name` is omitted
1330
+ - infer default format from input file extension when `--format` is omitted.
1331
+ - Hardened archive mode safety:
1332
+ - archive only resolved/processed inputs
1333
+ - collision-safe archive behavior (no silent overwrite on repeated filenames).
1334
+
1335
+ ## v0.2.6
1336
+
1337
+ - Added local Iceberg accepted sink MVP (`sink.accepted.format: iceberg`) with filesystem table layout and append/overwrite snapshot behavior.
1338
+ - Added cloud source glob pattern support (e.g. `s3://.../sales_*.csv`) with prefix-derived listing + glob filtering.
1339
+ - Added `floe add-entity` CLI command to infer a schema from an input file and append an entity definition to a Floe config.
1340
+
1341
+ ## v0.2.5
1342
+
1343
+ - Added `floe manifest generate` as the common manifest surface for orchestrators (`floe.manifest.v1`).
1344
+ - Airflow connector updates:
1345
+ - manifest-first operator flow (`FloeRunOperator` / `FloeManifestHook`)
1346
+ - multi-manifest DAG registration (`FLOE_MANIFEST_DIR`, one DAG per manifest)
1347
+ - streamed Floe stdout/stderr in task logs
1348
+ - enriched asset event metadata with per-entity report references.
1349
+ - Dagster connector updates:
1350
+ - migration to common manifest contract
1351
+ - strict manifest schema validation
1352
+ - multi-manifest loading with one Dagster job per manifest and collision guards.
1353
+ - CLI cleanup:
1354
+ - removed `floe validate --output json` (orchestrator automation now relies on generated manifests).
1355
+ - Documentation updates for local orchestrator workflows and manifest-driven integration specs.
1356
+
1357
+ ## v0.2.4
1358
+
1359
+ - Added new source input formats: `tsv`, `xlsx`, `fixed`, `orc`, `avro`, and `xml`.
1360
+ - Added nested JSON selector extraction from `schema.columns[].source` with top-level-only mismatch checks.
1361
+ - Added source-column mapping behavior (`source` as input selector, `name` as output column) in validation and run surfaces.
1362
+ - Added XML selector support (`.` or `/` paths and terminal `@attribute`) with required `source.options.row_tag`.
1363
+ - Dry-run now resolves inputs before execution, shows resolved file lists (with capped preview), and uses the same resolved plan as real runs.
1364
+ - Refactored runtime/storage boundaries to reduce format- and storage-specific coupling in run orchestration.
1365
+
1366
+ ## v0.2.3
1367
+
1368
+ - Added append/overwrite write modes for accepted parquet and delta outputs.
1369
+ - Rejected outputs now use dataset-style part files with write modes.
1370
+ - Append mode now seeds unique checks from existing accepted data (parquet + delta).
1371
+ - Part naming improvements:
1372
+ - UUID parts for append
1373
+ - sequential parts for overwrite
1374
+ - unified part listing/cleanup helpers.
1375
+ - Delta append fixes:
1376
+ - enforce schema nullability correctly
1377
+ - respect `normalize_columns` schema names.
1378
+ - Dagster Docker runner now writes outputs correctly.
1379
+
1380
+ ## v0.2.2
1381
+
1382
+ - Added Dagster orchestrator connector (`orchestrators/dagster-floe`) with:
1383
+ - validate plan ingestion
1384
+ - NDJSON run event parsing
1385
+ - local and Docker runner integration examples/tests.
1386
+ - Introduced accepted write-mode scaffolding and design groundwork:
1387
+ - `WriteMode` in config model (default overwrite behavior retained)
1388
+ - accepted writer abstraction/module split for future append support
1389
+ - design note: `docs/design/write_modes.md`.
1390
+ - Release workflow hardening:
1391
+ - build Linux AMD64 artifacts with `cross` to improve glibc compatibility.
1392
+
1393
+ ## v0.2.1
1394
+
1395
+ - Added official Docker image packaging and GHCR publishing on version tags.
1396
+ - Documentation: Docker usage added to installation guide and summary.
1397
+ - Added machine-readable run event logs (json/text) behind `--log-format`.
1398
+ - Fixes: `metadata.project` optional, CSV empty fields treated as null by default, default `cast_mode=strict`.
1399
+
1400
+ ## v0.2.0
1401
+
1402
+ - Cloud storage registry with local/S3/ADLS/GCS support (canonical URIs).
1403
+ - Cloud IO for CSV/JSON/Parquet inputs via temp download + local read.
1404
+ - Accepted outputs: parquet (multipart with `max_size_per_file`) and delta (transactional object_store).
1405
+ - Reports and rejected outputs can be written to cloud via temp upload.
1406
+ - Schema mismatch policy (missing/extra columns) with file-level rejection handling.
1407
+ - Deterministic run pipeline (file precheck → row validation → entity-level unique).
1408
+ - JSON input modes: array (default) and NDJSON.
1409
+ - Config templating (`env` + `domains`) and improved validation errors.
1410
+
1411
+ ## v0.1.7
1412
+
1413
+ - Added ADLS and GCS storage definitions with URI resolution and validation.
1414
+ - Implemented ADLS and GCS storage clients (list/download/upload) for file IO.
1415
+ - Added Delta transactional writes via object_store for S3, ADLS, and GCS.
1416
+ - Parquet accepted output now supports multipart chunking via `max_size_per_file`.
1417
+ - Added config templating (`env` + `domains`) and duplicate domain validation.
1418
+ - Refactored storage interface and reorganized test binaries/modules for faster CI.
1419
+ - CI: path-based filters, shared rust-cache across branches, and controlled test threading.
1420
+
1421
+ ## v0.1.6
1422
+
1423
+ - Added JSON array input mode alongside NDJSON, with config validation updates.
1424
+ - Added entity-level accepted output with part files and cleared stale S3 outputs.
1425
+ - Enforced validation order (file → row → entity) and fixed unique checks by rechunking.
1426
+ - Expanded and reorganized core test suites (grouped modules) and improved CI test caching.
1427
+
1428
+ ## v0.1.5
1429
+
1430
+ - Refactored storage configuration and IO to use a shared storage client abstraction.
1431
+ - Split the entity runner into focused modules and centralized warning handling.
1432
+ - Added configurable row error formatting (json/csv/text) in reports.
1433
+ - Unified input resolution logic and reorganized run/config tests.
1434
+ - Improved warn-mode performance and added lazy scan paths for CSV/Parquet.
1435
+ - Added benchmark harness docs/scripts and example reports for v0.1.5.
1436
+
1437
+ ## v0.1.4
1438
+
1439
+ - Added delta accepted sink support with overwrite semantics (local storage only).
1440
+ - Added iceberg accepted sink configuration stub with a clear not-implemented error.
1441
+ - Added `sink.accepted.options` for parquet compression and row group sizing.
1442
+
1443
+ ## v0.1.3
1444
+
1445
+ - Added a format registry with adapter traits for inputs and sinks.
1446
+ - Centralized file extension handling for local/S3 resolution.
1447
+ - Expanded input format scaffolding (Parquet/JSON readers) and IO dispatch.
1448
+ - Run pipeline refactor to use format adapters and shared IO helpers.
1449
+
1450
+ ## v0.1.2
1451
+
1452
+ - Config validation now rejects unknown fields and adds broader negative test coverage.
1453
+ - CLI and report examples use build-time version strings (no hardcoded 0.1.0).
1454
+ - Release pipeline hardening: portable version bumping, allow-dirty publish, and tap checkout fixes.
1455
+
1456
+ ## v0.1.1
1457
+
1458
+ - Global report layout with run-scoped directories and per-entity reports.
1459
+ - CI/CD release pipeline (crate publish, binaries, checksums, GitHub Release, Homebrew tap).
1460
+ - CLI output improvements and documentation refreshes for reports/checks.
1461
+
1462
+ ## v0.1.0
1463
+
1464
+ - Initial CLI (`validate`, `run`) and YAML configuration schema.
1465
+ - CSV ingestion with Parquet accepted output and CSV rejected output.
1466
+ - Core checks: casting, not-null, unique; row-level rejection and run reports.
1467
+ - Multi-entity support with run-scoped reporting.