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.
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.devcontainer/devcontainer.json +1 -2
- jiggle_version-2.2.2/.github/workflows/actions.lock +107 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.github/workflows/build.yml +2 -11
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.github/workflows/create_draft_release.yml +4 -4
- jiggle_version-2.2.2/.github/workflows/pages.yml +64 -0
- jiggle_version-2.2.2/.github/workflows/release.yml +129 -0
- jiggle_version-2.2.2/.github/workflows/verify-lockfile.yml +27 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.github/workflows/zizmor.yml +3 -3
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.gitignore +5 -0
- jiggle_version-2.2.2/.jiggle_version.config +2 -0
- jiggle_version-2.2.2/.readthedocs.yaml +13 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/CHANGELOG.md +4 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/Makefile +42 -20
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/PKG-INFO +11 -10
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/README.md +4 -3
- jiggle_version-2.2.2/docs/cli.md +46 -0
- jiggle_version-2.2.2/docs/index.md +21 -0
- jiggle_version-2.2.2/docs/requirements.txt +2 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/bump_all.py +2 -2
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/bump_all_directly.py +4 -3
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/pypi_versions.py +3 -3
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/__about__.py +4 -4
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/__main__.py +1 -1
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/central_module_finder.py +5 -6
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/file_inventory.py +6 -7
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/file_opener.py +5 -5
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/find_version_class.py +12 -13
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/jiggle_class.py +4 -7
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/module_finder.py +14 -18
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_package/package_info_finder.py +10 -13
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_version/parse_dunder_version.py +6 -7
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_version/parse_kwarg_version.py +8 -7
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_version/schema_guesser.py +3 -5
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/utils.py +3 -3
- jiggle_version-2.2.2/historical/test/sample_lib/__version__.py +5 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_damanged_versions.py +1 -1
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_find_by_ast.py +0 -1
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_version_schemes.py +1 -2
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_x_package_finder.py +0 -1
- jiggle_version-2.2.2/historical/test/tox_banner.py +3 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/__about__.py +15 -5
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/__main__.py +3 -3
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/auto.py +1 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/bump.py +1 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/config.py +4 -6
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/discover.py +8 -5
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/git.py +1 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/gitignore.py +2 -1
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/parsers/ast_parser.py +1 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/parsers/config_parser.py +4 -6
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/pypi.py +6 -10
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/schemes.py +1 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/update.py +6 -1
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/cli_suggestions.py +14 -1
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/console.py +4 -3
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version_self.py +2 -4
- jiggle_version-2.2.2/landing/assets/css/site.css +2 -0
- jiggle_version-2.2.2/landing/content/_index.md +3 -0
- jiggle_version-2.2.2/landing/hugo.toml +10 -0
- jiggle_version-2.2.2/landing/layouts/_default/baseof.html +11 -0
- jiggle_version-2.2.2/landing/layouts/index.html +20 -0
- jiggle_version-2.2.2/mkdocs.yml +17 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/pyproject.toml +42 -35
- jiggle_version-2.2.2/sample_projects/dupes_in_dunders/dupes/__version__.py +1 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/sample_src/a.py +0 -1
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/sample_src/setup.py +0 -1
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/setup_helpers.py +3 -11
- jiggle_version-2.2.2/sample_projects/ver_in_weird_file/ver_in_weird_file/smtp.py +2 -0
- jiggle_version-2.2.2/scripts/check_local_links.py +70 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/stress_test.py +1 -1
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_main.py +2 -6
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_parsers/test_ast_parser_encoding.py +1 -3
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/tox.ini +1 -2
- jiggle_version-2.2.2/uv.lock +3665 -0
- jiggle_version-2.2.1/.config/.pynt +0 -33
- jiggle_version-2.2.1/.github/workflows/release.yml +0 -155
- jiggle_version-2.2.1/.jiggle_version.config +0 -2
- jiggle_version-2.2.1/build.py +0 -746
- jiggle_version-2.2.1/dead_code/Pipfile +0 -39
- jiggle_version-2.2.1/dead_code/Pipfile.lock +0 -1052
- jiggle_version-2.2.1/historical/test/sample_lib/__version__.py +0 -5
- jiggle_version-2.2.1/historical/test/tox_banner.py +0 -8
- jiggle_version-2.2.1/sample_projects/dupes_in_dunders/dupes/__version__.py +0 -1
- jiggle_version-2.2.1/sample_projects/ver_in_weird_file/ver_in_weird_file/smtp.py +0 -2
- jiggle_version-2.2.1/uv.lock +0 -6796
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.bandit +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.isort.cfg +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.pylintrc +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.pylintrc_scripts +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.pylintrc_test +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.config/.yamllint +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.devcontainer/Dockerfile +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.env_example +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.gitattributes +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/.pre-commit-config.yaml +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/LICENSE +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/SECURITY.md +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/dead_code/notes_for_mypyc.md +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/dead_code/setup.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/AUTHORS +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/CODE_OF_CONDUCT.md +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/ChangeLog +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/design_philosophy.md +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/prior_art.md +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/todo.md +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/usage_example/single_module_example/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/docs/usage_example/usage.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/.gitignore +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/decomp.sh +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/fetch_raw_data/get_file.sh +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/commands.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/file_makers.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/find_modules_function.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_package/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_package/find_version_by_package.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_python/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_python/is_this_okay.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/parse_version/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/jiggle_version/version_lint.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/go.sh +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/sample_lib/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_command_line.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_jiggle_class.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_main.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_parse_dunder_version.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_parse_kwarg_version.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_pep440.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_strings/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_taggint.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/historical/test/test_zcentral_module_finder.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/parsers/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/py.typed +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/files.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/jiggle_version/utils/logging_config.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/make_prompt.sh +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/.gitignore +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/bar/.gitignore +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/bar/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/execise_foo.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/foo/.gitignore +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/foo/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/double_module/setup.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/dupes_in_dunders/dupes/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_src/.gitignore +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_src/exercise_me.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_src/file_module.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_src/setup.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_ver_in_file/.gitignore +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_ver_in_file/exercise_me.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_ver_in_file/file_module.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/file_module_ver_in_file/setup.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/init_project/some_thing/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/sample_src/.gitignore +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/sample_src/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/setup_only/.gitignore +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/setup_only/setup.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/conf.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/setup.cfg +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/setup.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/ver_in_weird_file/ver_in_weird_file/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/with_unlikely_modules/setup.cfg +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/with_unlikely_modules/setup.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/with_unlikely_modules/test/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/sample_projects/with_unlikely_modules/thing/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/scripts/basic_checks.sh +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/scripts/integration_test.sh +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/scripts/make_prompt.sh +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/scripts/make_source.sh +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/spec/bug-uv-cache-leak.md +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/spec/vnext.md +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_auto.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_config.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_discover.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_discover_permission.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_git.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_gitignore.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_hypothesis_properties.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_parsers/__init__.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_parsers/test_ast_parser.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_parsers/test_config_parser.py +0 -0
- {jiggle_version-2.2.1 → jiggle_version-2.2.2}/test/test_schemes.py +0 -0
- {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": "
|
|
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@
|
|
13
|
+
- uses: actions/checkout@v7.0.1
|
|
14
14
|
with:
|
|
15
15
|
persist-credentials: false
|
|
16
16
|
|
|
17
|
-
- uses: actions/setup-python@
|
|
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@
|
|
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@
|
|
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@
|
|
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
|
|
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@
|
|
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@
|
|
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@
|
|
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/
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
68
|
+
pylint: isort black
|
|
78
69
|
@echo "Linting with pylint"
|
|
79
|
-
$(VENV) ruff --fix
|
|
80
|
-
|
|
81
|
-
|
|
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:
|
|
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)
|
|
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)
|
|
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.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: jiggle_version
|
|
3
|
-
Version: 2.2.
|
|
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.
|
|
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.
|
|
71
|
+
**Python**: `>=3.11`
|
|
72
72
|
|
|
73
|
-
**Runtime deps
|
|
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.
|
|
44
|
+
**Python**: `>=3.11`
|
|
45
45
|
|
|
46
|
-
**Runtime deps
|
|
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)
|