cfengine 0.23.2__tar.gz → 0.23.3__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 (183) hide show
  1. {cfengine-0.23.2 → cfengine-0.23.3}/.github/workflows/renovate.yml +1 -1
  2. {cfengine-0.23.2 → cfengine-0.23.3}/PKG-INFO +2 -2
  3. {cfengine-0.23.2 → cfengine-0.23.3}/pyproject.toml +1 -1
  4. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine.egg-info/PKG-INFO +2 -2
  5. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine.egg-info/requires.txt +1 -1
  6. cfengine-0.23.3/src/cfengine.egg-info/scm_version.json +8 -0
  7. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/deptool.py +43 -4
  8. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/syntax-description.json +3 -3
  9. {cfengine-0.23.2 → cfengine-0.23.3}/uv.lock +5 -5
  10. cfengine-0.23.2/src/cfengine.egg-info/scm_version.json +0 -8
  11. {cfengine-0.23.2 → cfengine-0.23.3}/.coveragerc +0 -0
  12. {cfengine-0.23.2 → cfengine-0.23.3}/.github/renovate-config.js +0 -0
  13. {cfengine-0.23.2 → cfengine-0.23.3}/.github/workflows/coverage.yml +0 -0
  14. {cfengine-0.23.2 → cfengine-0.23.3}/.github/workflows/lint-policy-in-other-repos.yml +0 -0
  15. {cfengine-0.23.2 → cfengine-0.23.3}/.github/workflows/make-check.yml +0 -0
  16. {cfengine-0.23.2 → cfengine-0.23.3}/.github/workflows/pypi-publish.yml +0 -0
  17. {cfengine-0.23.2 → cfengine-0.23.3}/.github/workflows/stale.yml +0 -0
  18. {cfengine-0.23.2 → cfengine-0.23.3}/.github/workflows/update-syntax-description.yml +0 -0
  19. {cfengine-0.23.2 → cfengine-0.23.3}/.gitignore +0 -0
  20. {cfengine-0.23.2 → cfengine-0.23.3}/.python-version +0 -0
  21. {cfengine-0.23.2 → cfengine-0.23.3}/CHEATSHEET.md +0 -0
  22. {cfengine-0.23.2 → cfengine-0.23.3}/CLAUDE.md +0 -0
  23. {cfengine-0.23.2 → cfengine-0.23.3}/HACKING.md +0 -0
  24. {cfengine-0.23.2 → cfengine-0.23.3}/LICENSE +0 -0
  25. {cfengine-0.23.2 → cfengine-0.23.3}/Makefile +0 -0
  26. {cfengine-0.23.2 → cfengine-0.23.3}/README.md +0 -0
  27. {cfengine-0.23.2 → cfengine-0.23.3}/ci/01-install.sh +0 -0
  28. {cfengine-0.23.2 → cfengine-0.23.3}/ci/02-safe-tests.sh +0 -0
  29. {cfengine-0.23.2 → cfengine-0.23.3}/ci/03-unsafe-tests.sh +0 -0
  30. {cfengine-0.23.2 → cfengine-0.23.3}/renovate.json5 +0 -0
  31. {cfengine-0.23.2 → cfengine-0.23.3}/setup.cfg +0 -0
  32. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine.egg-info/SOURCES.txt +0 -0
  33. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine.egg-info/dependency_links.txt +0 -0
  34. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine.egg-info/entry_points.txt +0 -0
  35. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine.egg-info/scm_file_list.json +0 -0
  36. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine.egg-info/top_level.txt +0 -0
  37. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/__init__.py +0 -0
  38. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/__main__.py +0 -0
  39. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/cfengine_wrapper/__init__.py +0 -0
  40. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/cfengine_wrapper/arg_parse.py +0 -0
  41. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/cfengine_wrapper/cfengine_commands.py +0 -0
  42. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/cfengine_wrapper/cfengine_objects.py +0 -0
  43. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/cfengine_wrapper/cfengine_utils.py +0 -0
  44. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/changelog.py +0 -0
  45. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/commands.py +0 -0
  46. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/container.py +0 -0
  47. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/deptool-README.md +0 -0
  48. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/dev.py +0 -0
  49. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/docker/test-agent/Dockerfile +0 -0
  50. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/docs.py +0 -0
  51. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/format.py +0 -0
  52. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/initialize_project.py +0 -0
  53. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/lint.py +0 -0
  54. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/lint_csv.py +0 -0
  55. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/lint_yml.py +0 -0
  56. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/main.py +0 -0
  57. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/masterfiles/__init__.py +0 -0
  58. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/masterfiles/analyze.py +0 -0
  59. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/masterfiles/check_download_matches_git.py +0 -0
  60. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/masterfiles/download.py +0 -0
  61. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/masterfiles/generate_git_tags.py +0 -0
  62. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/masterfiles/generate_release_information.py +0 -0
  63. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/masterfiles/generate_vcf_download.py +0 -0
  64. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/masterfiles/generate_vcf_git_checkout.py +0 -0
  65. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/paths.py +0 -0
  66. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/profile.py +0 -0
  67. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/shell.py +0 -0
  68. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/syntax_tree.py +0 -0
  69. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/up.py +0 -0
  70. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/utils.py +0 -0
  71. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/validate.py +0 -0
  72. {cfengine-0.23.2 → cfengine-0.23.3}/src/cfengine_cli/version.py +0 -0
  73. {cfengine-0.23.2 → cfengine-0.23.3}/tests/README.md +0 -0
  74. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/001_hello_world.expected.cf +0 -0
  75. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/001_hello_world.input.cf +0 -0
  76. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/002_basics.expected.cf +0 -0
  77. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/002_basics.input.cf +0 -0
  78. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/003_wrapping.expected.cf +0 -0
  79. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/003_wrapping.input.cf +0 -0
  80. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/004_comments.expected.cf +0 -0
  81. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/004_comments.input.cf +0 -0
  82. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/005_bundle_comments.expected.cf +0 -0
  83. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/005_bundle_comments.input.cf +0 -0
  84. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/006_remove_empty_comments.expected.cf +0 -0
  85. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/006_remove_empty_comments.input.cf +0 -0
  86. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/007_class_guarded_empty_lines.expected.cf +0 -0
  87. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/007_class_guarded_empty_lines.input.cf +0 -0
  88. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/008_long_string.expected.cf +0 -0
  89. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/008_long_string.input.cf +0 -0
  90. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/009_single_line.expected.cf +0 -0
  91. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/009_single_line.input.cf +0 -0
  92. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/010_stakeholder.expected.cf +0 -0
  93. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/010_stakeholder.input.cf +0 -0
  94. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/011_macros.expected.cf +0 -0
  95. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/011_macros.input.cf +0 -0
  96. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/011_promises.expected.cf +0 -0
  97. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/011_promises.input.cf +0 -0
  98. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/012_sameline_comments.expected.cf +0 -0
  99. {cfengine-0.23.2 → cfengine-0.23.3}/tests/format/012_sameline_comments.input.cf +0 -0
  100. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/001_hello_world.cf +0 -0
  101. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/002_deprecations.expected.txt +0 -0
  102. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/002_deprecations.x.cf +0 -0
  103. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/003_name_lowercase.cf +0 -0
  104. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/003_name_lowercase.expected.txt +0 -0
  105. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/003_name_lowercase.x.cf +0 -0
  106. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/004_block_type.cf +0 -0
  107. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/004_block_type.expected.txt +0 -0
  108. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/004_block_type.x.cf +0 -0
  109. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/005_syntax_error.cf +0 -0
  110. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/005_syntax_error.expected.txt +0 -0
  111. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/005_syntax_error.x.cf +0 -0
  112. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/006_empty_file.expected.txt +0 -0
  113. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/006_empty_file.x.cf +0 -0
  114. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/007_namespace.cf +0 -0
  115. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/007_namespace.expected.txt +0 -0
  116. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/007_namespace.x.cf +0 -0
  117. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/008_bundle_shadows_function.cf +0 -0
  118. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/008_bundle_shadows_function.expected.txt +0 -0
  119. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/008_bundle_shadows_function.x.cf +0 -0
  120. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/009_unknown_function_inside_vars.cf +0 -0
  121. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/009_unknown_function_inside_vars.expected.txt +0 -0
  122. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/009_unknown_function_inside_vars.x.cf +0 -0
  123. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/010_mutually_exclusive_types_vars.cf +0 -0
  124. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/010_mutually_exclusive_types_vars.expected.txt +0 -0
  125. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/010_mutually_exclusive_types_vars.x.cf +0 -0
  126. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/011_invalid_attributes.expected.txt +0 -0
  127. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/011_invalid_attributes.x.cf +0 -0
  128. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/012_function_call_arg_count.cf +0 -0
  129. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/012_function_call_arg_count.expected.txt +0 -0
  130. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/012_function_call_arg_count.x.cf +0 -0
  131. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/013_num_args_body.expected.txt +0 -0
  132. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/013_num_args_body.x.cf +0 -0
  133. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/013_num_args_bundle.expected.txt +0 -0
  134. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/013_num_args_bundle.x.cf +0 -0
  135. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/013_num_args_bundle_body.cf +0 -0
  136. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/014_variadic_func_arg_count.cf +0 -0
  137. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/014_variadic_func_arg_count.expected.txt +0 -0
  138. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/014_variadic_func_arg_count.x.cf +0 -0
  139. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/015_macro_multi_def_bundle.cf +0 -0
  140. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/015_macro_multi_def_bundle.expected.txt +0 -0
  141. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/015_macro_multi_def_bundle.x.cf +0 -0
  142. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/016_half_promises.cf +0 -0
  143. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/016_half_promises.expected.txt +0 -0
  144. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/016_half_promises.x.cf +0 -0
  145. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/017_implies_body.cf +0 -0
  146. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/017_implies_body.expected.txt +0 -0
  147. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/017_implies_body.x.cf +0 -0
  148. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/018_nested_calls.cf +0 -0
  149. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/018_nested_calls.expected.txt +0 -0
  150. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/018_nested_calls.x.cf +0 -0
  151. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/019_bundle_name_expansion.cf +0 -0
  152. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/020_missing_braces.expected.txt +0 -0
  153. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/020_missing_braces.x.cf +0 -0
  154. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/020_missing_semicolon.expected.txt +0 -0
  155. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/020_missing_semicolon.x.cf +0 -0
  156. {cfengine-0.23.2 → cfengine-0.23.3}/tests/lint/021_reactor_strtotime_silence.cf +0 -0
  157. {cfengine-0.23.2 → cfengine-0.23.3}/tests/run-format-tests.sh +0 -0
  158. {cfengine-0.23.2 → cfengine-0.23.3}/tests/run-lint-tests.sh +0 -0
  159. {cfengine-0.23.2 → cfengine-0.23.3}/tests/run-shell-tests.sh +0 -0
  160. {cfengine-0.23.2 → cfengine-0.23.3}/tests/run-up-validate-tests.sh +0 -0
  161. {cfengine-0.23.2 → cfengine-0.23.3}/tests/shell/001-help.sh +0 -0
  162. {cfengine-0.23.2 → cfengine-0.23.3}/tests/shell/002-version.sh +0 -0
  163. {cfengine-0.23.2 → cfengine-0.23.3}/tests/shell/003-format.sh +0 -0
  164. {cfengine-0.23.2 → cfengine-0.23.3}/tests/shell/004-format-check.sh +0 -0
  165. {cfengine-0.23.2 → cfengine-0.23.3}/tests/shell/005-lint.sh +0 -0
  166. {cfengine-0.23.2 → cfengine-0.23.3}/tests/shell/006-test-fail.sh +0 -0
  167. {cfengine-0.23.2 → cfengine-0.23.3}/tests/shell/007-test-container.sh +0 -0
  168. {cfengine-0.23.2 → cfengine-0.23.3}/tests/shell/008-cfbs-index.sh +0 -0
  169. {cfengine-0.23.2 → cfengine-0.23.3}/tests/unit/__init__.py +0 -0
  170. {cfengine-0.23.2 → cfengine-0.23.3}/tests/unit/test_changelog.py +0 -0
  171. {cfengine-0.23.2 → cfengine-0.23.3}/tests/unit/test_deps.py +0 -0
  172. {cfengine-0.23.2 → cfengine-0.23.3}/tests/unit/test_format.py +0 -0
  173. {cfengine-0.23.2 → cfengine-0.23.3}/tests/unit/test_lint_csv.py +0 -0
  174. {cfengine-0.23.2 → cfengine-0.23.3}/tests/unit/test_lint_yml.py +0 -0
  175. {cfengine-0.23.2 → cfengine-0.23.3}/tests/unit/test_paths.py +0 -0
  176. {cfengine-0.23.2 → cfengine-0.23.3}/tests/unit/test_utils.py +0 -0
  177. {cfengine-0.23.2 → cfengine-0.23.3}/tests/unit/test_version.py +0 -0
  178. {cfengine-0.23.2 → cfengine-0.23.3}/tests/up-validate/001_complex_config.yaml +0 -0
  179. {cfengine-0.23.2 → cfengine-0.23.3}/tests/up-validate/002_version.x.yaml +0 -0
  180. {cfengine-0.23.2 → cfengine-0.23.3}/tests/up-validate/003_box.x.yaml +0 -0
  181. {cfengine-0.23.2 → cfengine-0.23.3}/tests/up-validate/004_count.x.yaml +0 -0
  182. {cfengine-0.23.2 → cfengine-0.23.3}/tests/up-validate/mocks/cloud_config.json +0 -0
  183. {cfengine-0.23.2 → cfengine-0.23.3}/tests/up-validate/mocks/vagrant +0 -0
@@ -12,7 +12,7 @@ jobs:
12
12
  - name: Checkout
13
13
  uses: actions/checkout@v7.0.1
14
14
  - name: Self-hosted Renovate
15
- uses: renovatebot/github-action@v46.3.6
15
+ uses: renovatebot/github-action@v46.3.7
16
16
  with:
17
17
  configurationFile: .github/renovate-config.js
18
18
  token: ${{ secrets.RENOVATE_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cfengine
3
- Version: 0.23.2
3
+ Version: 0.23.3
4
4
  Summary: Human-oriented CLI for interacting with CFEngine policy language, projects, and other CFEngine tools
5
5
  License: GNU GENERAL PUBLIC LICENSE
6
6
  Version 3, 29 June 2007
@@ -694,7 +694,7 @@ Classifier: Programming Language :: Python :: 3.13
694
694
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
695
695
  Requires-Python: >=3.10
696
696
  Description-Content-Type: text/markdown
697
- Requires-Dist: cf-remote>=0.9.6
697
+ Requires-Dist: cf-remote>=0.9.7
698
698
  Requires-Dist: cfbs>=5.8.1
699
699
  Requires-Dist: tree-sitter-cfengine>=1.1.12
700
700
  Requires-Dist: tree-sitter>=0.26.0
@@ -10,7 +10,7 @@ readme = "README.md"
10
10
  license = {file = "LICENSE"}
11
11
  requires-python = ">=3.10"
12
12
  dependencies = [
13
- "cf-remote>=0.9.6",
13
+ "cf-remote>=0.9.7",
14
14
  "cfbs>=5.8.1",
15
15
  "tree-sitter-cfengine>=1.1.12",
16
16
  "tree-sitter>=0.26.0",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cfengine
3
- Version: 0.23.2
3
+ Version: 0.23.3
4
4
  Summary: Human-oriented CLI for interacting with CFEngine policy language, projects, and other CFEngine tools
5
5
  License: GNU GENERAL PUBLIC LICENSE
6
6
  Version 3, 29 June 2007
@@ -694,7 +694,7 @@ Classifier: Programming Language :: Python :: 3.13
694
694
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
695
695
  Requires-Python: >=3.10
696
696
  Description-Content-Type: text/markdown
697
- Requires-Dist: cf-remote>=0.9.6
697
+ Requires-Dist: cf-remote>=0.9.7
698
698
  Requires-Dist: cfbs>=5.8.1
699
699
  Requires-Dist: tree-sitter-cfengine>=1.1.12
700
700
  Requires-Dist: tree-sitter>=0.26.0
@@ -1,4 +1,4 @@
1
- cf-remote>=0.9.6
1
+ cf-remote>=0.9.7
2
2
  cfbs>=5.8.1
3
3
  tree-sitter-cfengine>=1.1.12
4
4
  tree-sitter>=0.26.0
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.23.3",
3
+ "distance": 0,
4
+ "node": "gd28211c12d899feeded9307a4a449d762db16550",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-09"
8
+ }
@@ -109,6 +109,8 @@ class GitRepo:
109
109
  a ref from previous work might be left checked out.
110
110
  """
111
111
  self.repo_path = repo_path
112
+ self.repo_owner = repo_owner
113
+ self.repo_name = repo_name
112
114
 
113
115
  repo_url = "https://github.com/{}/{}.git".format(repo_owner, repo_name)
114
116
 
@@ -211,6 +213,36 @@ class GitRepo:
211
213
  return False
212
214
  return True
213
215
 
216
+ def upstream_remote(self):
217
+ result = self.run_command("remote", "-v", capture_output=True)
218
+ upstream = "github\\.com[:/]{}/{}(\\.git)?/?$".format(
219
+ re.escape(self.repo_owner), re.escape(self.repo_name)
220
+ )
221
+ for line in result.stdout.splitlines():
222
+ parts = line.split()
223
+ # GitHub owner and repository names are case-insensitive
224
+ if len(parts) >= 2 and re.search(upstream, parts[1], re.IGNORECASE):
225
+ return parts[0]
226
+ return None
227
+
228
+ def upstream_branch(self, ref):
229
+ remote = self.upstream_remote()
230
+ if remote is None:
231
+ log.warning(
232
+ "No remote points to github.com/{}/{}, using local refs".format(
233
+ self.repo_owner, self.repo_name
234
+ )
235
+ )
236
+ return None
237
+ remote_ref = "{}/{}".format(remote, ref)
238
+ try:
239
+ self.run_command(
240
+ "show-ref", "--verify", "refs/remotes/{}".format(remote_ref)
241
+ )
242
+ except subprocess.CalledProcessError:
243
+ return None
244
+ return remote_ref
245
+
214
246
 
215
247
  def pretty(data):
216
248
  return json.dumps(data, indent=2)
@@ -311,10 +343,17 @@ class DepsReader:
311
343
  ```
312
344
  The ref is checked out during the execution of this function.
313
345
  """
314
- self.buildscripts_repo.checkout(ref)
315
- # also support checking out refs that are not necessarily branches, such as tags
316
- if self.buildscripts_repo.is_git_branch(ref):
317
- self.buildscripts_repo.run_command("pull")
346
+ upstream_ref = self.buildscripts_repo.upstream_branch(ref)
347
+ if upstream_ref is not None:
348
+ self.buildscripts_repo.checkout(upstream_ref)
349
+ else:
350
+ if self.buildscripts_repo.is_git_branch(ref):
351
+ log.warning(
352
+ "Branch '{}' not found in upstream remote, using local branch".format(
353
+ ref
354
+ )
355
+ )
356
+ self.buildscripts_repo.checkout(ref)
318
357
 
319
358
  deps_versions = {}
320
359
  deps_list = self.deps_list(ref)
@@ -3272,11 +3272,11 @@
3272
3272
  },
3273
3273
  "when": {
3274
3274
  "attributes": {
3275
- "files_deleted": {
3276
- "attribute": "files_deleted",
3275
+ "file_deleted": {
3276
+ "attribute": "file_deleted",
3277
3277
  "range": ".*",
3278
3278
  "status": "normal",
3279
- "type": "slist",
3279
+ "type": "string",
3280
3280
  "visibility": "body"
3281
3281
  },
3282
3282
  "inherit_from": {
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 3
2
+ revision = 5
3
3
  requires-python = ">=3.10"
4
4
 
5
5
  [[package]]
@@ -34,14 +34,14 @@ wheels = [
34
34
 
35
35
  [[package]]
36
36
  name = "cf-remote"
37
- version = "0.9.6"
37
+ version = "0.9.7"
38
38
  source = { registry = "https://pypi.org/simple" }
39
39
  dependencies = [
40
40
  { name = "apache-libcloud" },
41
41
  ]
42
- sdist = { url = "https://files.pythonhosted.org/packages/e0/a5/28eec1ee83e065b580eff504c0dbe22c8a0682c9d0aba62b30198744cb6c/cf_remote-0.9.6.tar.gz", hash = "sha256:2025561e8cc8c2337a8e5924a32f29354ad8e62204bc562193e47754257e07e8", size = 80896, upload-time = "2026-09-16T19:45:46.151Z" }
42
+ sdist = { url = "https://files.pythonhosted.org/packages/f8/1c/95679ba7b8ccd352f208e45d2d705be2939b43356985243f0cb75413f029/cf_remote-0.9.7.tar.gz", hash = "sha256:57911977d2e43f0e33f6fa3d0a962ff61e59d56e276beb3d10cefd5b86ffdb7c", size = 82960, upload-time = "2026-10-01T12:59:42.785Z" }
43
43
  wheels = [
44
- { url = "https://files.pythonhosted.org/packages/4f/3b/f8258c38b15e480c72485f799f4ee796ad48ae9c12bf8fceb025c6f0de03/cf_remote-0.9.6-py3-none-any.whl", hash = "sha256:b7b60da04be3c37f195cee0ac2756f9b186915bd576c1d3292b489ff04b6ce95", size = 85236, upload-time = "2026-09-16T19:45:45.127Z" },
44
+ { url = "https://files.pythonhosted.org/packages/53/6d/2af2272785ca6a1b7b742d0b26d7f90a23bf8d60f6a56861392559bfd3e9/cf_remote-0.9.7-py3-none-any.whl", hash = "sha256:de3d3e2ebfd2f75e24ce08ee0110d48479ffe3070d44245ddf5927981b654dbf", size = 87566, upload-time = "2026-10-01T12:59:41.846Z" },
45
45
  ]
46
46
 
47
47
  [[package]]
@@ -75,7 +75,7 @@ dev = [
75
75
 
76
76
  [package.metadata]
77
77
  requires-dist = [
78
- { name = "cf-remote", specifier = ">=0.9.6" },
78
+ { name = "cf-remote", specifier = ">=0.9.7" },
79
79
  { name = "cfbs", specifier = ">=5.8.1" },
80
80
  { name = "markdown-it-py", specifier = ">=4.2.0" },
81
81
  { name = "pydantic", specifier = ">=2.13.5" },
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "0.23.2",
3
- "distance": 0,
4
- "node": "g65afc1bd8b3f77fcd47eefe94ee19898b7fce5c8",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-09-30"
8
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes