kpmx 2.0.1__tar.gz → 2.0.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.
- {kpmx-2.0.1/src/kpmx.egg-info → kpmx-2.0.2}/PKG-INFO +1 -1
- {kpmx-2.0.1 → kpmx-2.0.2}/pyproject.toml +1 -1
- {kpmx-2.0.1 → kpmx-2.0.2/src/kpmx.egg-info}/PKG-INFO +1 -1
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/makefile.py +1 -3
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/changelog_lint.py +8 -6
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/changelog_md.py +12 -4
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/editor.py +16 -3
- {kpmx-2.0.1 → kpmx-2.0.2}/LICENSE +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/README.md +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/setup.cfg +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/SOURCES.txt +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/dependency_links.txt +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/entry_points.txt +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/requires.txt +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/top_level.txt +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/__main__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/discovery.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/inspect.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/readme.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/workflow.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/branch/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/branch/close_branch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/branch/drop_branch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/branch/open_branch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/changelog/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/code_scanning/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/config/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/config/add.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/config/init.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/config/show.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/capabilities.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/context.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/base.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/conflicts.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/installer.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/inspector.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/matcher.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/models.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/normalizer.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/parser.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/result.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile_list.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/retry.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/runner.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/textparse.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/types.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/arch_pkgbuild.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/debian_control.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/rpm_spec.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/python.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/layers.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/pipeline.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/context.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/diff_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/git_remote.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/io.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/list_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/merge_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/printing.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/remote_provision.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/setup_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/types.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/url_utils.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/visibility_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/proxy.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/git_tags.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/pypi_url.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/types.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/workflow.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/debian.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/flake.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/pkgbuild.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/pyproject.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/rpm_changelog.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/rpm_spec.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/git_ops.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/package_name.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/prompts.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/retry.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/versioning.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/workflow.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/_parallel.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/clone.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/config_writer.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/git_bootstrap.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/mirrors.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/model.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/parser.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/planner.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/service.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/templates.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/deinstall.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/delete.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/list.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/pull.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/push.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/status.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/update/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/update/manager.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/update/os_release.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/update/system_updater.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/archive.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/branch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/changelog.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/code_scanning.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/config.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/make.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/mirror.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/publish.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/release.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/repos.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/tools.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/version.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/context.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/dispatch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/archive_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/branch_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/changelog_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/code_scanning_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/common.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/config_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/install_update.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/list_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/make_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/mirror_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/navigation_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/publish_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/release_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/version_cmd.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/proxy.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/tools/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/tools/paths.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/tools/vscode.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/config/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/config/defaults.yaml +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/alias.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/ink.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/layer.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/resolve.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/run.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/config/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/config/load.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/config/save.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/env.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/gh.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/keyring.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/prompt.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/resolver.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/store_keys.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/types.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/validate.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/add.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/add_all.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/add_remote.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/add_remote_push_url.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/branch_move.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/checkout.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/clone.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/commit.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/create_branch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/delete_local_branch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/delete_remote_branch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/fetch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/init.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/merge_no_ff.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/pull.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/pull_args.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/pull_ff_only.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/push.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/push_args.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/push_upstream.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/set_remote_url.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/tag_annotated.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/tag_force_annotated.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/errors.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_changelog.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_config_value.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_current_branch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_head_commit.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_latest_commit.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_latest_signing_key.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_remote_head_commit.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_remote_push_urls.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_repo_root.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_tags.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_tags_at_ref.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_upstream_ref.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/list_remotes.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/list_tags.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/probe_remote_reachable.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/resolve_base_branch.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/run.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/ensure.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/http/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/http/client.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/http/errors.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/providers/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/providers/base.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/providers/gitea.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/providers/github.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/registry.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/types.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/visibility.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/dir.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/identifier.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/ignored.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/paths.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/resolve.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/selected.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/verify.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/version/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/version/installed.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/version/semver.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/version/source.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/github/__init__.py +0 -0
- {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/github/check_hadolint_sarif.py +0 -0
|
@@ -31,9 +31,7 @@ class MakefileInstaller(BaseInstaller):
|
|
|
31
31
|
except OSError:
|
|
32
32
|
return False
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
return True
|
|
36
|
-
return bool(re.search(r"^install-[a-zA-Z0-9_-]*\s*:", content, flags=re.MULTILINE))
|
|
34
|
+
return bool(re.search(r"^install\s*:", content, flags=re.MULTILINE))
|
|
37
35
|
|
|
38
36
|
def run(self, ctx: RepoContext) -> None:
|
|
39
37
|
makefile_path = os.path.join(ctx.repo_dir, self.MAKEFILE_NAME)
|
|
@@ -7,10 +7,11 @@ import shutil
|
|
|
7
7
|
import subprocess
|
|
8
8
|
import tempfile
|
|
9
9
|
|
|
10
|
-
_HEADING = re.compile(r"^\s
|
|
10
|
+
_HEADING = re.compile(r"^\s*(#{1,6})\s+(.*?)\s*#*\s*$")
|
|
11
11
|
_INLINE_CODE = re.compile(r"`([^`\n]+)`")
|
|
12
12
|
_FINDING = re.compile(r"\bMD\d{3}\b")
|
|
13
13
|
_MULTI_BLANK = re.compile(r"\n{3,}")
|
|
14
|
+
_ENTRY_LEVEL = 3
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
class ChangelogLintError(RuntimeError):
|
|
@@ -20,10 +21,10 @@ class ChangelogLintError(RuntimeError):
|
|
|
20
21
|
def transform_changelog_message(text: str) -> str:
|
|
21
22
|
"""Normalise a free-form release message into the changelog house style.
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
stays free of backticks.
|
|
24
|
+
Headings are pushed below the ``## [version]`` line the entry is filed
|
|
25
|
+
under, so they nest instead of competing with it. Bolding them instead
|
|
26
|
+
would read as a heading to markdown-lint and fail MD036. Inline ``code``
|
|
27
|
+
spans become ``*italic*`` so the entry stays free of backticks.
|
|
27
28
|
"""
|
|
28
29
|
text = _INLINE_CODE.sub(r"*\1*", text)
|
|
29
30
|
|
|
@@ -31,9 +32,10 @@ def transform_changelog_message(text: str) -> str:
|
|
|
31
32
|
for line in text.split("\n"):
|
|
32
33
|
heading = _HEADING.match(line)
|
|
33
34
|
if heading:
|
|
35
|
+
level = max(len(heading.group(1)), _ENTRY_LEVEL)
|
|
34
36
|
if out and out[-1].strip():
|
|
35
37
|
out.append("")
|
|
36
|
-
out.append(f"
|
|
38
|
+
out.append(f"{'#' * level} {heading.group(2).strip()}")
|
|
37
39
|
out.append("")
|
|
38
40
|
else:
|
|
39
41
|
out.append(line)
|
|
@@ -80,6 +80,12 @@ def update_changelog(
|
|
|
80
80
|
print(f" - {finding}")
|
|
81
81
|
print()
|
|
82
82
|
|
|
83
|
+
def _wait_for_reader() -> None:
|
|
84
|
+
try:
|
|
85
|
+
input("[INFO] Press Enter to re-open the editor and fix the entry...")
|
|
86
|
+
except EOFError:
|
|
87
|
+
print("[INFO] Re-opening the editor so you can fix the entry...")
|
|
88
|
+
|
|
83
89
|
if message is not None:
|
|
84
90
|
body, entry = _entry_for(message)
|
|
85
91
|
findings = lint_changelog_entry(changelog_path, entry)
|
|
@@ -92,19 +98,21 @@ def update_changelog(
|
|
|
92
98
|
body, entry = _entry_for(message or f"Release {new_version}")
|
|
93
99
|
else:
|
|
94
100
|
attempt: str | None = None
|
|
101
|
+
rejected: list[str] | None = None
|
|
95
102
|
while True:
|
|
96
103
|
print(
|
|
97
|
-
"\n[INFO] Provide the changelog entry
|
|
98
|
-
"
|
|
104
|
+
"\n[INFO] Provide the changelog entry - a leading '#' becomes "
|
|
105
|
+
"a sub-heading, `code` becomes italic.\n"
|
|
99
106
|
)
|
|
100
|
-
raw = _open_editor_for_changelog(attempt)
|
|
107
|
+
raw = _open_editor_for_changelog(attempt, rejected)
|
|
101
108
|
body, entry = _entry_for(raw or f"Release {new_version}")
|
|
102
109
|
findings = lint_changelog_entry(changelog_path, entry)
|
|
103
110
|
if not findings:
|
|
104
111
|
break
|
|
105
112
|
_print_findings(findings)
|
|
106
113
|
attempt = body
|
|
107
|
-
|
|
114
|
+
rejected = findings
|
|
115
|
+
_wait_for_reader()
|
|
108
116
|
|
|
109
117
|
changelog = ""
|
|
110
118
|
if os.path.exists(changelog_path):
|
|
@@ -6,7 +6,14 @@ import subprocess
|
|
|
6
6
|
import tempfile
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
def _open_editor_for_changelog(
|
|
9
|
+
def _open_editor_for_changelog(
|
|
10
|
+
initial_message: str | None = None,
|
|
11
|
+
findings: list[str] | None = None,
|
|
12
|
+
) -> str:
|
|
13
|
+
"""Args:
|
|
14
|
+
initial_message: the previous attempt, pre-loaded for editing.
|
|
15
|
+
findings: why that attempt was rejected, shown above it.
|
|
16
|
+
"""
|
|
10
17
|
editor = os.environ.get("EDITOR", "nano")
|
|
11
18
|
|
|
12
19
|
with tempfile.NamedTemporaryFile(
|
|
@@ -18,9 +25,15 @@ def _open_editor_for_changelog(initial_message: str | None = None) -> str:
|
|
|
18
25
|
tmp.write(
|
|
19
26
|
"; Write the changelog entry for this release.\n"
|
|
20
27
|
"; Lines starting with ';' are ignored.\n"
|
|
21
|
-
"; A leading '#' becomes
|
|
22
|
-
"; Empty result will fall back to a generic message.\n
|
|
28
|
+
"; A leading '#' becomes a sub-heading; `code` becomes italic.\n"
|
|
29
|
+
"; Empty result will fall back to a generic message.\n"
|
|
23
30
|
)
|
|
31
|
+
if findings:
|
|
32
|
+
tmp.write(";\n; markdown-lint rejected the previous entry:\n")
|
|
33
|
+
for finding in findings:
|
|
34
|
+
for line in str(finding).splitlines() or [""]:
|
|
35
|
+
tmp.write(f"; {line}\n")
|
|
36
|
+
tmp.write("\n")
|
|
24
37
|
if initial_message:
|
|
25
38
|
tmp.write(initial_message.strip() + "\n")
|
|
26
39
|
tmp.flush()
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/arch_pkgbuild.py
RENAMED
|
File without changes
|
{kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/debian_control.py
RENAMED
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|