jiggle-version 2.2.1__tar.gz → 2.2.2__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 (187) hide show
  1. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.devcontainer/devcontainer.json +1 -2
  2. jiggle_version-2.2.2/.github/workflows/actions.lock +107 -0
  3. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.github/workflows/build.yml +2 -11
  4. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.github/workflows/create_draft_release.yml +4 -4
  5. jiggle_version-2.2.2/.github/workflows/pages.yml +64 -0
  6. jiggle_version-2.2.2/.github/workflows/release.yml +129 -0
  7. jiggle_version-2.2.2/.github/workflows/verify-lockfile.yml +27 -0
  8. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.github/workflows/zizmor.yml +3 -3
  9. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.gitignore +5 -0
  10. jiggle_version-2.2.2/.jiggle_version.config +2 -0
  11. jiggle_version-2.2.2/.readthedocs.yaml +13 -0
  12. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/CHANGELOG.md +4 -0
  13. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/Makefile +42 -20
  14. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/PKG-INFO +11 -10
  15. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/README.md +4 -3
  16. jiggle_version-2.2.2/docs/cli.md +46 -0
  17. jiggle_version-2.2.2/docs/index.md +21 -0
  18. jiggle_version-2.2.2/docs/requirements.txt +2 -0
  19. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/bump_all.py +2 -2
  20. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/bump_all_directly.py +4 -3
  21. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/pypi_versions.py +3 -3
  22. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/__about__.py +4 -4
  23. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/__main__.py +1 -1
  24. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/central_module_finder.py +5 -6
  25. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/file_inventory.py +6 -7
  26. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/file_opener.py +5 -5
  27. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/find_version_class.py +12 -13
  28. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/jiggle_class.py +4 -7
  29. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/module_finder.py +14 -18
  30. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_package/package_info_finder.py +10 -13
  31. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_version/parse_dunder_version.py +6 -7
  32. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_version/parse_kwarg_version.py +8 -7
  33. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_version/schema_guesser.py +3 -5
  34. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/utils.py +3 -3
  35. jiggle_version-2.2.2/historical/test/sample_lib/__version__.py +5 -0
  36. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_damanged_versions.py +1 -1
  37. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_find_by_ast.py +0 -1
  38. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_version_schemes.py +1 -2
  39. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_x_package_finder.py +0 -1
  40. jiggle_version-2.2.2/historical/test/tox_banner.py +3 -0
  41. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/__about__.py +15 -5
  42. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/__main__.py +3 -3
  43. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/auto.py +1 -0
  44. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/bump.py +1 -0
  45. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/config.py +4 -6
  46. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/discover.py +8 -5
  47. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/git.py +1 -0
  48. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/gitignore.py +2 -1
  49. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/parsers/ast_parser.py +1 -0
  50. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/parsers/config_parser.py +4 -6
  51. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/pypi.py +6 -10
  52. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/schemes.py +1 -0
  53. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/update.py +6 -1
  54. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/cli_suggestions.py +14 -1
  55. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/console.py +4 -3
  56. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version_self.py +2 -4
  57. jiggle_version-2.2.2/landing/assets/css/site.css +2 -0
  58. jiggle_version-2.2.2/landing/content/_index.md +3 -0
  59. jiggle_version-2.2.2/landing/hugo.toml +10 -0
  60. jiggle_version-2.2.2/landing/layouts/_default/baseof.html +11 -0
  61. jiggle_version-2.2.2/landing/layouts/index.html +20 -0
  62. jiggle_version-2.2.2/mkdocs.yml +17 -0
  63. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/pyproject.toml +42 -35
  64. jiggle_version-2.2.2/sample_projects/dupes_in_dunders/dupes/__version__.py +1 -0
  65. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/sample_src/a.py +0 -1
  66. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/sample_src/setup.py +0 -1
  67. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/setup_helpers.py +3 -11
  68. jiggle_version-2.2.2/sample_projects/ver_in_weird_file/ver_in_weird_file/smtp.py +2 -0
  69. jiggle_version-2.2.2/scripts/check_local_links.py +70 -0
  70. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/stress_test.py +1 -1
  71. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_main.py +2 -6
  72. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_parsers/test_ast_parser_encoding.py +1 -3
  73. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/tox.ini +1 -2
  74. jiggle_version-2.2.2/uv.lock +3665 -0
  75. jiggle_version-2.2.1/.config/.pynt +0 -33
  76. jiggle_version-2.2.1/.github/workflows/release.yml +0 -155
  77. jiggle_version-2.2.1/.jiggle_version.config +0 -2
  78. jiggle_version-2.2.1/build.py +0 -746
  79. jiggle_version-2.2.1/dead_code/Pipfile +0 -39
  80. jiggle_version-2.2.1/dead_code/Pipfile.lock +0 -1052
  81. jiggle_version-2.2.1/historical/test/sample_lib/__version__.py +0 -5
  82. jiggle_version-2.2.1/historical/test/tox_banner.py +0 -8
  83. jiggle_version-2.2.1/sample_projects/dupes_in_dunders/dupes/__version__.py +0 -1
  84. jiggle_version-2.2.1/sample_projects/ver_in_weird_file/ver_in_weird_file/smtp.py +0 -2
  85. jiggle_version-2.2.1/uv.lock +0 -6796
  86. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.bandit +0 -0
  87. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.isort.cfg +0 -0
  88. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.pylintrc +0 -0
  89. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.pylintrc_scripts +0 -0
  90. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.pylintrc_test +0 -0
  91. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.yamllint +0 -0
  92. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.devcontainer/Dockerfile +0 -0
  93. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.env_example +0 -0
  94. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.gitattributes +0 -0
  95. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.pre-commit-config.yaml +0 -0
  96. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/LICENSE +0 -0
  97. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/SECURITY.md +0 -0
  98. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/dead_code/notes_for_mypyc.md +0 -0
  99. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/dead_code/setup.py +0 -0
  100. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/AUTHORS +0 -0
  101. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/CODE_OF_CONDUCT.md +0 -0
  102. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/ChangeLog +0 -0
  103. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/design_philosophy.md +0 -0
  104. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/prior_art.md +0 -0
  105. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/todo.md +0 -0
  106. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/usage_example/single_module_example/__init__.py +0 -0
  107. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/usage_example/usage.py +0 -0
  108. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/.gitignore +0 -0
  109. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/decomp.sh +0 -0
  110. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/get_file.sh +0 -0
  111. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/__init__.py +0 -0
  112. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/commands.py +0 -0
  113. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/file_makers.py +0 -0
  114. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/find_modules_function.py +0 -0
  115. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_package/__init__.py +0 -0
  116. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_package/find_version_by_package.py +0 -0
  117. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_python/__init__.py +0 -0
  118. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_python/is_this_okay.py +0 -0
  119. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_version/__init__.py +0 -0
  120. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/version_lint.py +0 -0
  121. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/__init__.py +0 -0
  122. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/go.sh +0 -0
  123. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/sample_lib/__init__.py +0 -0
  124. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_command_line.py +0 -0
  125. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_jiggle_class.py +0 -0
  126. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_main.py +0 -0
  127. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_parse_dunder_version.py +0 -0
  128. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_parse_kwarg_version.py +0 -0
  129. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_pep440.py +0 -0
  130. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_strings/__init__.py +0 -0
  131. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_taggint.py +0 -0
  132. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_zcentral_module_finder.py +0 -0
  133. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/__init__.py +0 -0
  134. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/parsers/__init__.py +0 -0
  135. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/py.typed +0 -0
  136. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/__init__.py +0 -0
  137. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/files.py +0 -0
  138. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/logging_config.py +0 -0
  139. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/make_prompt.sh +0 -0
  140. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/.gitignore +0 -0
  141. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/bar/.gitignore +0 -0
  142. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/bar/__init__.py +0 -0
  143. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/execise_foo.py +0 -0
  144. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/foo/.gitignore +0 -0
  145. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/foo/__init__.py +0 -0
  146. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/setup.py +0 -0
  147. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/dupes_in_dunders/dupes/__init__.py +0 -0
  148. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_src/.gitignore +0 -0
  149. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_src/exercise_me.py +0 -0
  150. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_src/file_module.py +0 -0
  151. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_src/setup.py +0 -0
  152. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_ver_in_file/.gitignore +0 -0
  153. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_ver_in_file/exercise_me.py +0 -0
  154. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_ver_in_file/file_module.py +0 -0
  155. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_ver_in_file/setup.py +0 -0
  156. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/init_project/some_thing/__init__.py +0 -0
  157. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/sample_src/.gitignore +0 -0
  158. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/sample_src/__init__.py +0 -0
  159. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/setup_only/.gitignore +0 -0
  160. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/setup_only/setup.py +0 -0
  161. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/conf.py +0 -0
  162. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/setup.cfg +0 -0
  163. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/setup.py +0 -0
  164. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/ver_in_weird_file/__init__.py +0 -0
  165. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/with_unlikely_modules/setup.cfg +0 -0
  166. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/with_unlikely_modules/setup.py +0 -0
  167. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/with_unlikely_modules/test/__init__.py +0 -0
  168. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/with_unlikely_modules/thing/__init__.py +0 -0
  169. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/scripts/basic_checks.sh +0 -0
  170. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/scripts/integration_test.sh +0 -0
  171. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/scripts/make_prompt.sh +0 -0
  172. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/scripts/make_source.sh +0 -0
  173. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/spec/bug-uv-cache-leak.md +0 -0
  174. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/spec/vnext.md +0 -0
  175. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/__init__.py +0 -0
  176. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_auto.py +0 -0
  177. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_config.py +0 -0
  178. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_discover.py +0 -0
  179. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_discover_permission.py +0 -0
  180. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_git.py +0 -0
  181. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_gitignore.py +0 -0
  182. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_hypothesis_properties.py +0 -0
  183. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_parsers/__init__.py +0 -0
  184. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_parsers/test_ast_parser.py +0 -0
  185. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_parsers/test_config_parser.py +0 -0
  186. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_schemes.py +0 -0
  187. {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_update.py +0 -0
@@ -43,7 +43,7 @@
43
43
  // "forwardPorts": [],
44
44
 
45
45
  // Use 'postCreateCommand' to run commands after the container is created.
46
- "postCreateCommand": "pipenv sync --dev",
46
+ "postCreateCommand": "pip install uv && uv sync --all-extras",
47
47
 
48
48
  // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
49
49
  "remoteUser": "vscode",
@@ -56,7 +56,6 @@
56
56
  "ghcr.io/devcontainers-contrib/features/black:2": {},
57
57
  "ghcr.io/devcontainers-contrib/features/coverage-py:2": {},
58
58
  "ghcr.io/devcontainers-contrib/features/isort:2": {},
59
- "ghcr.io/devcontainers-contrib/features/pipenv:2": {},
60
59
  "ghcr.io/devcontainers-contrib/features/pylint:2": {}
61
60
  }
62
61
  }
@@ -0,0 +1,107 @@
1
+ # This file is machine-generated by `gh actions-lock`.
2
+ # Do not edit by hand; run `gh actions-lock` to update.
3
+ # Docs: https://gh.io/actions-lockfile
4
+ version: 'v0.0.3'
5
+ workflows:
6
+ '.github/workflows/build.yml':
7
+ - 'actions/checkout@v7.0.1'
8
+ - 'actions/setup-python@v7.0.0'
9
+ '.github/workflows/create_draft_release.yml':
10
+ - 'actions/checkout@v7.0.1'
11
+ - 'actions/setup-python@v7.0.0'
12
+ - 'astral-sh/setup-uv@v10.3.0'
13
+ '.github/workflows/pages.yml':
14
+ - 'actions/checkout@v7.0.1'
15
+ - 'actions/deploy-pages@v5.0.1'
16
+ - 'actions/upload-pages-artifact@v5.0.0'
17
+ '.github/workflows/release.yml':
18
+ - 'actions/checkout@v7.0.1'
19
+ - 'actions/download-artifact@v8.0.2'
20
+ - 'actions/setup-python@v7.0.0'
21
+ - 'actions/upload-artifact@v7.0.2'
22
+ - 'astral-sh/setup-uv@v10.3.0'
23
+ - 'pypa/gh-action-pypi-publish@v1.14.2'
24
+ '.github/workflows/verify-lockfile.yml':
25
+ - 'actions/checkout@v7.0.1'
26
+ '.github/workflows/zizmor.yml':
27
+ - 'actions/checkout@v7.0.1'
28
+ - 'github/codeql-action@v4.38.3'
29
+ - 'hynek/setup-cached-uv@v2.6.0'
30
+ dependencies:
31
+ 'actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9':
32
+ ref: 'v6.1.0'
33
+ commit: 'sha1-55cc8345863c7cc4c66a329aec7e433d2d1c52a9'
34
+ owner_id: 44036562
35
+ repo_id: 215566462
36
+ 'actions/checkout@v7.0.1':
37
+ ref: 'v7.0.1'
38
+ commit: 'sha1-3d3c42e5aac5ba805825da76410c181273ba90b1'
39
+ owner_id: 44036562
40
+ repo_id: 197814629
41
+ 'actions/deploy-pages@v5.0.1':
42
+ ref: 'v5.0.1'
43
+ commit: 'sha1-368f82528645a54fb793d4d04e342629a3f51346'
44
+ owner_id: 44036562
45
+ repo_id: 438112499
46
+ 'actions/download-artifact@v8.0.2':
47
+ ref: 'v8.0.2'
48
+ commit: 'sha1-9000827ccba6bdab643e8b6fd33ac0654aef8333'
49
+ owner_id: 44036562
50
+ repo_id: 192626254
51
+ 'actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405':
52
+ ref: 'v6.2.0'
53
+ commit: 'sha1-a309ff8b426b58ec0e2a45f0f869d46889d02405'
54
+ owner_id: 44036562
55
+ repo_id: 192625525
56
+ 'actions/setup-python@v7.0.0':
57
+ ref: 'v7.0.0'
58
+ commit: 'sha1-5fda3b95a4ea91299a34e894583c3862153e4b97'
59
+ owner_id: 44036562
60
+ repo_id: 192625525
61
+ 'actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f':
62
+ ref: 'v7.0.0'
63
+ commit: 'sha1-bbbca2ddaa5d8feaa63e36b76fdaad77386f024f'
64
+ owner_id: 44036562
65
+ repo_id: 192625955
66
+ 'actions/upload-artifact@v7.0.2':
67
+ ref: 'v7.0.2'
68
+ commit: 'sha1-cf430e030ddbb5b0abf93d22962f4752f3646cd9'
69
+ owner_id: 44036562
70
+ repo_id: 192625955
71
+ 'actions/upload-pages-artifact@v5.0.0':
72
+ ref: 'v5.0.0'
73
+ commit: 'sha1-fc324d3547104276b827a68afc52ff2a11cc49c9'
74
+ owner_id: 44036562
75
+ repo_id: 496012378
76
+ uses:
77
+ - 'actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f'
78
+ 'astral-sh/setup-uv@v10.3.0':
79
+ ref: 'v10.3.0'
80
+ commit: 'sha1-1c37ad07a6a961277cf70c0d37d6f313000f5884'
81
+ owner_id: 115962839
82
+ repo_id: 846733598
83
+ 'gacts/run-and-post-run@598d7a875d5620e0457490555b5e18e46082aa47':
84
+ ref: 'v1.4.4'
85
+ commit: 'sha1-598d7a875d5620e0457490555b5e18e46082aa47'
86
+ owner_id: 56696274
87
+ repo_id: 617991574
88
+ 'github/codeql-action@v4.38.3':
89
+ ref: 'v4.38.3'
90
+ commit: 'sha1-24c54180a607b1449ed407dd24f251e4e9147c8d'
91
+ owner_id: 9919
92
+ repo_id: 259445878
93
+ 'hynek/setup-cached-uv@v2.6.0':
94
+ ref: 'v2.6.0'
95
+ commit: 'sha1-34e35d30f1ebc7421a5cc733bca38dcc62603960'
96
+ owner_id: 41240
97
+ repo_id: 779953216
98
+ uses:
99
+ - 'actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9'
100
+ - 'gacts/run-and-post-run@598d7a875d5620e0457490555b5e18e46082aa47'
101
+ 'pypa/gh-action-pypi-publish@v1.14.2':
102
+ ref: 'v1.14.2'
103
+ commit: 'sha1-dc37677b2e1c63e2034f94d8a5b11f265b73ba33'
104
+ owner_id: 647025
105
+ repo_id: 178055147
106
+ uses:
107
+ - 'actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405'
@@ -10,11 +10,11 @@ jobs:
10
10
  runs-on: ubuntu-latest
11
11
 
12
12
  steps:
13
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
13
+ - uses: actions/checkout@v7.0.1
14
14
  with:
15
15
  persist-credentials: false
16
16
 
17
- - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
17
+ - uses: actions/setup-python@v7.0.0
18
18
  with:
19
19
  python-version: '3.14'
20
20
 
@@ -34,13 +34,4 @@ jobs:
34
34
  - name: Run make check
35
35
  run: chmod +x *.sh && uv run make check
36
36
 
37
- - name: Upload coverage reports to Codecov
38
- uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
39
- with:
40
- token: ${{ secrets.CODECOV_TOKEN }}
41
37
 
42
- - name: Upload test results to Codecov
43
- if: ${{ !cancelled() }}
44
- uses: codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1.2.1
45
- with:
46
- token: ${{ secrets.CODECOV_TOKEN }}
@@ -13,15 +13,15 @@ jobs:
13
13
  permissions:
14
14
  contents: write
15
15
  steps:
16
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
16
+ - uses: actions/checkout@v7.0.1
17
17
  with:
18
18
  fetch-depth: 0
19
19
  persist-credentials: false
20
20
  - name: Setup Python 3.14
21
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
21
+ uses: actions/setup-python@v7.0.0
22
22
  with: {python-version: '3.14'}
23
23
  - name: Set up uv
24
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
24
+ uses: astral-sh/setup-uv@v10.3.0
25
25
  with:
26
26
  enable-cache: true
27
27
  - name: Sync dependencies
@@ -29,4 +29,4 @@ jobs:
29
29
  - name: Creating Draft release
30
30
  env:
31
31
  GITHUB_TOKEN: ${{ github.token }}
32
- run: uv run changelogmanager github-release --repository ${{ github.repository }}
32
+ run: uv run kaclm github-release --repository ${{ github.repository }}
@@ -0,0 +1,64 @@
1
+ name: Landing page to GitHub Pages
2
+
3
+ # Pages source: GitHub Actions. Documentation is built separately on Read the Docs.
4
+ on:
5
+ push:
6
+ branches: [main]
7
+ paths:
8
+ - "landing/**"
9
+ - ".github/workflows/pages.yml"
10
+ pull_request:
11
+ paths:
12
+ - "landing/**"
13
+ - ".github/workflows/pages.yml"
14
+ workflow_dispatch:
15
+
16
+ permissions:
17
+ contents: read
18
+
19
+ concurrency:
20
+ group: jiggle-version-pages
21
+ cancel-in-progress: false
22
+
23
+ env:
24
+ HUGO_VERSION: "0.164.0"
25
+
26
+ jobs:
27
+ build:
28
+ runs-on: ubuntu-latest
29
+ timeout-minutes: 10
30
+ steps:
31
+ - uses: actions/checkout@v7.0.1
32
+ with:
33
+ persist-credentials: false
34
+
35
+ - name: Install Hugo (extended)
36
+ run: |
37
+ curl --fail --silent --show-error --location --output "$RUNNER_TEMP/hugo.deb" \
38
+ "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb"
39
+ echo "8325f3653032d0fc536503691f4833dc4eb6c6be02ee62466758f3f37a7f2fcd $RUNNER_TEMP/hugo.deb" | sha256sum --check
40
+ sudo dpkg -i "$RUNNER_TEMP/hugo.deb"
41
+
42
+ - name: Build landing page
43
+ run: hugo --source landing --minify --gc
44
+
45
+ - name: Upload Pages artifact
46
+ uses: actions/upload-pages-artifact@v5.0.0
47
+ with:
48
+ path: landing/public
49
+
50
+ deploy:
51
+ if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
52
+ needs: build
53
+ runs-on: ubuntu-latest
54
+ timeout-minutes: 10
55
+ permissions:
56
+ pages: write
57
+ id-token: write
58
+ environment:
59
+ name: github-pages
60
+ url: ${{ steps.deployment.outputs.page_url }}
61
+ steps:
62
+ - name: Deploy to GitHub Pages
63
+ id: deployment
64
+ uses: actions/deploy-pages@v5.0.1
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: Release
3
+ concurrency: changelog
4
+ on:
5
+ release:
6
+ types: [released]
7
+ permissions:
8
+ contents: read
9
+ jobs:
10
+ bump:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: write
14
+ pull-requests: write
15
+ outputs:
16
+ branch: ${{ steps.release.outputs.branch }}
17
+ version: ${{ steps.release.outputs.version }}
18
+ steps:
19
+ - uses: actions/checkout@v7.0.1
20
+ with:
21
+ ref: ${{ github.event.release.target_commitish }}
22
+ fetch-depth: 0
23
+ persist-credentials: false
24
+ - name: Set up Python 3.14
25
+ uses: actions/setup-python@v7.0.0
26
+ with: {python-version: '3.14'}
27
+ - name: Set up uv
28
+ uses: astral-sh/setup-uv@v10.3.0
29
+ with:
30
+ enable-cache: false
31
+ - name: Sync dependencies
32
+ run: uv sync --frozen --group dev
33
+ - name: Configure git author
34
+ run: |
35
+ git config user.name "github-actions[bot]"
36
+ git config user.email "github-actions[bot]@users.noreply.github.com"
37
+
38
+ - name: Bump, commit, push branch and open PR
39
+ id: release
40
+ env:
41
+ GITHUB_TOKEN: ${{ github.token }}
42
+ RELEASE_VERSION: ${{ github.event.release.tag_name }}
43
+ RELEASE_ID: ${{ github.event.release.id }}
44
+ BASE_BRANCH: ${{ github.event.release.target_commitish }}
45
+ REPO: ${{ github.repository }}
46
+ run: |
47
+ # One command does everything the bump job used to do in shell:
48
+ # bump changelog + version files, branch, [skip ci] commit,
49
+ # --force-with-lease push, and open the release PR. The [skip ci]
50
+ # decision follows [defaults].skip_ci (default true).
51
+ git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/${REPO}.git"
52
+ VERSION="${RELEASE_VERSION#v}"
53
+ # --json is a global flag, so it must precede the `release-bump`
54
+ # subcommand (argparse rejects it if placed after).
55
+ uv run kaclm --json release-bump \
56
+ --version "$VERSION" \
57
+ --base "$BASE_BRANCH" \
58
+ --release-id "$RELEASE_ID" \
59
+ --repository "$REPO" \
60
+ --open-pr \
61
+ --title "chore: release ${VERSION}" \
62
+ --body "Automated release PR for ${VERSION}. Merge once the PyPI publish succeeds." \
63
+ --yes > release-bump.json
64
+ echo "version=$(python -c "import json;print(json.load(open('release-bump.json'))['version'])")" >> "$GITHUB_OUTPUT"
65
+ echo "branch=$(python -c "import json;print(json.load(open('release-bump.json'))['branch'])")" >> "$GITHUB_OUTPUT"
66
+ build:
67
+ runs-on: ubuntu-latest
68
+ needs: bump
69
+ steps:
70
+ - uses: actions/checkout@v7.0.1
71
+ with:
72
+ ref: ${{ needs.bump.outputs.branch }}
73
+ fetch-depth: 0
74
+ persist-credentials: false
75
+ - name: Set up Python 3.14
76
+ uses: actions/setup-python@v7.0.0
77
+ with: {python-version: '3.14'}
78
+ - name: Set up uv
79
+ uses: astral-sh/setup-uv@v10.3.0
80
+ with:
81
+ enable-cache: false
82
+ - name: Sync dependencies
83
+ run: uv sync --frozen
84
+ - name: Build
85
+ run: uv build --no-sources
86
+ # Fail before uploading: the publish action's bundled twine rejects
87
+ # metadata it cannot parse (e.g. Metadata-Version 2.5 from hatchling),
88
+ # which otherwise only surfaces after the release is already tagged.
89
+ - name: Validate distribution metadata
90
+ run: uv run --with 'twine>=7' twine check --strict dist/*
91
+ - name: Verify dist version matches release
92
+ env:
93
+ EXPECTED: ${{ needs.bump.outputs.version }}
94
+ run: |
95
+ WHEEL=$(ls dist/*.whl 2>/dev/null | head -1)
96
+ if [ -z "$WHEEL" ]; then
97
+ echo "::error::No wheel found in dist/"
98
+ exit 1
99
+ fi
100
+ if ! echo "$WHEEL" | grep -q "${EXPECTED}"; then
101
+ echo "::error::Wheel ${WHEEL} does not contain expected version ${EXPECTED}"
102
+ exit 1
103
+ fi
104
+ echo "Verified: ${WHEEL} matches version ${EXPECTED}"
105
+ - name: Upload artifact
106
+ uses: actions/upload-artifact@v7.0.2
107
+ with:
108
+ name: packages
109
+ path: dist/
110
+ if-no-files-found: error
111
+ retention-days: 1
112
+ publish:
113
+ runs-on: ubuntu-latest
114
+ needs: build
115
+ permissions:
116
+ id-token: write
117
+ environment:
118
+ name: pypi
119
+ url: https://pypi.org/p/jiggle-version
120
+ steps:
121
+ - name: Download artifact
122
+ uses: actions/download-artifact@v8.0.2
123
+ with:
124
+ name: packages
125
+ path: dist/
126
+ - name: Publish to PyPI
127
+ uses: pypa/gh-action-pypi-publish@v1.14.2
128
+ with:
129
+ verbose: 'true'
@@ -0,0 +1,27 @@
1
+ name: Verify Actions lockfile
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main]
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ verify:
14
+ runs-on: ubuntu-latest
15
+ timeout-minutes: 10
16
+ steps:
17
+ - uses: actions/checkout@v7.0.1
18
+ with:
19
+ persist-credentials: false
20
+ - name: Install Actions lockfile verifier
21
+ run: gh extension install github/gh-actions-lock --pin v0.4.1
22
+ env:
23
+ GH_TOKEN: ${{ github.token }}
24
+ - name: Verify workflow dependency locks
25
+ run: gh actions-lock --verify
26
+ env:
27
+ GH_TOKEN: ${{ github.token }}
@@ -23,12 +23,12 @@ jobs:
23
23
  security-events: write
24
24
  steps:
25
25
  - name: Checkout repository
26
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
26
+ uses: actions/checkout@v7.0.1
27
27
  with:
28
28
  persist-credentials: false
29
29
 
30
30
 
31
- - uses: hynek/setup-cached-uv@4300ec2180bc77d705e626a34e381b81a4772c51 # v2.5.0
31
+ - uses: hynek/setup-cached-uv@v2.6.0
32
32
 
33
33
  - name: Run zizmor 🌈
34
34
  run: uvx zizmor --format sarif . > results.sarif
@@ -36,7 +36,7 @@ jobs:
36
36
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37
37
 
38
38
  - name: Upload SARIF file
39
- uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
39
+ uses: github/codeql-action/upload-sarif@v4.38.3
40
40
  with:
41
41
  # Path to SARIF file relative to the root of the repository
42
42
  sarif_file: results.sarif
@@ -84,11 +84,13 @@ celerybeat-schedule
84
84
  # Environments
85
85
  .env
86
86
  .venv
87
+ .venv*/
87
88
  env/
88
89
  venv/
89
90
  ENV/
90
91
  env.bak/
91
92
  venv.bak/
93
+ .build/
92
94
 
93
95
  # Spyder project settings
94
96
  .spyderproject
@@ -99,6 +101,9 @@ venv.bak/
99
101
 
100
102
  # mkdocs documentation
101
103
  /site
104
+ /landing/public/
105
+ /landing/resources/
106
+ /landing/.hugo_build.lock
102
107
 
103
108
  # mypy
104
109
  .mypy_cache/
@@ -0,0 +1,2 @@
1
+ digest = "sha256:ec3b1a7f2e386c9bd0ceb9c2efd06cf9b210e766dab4a88aa9507ffa85ea0fe0"
2
+ symbols = ["__credits__", "__dependencies__", "__description__", "__keywords__", "__license__", "__readme__", "__requires_python__", "__status__", "__title__", "__version__"]
@@ -0,0 +1,13 @@
1
+ version: 2
2
+
3
+ build:
4
+ os: ubuntu-24.04
5
+ tools:
6
+ python: "3.14"
7
+
8
+ mkdocs:
9
+ configuration: mkdocs.yml
10
+
11
+ python:
12
+ install:
13
+ - requirements: docs/requirements.txt
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.2.2] - 2026-11-15
8
+ ### Changed
9
+ - Requires Python 3.11 or newer; Python 3.9-3.10 are no longer supported.
10
+
7
11
  ## [2.2.1] - 2026-07-04
8
12
  ### Fixed
9
13
  - Version discovery now honors nested `.gitignore` files and skips directories tagged with a `CACHEDIR.TAG` marker, so project-local caches (e.g. uv's `./.uv/`) no longer leak installed-package version files and cause false version-conflict errors.
@@ -36,18 +36,14 @@ test: clean uv.lock install_plugins
36
36
  $(VENV) bash scripts/integration_test.sh
37
37
 
38
38
 
39
- .build_history:
40
- @mkdir -p .build_history
41
39
 
42
- .build_history/isort: .build_history $(FILES)
40
+ isort:
43
41
  @echo "Formatting imports"
44
42
  $(VENV) isort .
45
- @touch .build_history/isort
46
43
 
47
44
  .PHONY: isort
48
- isort: .build_history/isort
49
45
 
50
- .build_history/black: .build_history .build_history/isort $(FILES)
46
+ black: isort
51
47
  @echo "Formatting code"
52
48
  $(VENV) metametameta pep621
53
49
  $(VENV) black jiggle_version # --exclude .venv
@@ -55,33 +51,28 @@ isort: .build_history/isort
55
51
  $(VENV) git2md jiggle_version --ignore __init__.py __pycache__ --output SOURCE.md
56
52
 
57
53
  .PHONY: black
58
- black: .build_history/black
59
54
 
60
- .build_history/pre-commit: .build_history .build_history/isort .build_history/black
55
+ pre-commit: isort black
61
56
  @echo "Pre-commit checks"
62
57
  $(VENV) pre-commit run --all-files
63
- @touch .build_history/pre-commit
64
58
 
65
59
  .PHONY: pre-commit
66
- pre-commit: .build_history/pre-commit
67
60
 
68
- .build_history/bandit: .build_history $(FILES)
61
+ bandit:
69
62
  @echo "Security checks...off"
70
63
  # $(VENV) bandit jiggle_version -r
71
- # @touch .build_history/bandit
72
64
 
73
65
  .PHONY: bandit
74
- bandit: .build_history/bandit
75
66
 
76
67
  .PHONY: pylint
77
- .build_history/pylint: .build_history .build_history/isort .build_history/black $(FILES)
68
+ pylint: isort black
78
69
  @echo "Linting with pylint"
79
- $(VENV) ruff --fix
80
- $(VENV) pylint jiggle_version --fail-under 9.8
81
- @touch .build_history/pylint
70
+ $(VENV) ruff check --fix jiggle_version
71
+ # pylint never actually ran here while targets were stamp files; this is today's score, ratchet it up.
72
+ $(VENV) pylint jiggle_version --fail-under 9.6
82
73
 
83
74
  # for when using -j (jobs, run in parallel)
84
- .NOTPARALLEL: .build_history/isort .build_history/black
75
+ .NOTPARALLEL: isort black
85
76
 
86
77
  check: mypy test pylint bandit
87
78
 
@@ -98,6 +89,34 @@ mypy:
98
89
  $(VENV) echo $$PYTHONPATH
99
90
  $(VENV) mypy jiggle_version --ignore-missing-imports --check-untyped-defs
100
91
 
92
+ # -- Python 3.15 trial run ---------------------------------------------------
93
+ # Uses a dedicated venv so the normal .venv is never clobbered.
94
+
95
+ PY315 := 3.15.0rc2
96
+ VENV315 := .venv315rc2
97
+ PY315_EXE := $(VENV315)/Scripts/python.exe
98
+
99
+ .PHONY: venv315
100
+ venv315:
101
+ @echo "Creating Python $(PY315) trial venv at $(VENV315)"
102
+ @test -x $(PY315_EXE) || uv venv $(VENV315) --python $(PY315)
103
+ uv pip install -e . pytest pytest-cov pytest-timeout pytest-mock hypothesis --python $(PY315_EXE)
104
+
105
+ .PHONY: venv315-clean
106
+ venv315-clean:
107
+ @echo "Recreating Python $(PY315) trial venv from scratch"
108
+ uv venv $(VENV315) --python $(PY315) --clear
109
+ @$(MAKE) venv315
110
+
111
+ .PHONY: test315
112
+ test315: venv315
113
+ @echo "Running unit tests on Python $(PY315)"
114
+ $(PY315_EXE) -m pytest test -q --timeout=120
115
+
116
+ .PHONY: check315
117
+ check315: test315
118
+ @echo "Python $(PY315) checks passed."
119
+
101
120
 
102
121
  check_docs:
103
122
  $(VENV) interrogate jiggle_version --verbose
@@ -107,7 +126,7 @@ make_docs:
107
126
  pdoc jiggle_version --html -o docs --force
108
127
 
109
128
  check_md:
110
- $(VENV) linkcheckMarkdown README.md
129
+ $(VENV) python -X utf8 scripts/check_local_links.py README.md docs
111
130
  $(VENV) markdownlint README.md --config .markdownlintrc
112
131
  $(VENV) mdformat README.md docs/*.md
113
132
 
@@ -119,7 +138,7 @@ check_spelling:
119
138
 
120
139
  check_changelog:
121
140
  # pipx install keepachangelog-manager
122
- $(VENV) changelogmanager validate
141
+ $(VENV) kaclm validate
123
142
 
124
143
  check_all_docs: check_docs check_md check_spelling check_changelog
125
144
 
@@ -163,3 +182,6 @@ dont-be-lazy:
163
182
  .PHONY: pydoc-docs
164
183
  pydoc-docs:
165
184
  @uv run pydoc_fork jiggle_version -o ./pydoc/
185
+
186
+ # `test` is also a directory in this repo; without .PHONY make can call the target up to date and skip it.
187
+ .PHONY: test
@@ -1,7 +1,10 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: jiggle_version
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: Increment version number found in source code without regex
5
+ Project-URL: Homepage, https://matthewdeanmartin.github.io/jiggle_version/
6
+ Project-URL: Documentation, https://jiggle-version.readthedocs.io/
7
+ Project-URL: Repository, https://github.com/matthewdeanmartin/jiggle_version
5
8
  Author-email: Matthew Martin <matthewdeanmartin@gmail.com>
6
9
  License-Expression: MIT
7
10
  License-File: LICENSE
@@ -9,19 +12,16 @@ Keywords: version,version-numbers
9
12
  Classifier: Development Status :: 3 - Alpha
10
13
  Classifier: Programming Language :: Python
11
14
  Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.8
13
- Classifier: Programming Language :: Python :: 3.9
14
- Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
17
18
  Classifier: Programming Language :: Python :: 3.14
18
19
  Classifier: Programming Language :: Python :: 3.15
19
- Requires-Python: >=3.9
20
+ Requires-Python: >=3.11
20
21
  Requires-Dist: packaging>=25.0
21
22
  Requires-Dist: pathspec>=0.12
22
23
  Requires-Dist: requests>=2.32.4
23
24
  Requires-Dist: rich-argparse>=1.7.1
24
- Requires-Dist: tomli; python_version < '3.11'
25
25
  Requires-Dist: tomlkit>=0.13.3
26
26
  Description-Content-Type: text/markdown
27
27
 
@@ -68,10 +68,9 @@ pipx install jiggle_version
68
68
  python -m pip install --user jiggle_version
69
69
  ```
70
70
 
71
- **Python**: `>=3.8`
71
+ **Python**: `>=3.11`
72
72
 
73
- **Runtime deps** (runtime or conditional): `packaging`, `tomlkit`, `pathspec`, `rich-argparse` (help styling), `tomli`
74
- on Python <3.11.
73
+ **Runtime deps**: `packaging`, `tomlkit`, `pathspec`, `rich-argparse` (help styling), and `requests`.
75
74
 
76
75
  ---
77
76
 
@@ -329,6 +328,8 @@ This is a CLI-first tool. Internal modules may change. If you import, prefer:
329
328
  ## Project Links
330
329
 
331
330
  - [GitHub](https://github.com/matthewdeanmartin/jiggle_version)
331
+ - [Homepage](https://matthewdeanmartin.github.io/jiggle_version/)
332
+ - [Documentation](https://jiggle-version.readthedocs.io/)
332
333
  - [PyPI](https://pypi.org/project/jiggle-version/)
333
334
  - [Bug Tracker](https://github.com/matthewdeanmartin/jiggle_version/issues)
334
335
  - [Change Log](https://github.com/matthewdeanmartin/jiggle_version/blob/main/CHANGELOG.md)
@@ -41,10 +41,9 @@ pipx install jiggle_version
41
41
  python -m pip install --user jiggle_version
42
42
  ```
43
43
 
44
- **Python**: `>=3.8`
44
+ **Python**: `>=3.11`
45
45
 
46
- **Runtime deps** (runtime or conditional): `packaging`, `tomlkit`, `pathspec`, `rich-argparse` (help styling), `tomli`
47
- on Python <3.11.
46
+ **Runtime deps**: `packaging`, `tomlkit`, `pathspec`, `rich-argparse` (help styling), and `requests`.
48
47
 
49
48
  ---
50
49
 
@@ -302,6 +301,8 @@ This is a CLI-first tool. Internal modules may change. If you import, prefer:
302
301
  ## Project Links
303
302
 
304
303
  - [GitHub](https://github.com/matthewdeanmartin/jiggle_version)
304
+ - [Homepage](https://matthewdeanmartin.github.io/jiggle_version/)
305
+ - [Documentation](https://jiggle-version.readthedocs.io/)
305
306
  - [PyPI](https://pypi.org/project/jiggle-version/)
306
307
  - [Bug Tracker](https://github.com/matthewdeanmartin/jiggle_version/issues)
307
308
  - [Change Log](https://github.com/matthewdeanmartin/jiggle_version/blob/main/CHANGELOG.md)