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.
Files changed (241) hide show
  1. {kpmx-2.0.1/src/kpmx.egg-info → kpmx-2.0.2}/PKG-INFO +1 -1
  2. {kpmx-2.0.1 → kpmx-2.0.2}/pyproject.toml +1 -1
  3. {kpmx-2.0.1 → kpmx-2.0.2/src/kpmx.egg-info}/PKG-INFO +1 -1
  4. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/makefile.py +1 -3
  5. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/changelog_lint.py +8 -6
  6. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/changelog_md.py +12 -4
  7. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/editor.py +16 -3
  8. {kpmx-2.0.1 → kpmx-2.0.2}/LICENSE +0 -0
  9. {kpmx-2.0.1 → kpmx-2.0.2}/README.md +0 -0
  10. {kpmx-2.0.1 → kpmx-2.0.2}/setup.cfg +0 -0
  11. {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/SOURCES.txt +0 -0
  12. {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/dependency_links.txt +0 -0
  13. {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/entry_points.txt +0 -0
  14. {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/requires.txt +0 -0
  15. {kpmx-2.0.1 → kpmx-2.0.2}/src/kpmx.egg-info/top_level.txt +0 -0
  16. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/__init__.py +0 -0
  17. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/__main__.py +0 -0
  18. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/__init__.py +0 -0
  19. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/__init__.py +0 -0
  20. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/discovery.py +0 -0
  21. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/inspect.py +0 -0
  22. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/readme.py +0 -0
  23. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/archive/workflow.py +0 -0
  24. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/branch/__init__.py +0 -0
  25. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/branch/close_branch.py +0 -0
  26. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/branch/drop_branch.py +0 -0
  27. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/branch/open_branch.py +0 -0
  28. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/changelog/__init__.py +0 -0
  29. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/code_scanning/__init__.py +0 -0
  30. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/config/__init__.py +0 -0
  31. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/config/add.py +0 -0
  32. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/config/init.py +0 -0
  33. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/config/show.py +0 -0
  34. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/__init__.py +0 -0
  35. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/capabilities.py +0 -0
  36. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/context.py +0 -0
  37. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/__init__.py +0 -0
  38. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/base.py +0 -0
  39. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/__init__.py +0 -0
  40. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/conflicts.py +0 -0
  41. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/installer.py +0 -0
  42. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/__init__.py +0 -0
  43. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/inspector.py +0 -0
  44. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/matcher.py +0 -0
  45. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/models.py +0 -0
  46. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/normalizer.py +0 -0
  47. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/parser.py +0 -0
  48. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile/result.py +0 -0
  49. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/profile_list.py +0 -0
  50. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/retry.py +0 -0
  51. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/runner.py +0 -0
  52. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/textparse.py +0 -0
  53. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/nix/types.py +0 -0
  54. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/__init__.py +0 -0
  55. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/arch_pkgbuild.py +0 -0
  56. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/debian_control.py +0 -0
  57. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/os_packages/rpm_spec.py +0 -0
  58. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/installers/python.py +0 -0
  59. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/layers.py +0 -0
  60. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/install/pipeline.py +0 -0
  61. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/__init__.py +0 -0
  62. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/context.py +0 -0
  63. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/diff_cmd.py +0 -0
  64. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/git_remote.py +0 -0
  65. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/io.py +0 -0
  66. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/list_cmd.py +0 -0
  67. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/merge_cmd.py +0 -0
  68. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/printing.py +0 -0
  69. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/remote_provision.py +0 -0
  70. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/setup_cmd.py +0 -0
  71. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/types.py +0 -0
  72. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/url_utils.py +0 -0
  73. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/mirror/visibility_cmd.py +0 -0
  74. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/proxy.py +0 -0
  75. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/__init__.py +0 -0
  76. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/git_tags.py +0 -0
  77. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/pypi_url.py +0 -0
  78. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/types.py +0 -0
  79. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/publish/workflow.py +0 -0
  80. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/__init__.py +0 -0
  81. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/__init__.py +0 -0
  82. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/debian.py +0 -0
  83. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/flake.py +0 -0
  84. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/pkgbuild.py +0 -0
  85. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/pyproject.py +0 -0
  86. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/rpm_changelog.py +0 -0
  87. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/files/rpm_spec.py +0 -0
  88. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/git_ops.py +0 -0
  89. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/package_name.py +0 -0
  90. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/prompts.py +0 -0
  91. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/retry.py +0 -0
  92. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/versioning.py +0 -0
  93. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/release/workflow.py +0 -0
  94. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/__init__.py +0 -0
  95. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/_parallel.py +0 -0
  96. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/clone.py +0 -0
  97. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/__init__.py +0 -0
  98. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/config_writer.py +0 -0
  99. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/git_bootstrap.py +0 -0
  100. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/mirrors.py +0 -0
  101. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/model.py +0 -0
  102. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/parser.py +0 -0
  103. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/planner.py +0 -0
  104. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/service.py +0 -0
  105. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/create/templates.py +0 -0
  106. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/deinstall.py +0 -0
  107. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/delete.py +0 -0
  108. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/list.py +0 -0
  109. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/pull.py +0 -0
  110. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/push.py +0 -0
  111. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/repository/status.py +0 -0
  112. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/update/__init__.py +0 -0
  113. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/update/manager.py +0 -0
  114. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/update/os_release.py +0 -0
  115. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/actions/update/system_updater.py +0 -0
  116. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/__init__.py +0 -0
  117. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/__init__.py +0 -0
  118. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/archive.py +0 -0
  119. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/branch.py +0 -0
  120. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/changelog.py +0 -0
  121. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/code_scanning.py +0 -0
  122. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/config.py +0 -0
  123. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/make.py +0 -0
  124. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/mirror.py +0 -0
  125. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/publish.py +0 -0
  126. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/release.py +0 -0
  127. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/repos.py +0 -0
  128. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/tools.py +0 -0
  129. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/commands/version.py +0 -0
  130. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/context.py +0 -0
  131. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/dispatch.py +0 -0
  132. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/__init__.py +0 -0
  133. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/archive_cmd.py +0 -0
  134. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/branch_cmd.py +0 -0
  135. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/changelog_cmd.py +0 -0
  136. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/code_scanning_cmd.py +0 -0
  137. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/common.py +0 -0
  138. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/config_cmd.py +0 -0
  139. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/install_update.py +0 -0
  140. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/list_cmd.py +0 -0
  141. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/make_cmd.py +0 -0
  142. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/mirror_cmd.py +0 -0
  143. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/navigation_cmd.py +0 -0
  144. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/publish_cmd.py +0 -0
  145. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/release_cmd.py +0 -0
  146. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/parser/version_cmd.py +0 -0
  147. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/proxy.py +0 -0
  148. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/tools/__init__.py +0 -0
  149. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/tools/paths.py +0 -0
  150. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/cli/tools/vscode.py +0 -0
  151. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/config/__init__.py +0 -0
  152. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/config/defaults.yaml +0 -0
  153. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/__init__.py +0 -0
  154. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/alias.py +0 -0
  155. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/ink.py +0 -0
  156. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/layer.py +0 -0
  157. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/resolve.py +0 -0
  158. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/command/run.py +0 -0
  159. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/config/__init__.py +0 -0
  160. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/config/load.py +0 -0
  161. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/config/save.py +0 -0
  162. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/__init__.py +0 -0
  163. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/__init__.py +0 -0
  164. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/env.py +0 -0
  165. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/gh.py +0 -0
  166. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/keyring.py +0 -0
  167. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/providers/prompt.py +0 -0
  168. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/resolver.py +0 -0
  169. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/store_keys.py +0 -0
  170. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/types.py +0 -0
  171. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/credentials/validate.py +0 -0
  172. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/__init__.py +0 -0
  173. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/__init__.py +0 -0
  174. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/add.py +0 -0
  175. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/add_all.py +0 -0
  176. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/add_remote.py +0 -0
  177. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/add_remote_push_url.py +0 -0
  178. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/branch_move.py +0 -0
  179. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/checkout.py +0 -0
  180. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/clone.py +0 -0
  181. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/commit.py +0 -0
  182. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/create_branch.py +0 -0
  183. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/delete_local_branch.py +0 -0
  184. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/delete_remote_branch.py +0 -0
  185. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/fetch.py +0 -0
  186. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/init.py +0 -0
  187. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/merge_no_ff.py +0 -0
  188. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/pull.py +0 -0
  189. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/pull_args.py +0 -0
  190. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/pull_ff_only.py +0 -0
  191. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/push.py +0 -0
  192. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/push_args.py +0 -0
  193. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/push_upstream.py +0 -0
  194. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/set_remote_url.py +0 -0
  195. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/tag_annotated.py +0 -0
  196. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/commands/tag_force_annotated.py +0 -0
  197. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/errors.py +0 -0
  198. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/__init__.py +0 -0
  199. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_changelog.py +0 -0
  200. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_config_value.py +0 -0
  201. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_current_branch.py +0 -0
  202. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_head_commit.py +0 -0
  203. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_latest_commit.py +0 -0
  204. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_latest_signing_key.py +0 -0
  205. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_remote_head_commit.py +0 -0
  206. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_remote_push_urls.py +0 -0
  207. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_repo_root.py +0 -0
  208. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_tags.py +0 -0
  209. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_tags_at_ref.py +0 -0
  210. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/get_upstream_ref.py +0 -0
  211. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/list_remotes.py +0 -0
  212. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/list_tags.py +0 -0
  213. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/probe_remote_reachable.py +0 -0
  214. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/queries/resolve_base_branch.py +0 -0
  215. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/git/run.py +0 -0
  216. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/__init__.py +0 -0
  217. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/ensure.py +0 -0
  218. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/http/__init__.py +0 -0
  219. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/http/client.py +0 -0
  220. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/http/errors.py +0 -0
  221. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/providers/__init__.py +0 -0
  222. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/providers/base.py +0 -0
  223. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/providers/gitea.py +0 -0
  224. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/providers/github.py +0 -0
  225. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/registry.py +0 -0
  226. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/types.py +0 -0
  227. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/remote_provisioning/visibility.py +0 -0
  228. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/__init__.py +0 -0
  229. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/dir.py +0 -0
  230. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/identifier.py +0 -0
  231. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/ignored.py +0 -0
  232. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/paths.py +0 -0
  233. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/resolve.py +0 -0
  234. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/selected.py +0 -0
  235. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/repository/verify.py +0 -0
  236. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/version/__init__.py +0 -0
  237. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/version/installed.py +0 -0
  238. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/version/semver.py +0 -0
  239. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/core/version/source.py +0 -0
  240. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/github/__init__.py +0 -0
  241. {kpmx-2.0.1 → kpmx-2.0.2}/src/pkgmgr/github/check_hadolint_sarif.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kpmx
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: Kevin's package-manager tool (pkgmgr)
5
5
  Author-email: Kevin Veen-Birkenbach <info@veen.world>
6
6
  License: MIT
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "kpmx"
10
- version = "2.0.1"
10
+ version = "2.0.2"
11
11
  description = "Kevin's package-manager tool (pkgmgr)"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kpmx
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: Kevin's package-manager tool (pkgmgr)
5
5
  Author-email: Kevin Veen-Birkenbach <info@veen.world>
6
6
  License: MIT
@@ -31,9 +31,7 @@ class MakefileInstaller(BaseInstaller):
31
31
  except OSError:
32
32
  return False
33
33
 
34
- if re.search(r"^install\s*:", content, flags=re.MULTILINE):
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*#{1,6}\s+(.*?)\s*#*\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
- A leading ``#`` heading becomes a bold line of its own (markdown
24
- headings inside an entry body would collide with the ``## [version]``
25
- structure), and inline ``code`` spans become ``*italic*`` so the entry
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"**{heading.group(1).strip()}**")
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 — a leading '#' becomes "
98
- "bold, `code` becomes italic.\n"
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
- print("[INFO] Re-opening the editor so you can fix the entry...")
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(initial_message: str | None = None) -> str:
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 bold; `code` becomes italic.\n"
22
- "; Empty result will fall back to a generic message.\n\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