kpmx 1.9.5__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 (223) hide show
  1. kpmx-1.9.5/LICENSE +21 -0
  2. kpmx-1.9.5/PKG-INFO +252 -0
  3. kpmx-1.9.5/README.md +232 -0
  4. kpmx-1.9.5/pyproject.toml +54 -0
  5. kpmx-1.9.5/setup.cfg +4 -0
  6. kpmx-1.9.5/src/kpmx.egg-info/PKG-INFO +252 -0
  7. kpmx-1.9.5/src/kpmx.egg-info/SOURCES.txt +221 -0
  8. kpmx-1.9.5/src/kpmx.egg-info/dependency_links.txt +1 -0
  9. kpmx-1.9.5/src/kpmx.egg-info/entry_points.txt +2 -0
  10. kpmx-1.9.5/src/kpmx.egg-info/requires.txt +11 -0
  11. kpmx-1.9.5/src/kpmx.egg-info/top_level.txt +1 -0
  12. kpmx-1.9.5/src/pkgmgr/__init__.py +36 -0
  13. kpmx-1.9.5/src/pkgmgr/__main__.py +5 -0
  14. kpmx-1.9.5/src/pkgmgr/actions/__init__.py +6 -0
  15. kpmx-1.9.5/src/pkgmgr/actions/branch/__init__.py +14 -0
  16. kpmx-1.9.5/src/pkgmgr/actions/branch/close_branch.py +78 -0
  17. kpmx-1.9.5/src/pkgmgr/actions/branch/drop_branch.py +63 -0
  18. kpmx-1.9.5/src/pkgmgr/actions/branch/open_branch.py +40 -0
  19. kpmx-1.9.5/src/pkgmgr/actions/changelog/__init__.py +49 -0
  20. kpmx-1.9.5/src/pkgmgr/actions/config/__init__.py +0 -0
  21. kpmx-1.9.5/src/pkgmgr/actions/config/add.py +39 -0
  22. kpmx-1.9.5/src/pkgmgr/actions/config/init.py +178 -0
  23. kpmx-1.9.5/src/pkgmgr/actions/config/show.py +18 -0
  24. kpmx-1.9.5/src/pkgmgr/actions/install/__init__.py +249 -0
  25. kpmx-1.9.5/src/pkgmgr/actions/install/capabilities.py +407 -0
  26. kpmx-1.9.5/src/pkgmgr/actions/install/context.py +34 -0
  27. kpmx-1.9.5/src/pkgmgr/actions/install/installers/__init__.py +23 -0
  28. kpmx-1.9.5/src/pkgmgr/actions/install/installers/base.py +71 -0
  29. kpmx-1.9.5/src/pkgmgr/actions/install/installers/makefile.py +58 -0
  30. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/__init__.py +4 -0
  31. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/conflicts.py +104 -0
  32. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/installer.py +251 -0
  33. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/profile/__init__.py +4 -0
  34. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/profile/inspector.py +164 -0
  35. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/profile/matcher.py +62 -0
  36. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/profile/models.py +17 -0
  37. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/profile/normalizer.py +128 -0
  38. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/profile/parser.py +19 -0
  39. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/profile/result.py +28 -0
  40. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/profile_list.py +71 -0
  41. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/retry.py +100 -0
  42. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/runner.py +67 -0
  43. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/textparse.py +78 -0
  44. kpmx-1.9.5/src/pkgmgr/actions/install/installers/nix/types.py +10 -0
  45. kpmx-1.9.5/src/pkgmgr/actions/install/installers/os_packages/__init__.py +9 -0
  46. kpmx-1.9.5/src/pkgmgr/actions/install/installers/os_packages/arch_pkgbuild.py +59 -0
  47. kpmx-1.9.5/src/pkgmgr/actions/install/installers/os_packages/debian_control.py +177 -0
  48. kpmx-1.9.5/src/pkgmgr/actions/install/installers/os_packages/rpm_spec.py +282 -0
  49. kpmx-1.9.5/src/pkgmgr/actions/install/installers/python.py +63 -0
  50. kpmx-1.9.5/src/pkgmgr/actions/install/layers.py +91 -0
  51. kpmx-1.9.5/src/pkgmgr/actions/install/pipeline.py +198 -0
  52. kpmx-1.9.5/src/pkgmgr/actions/mirror/__init__.py +27 -0
  53. kpmx-1.9.5/src/pkgmgr/actions/mirror/context.py +31 -0
  54. kpmx-1.9.5/src/pkgmgr/actions/mirror/diff_cmd.py +60 -0
  55. kpmx-1.9.5/src/pkgmgr/actions/mirror/git_remote.py +166 -0
  56. kpmx-1.9.5/src/pkgmgr/actions/mirror/io.py +136 -0
  57. kpmx-1.9.5/src/pkgmgr/actions/mirror/list_cmd.py +46 -0
  58. kpmx-1.9.5/src/pkgmgr/actions/mirror/merge_cmd.py +164 -0
  59. kpmx-1.9.5/src/pkgmgr/actions/mirror/printing.py +35 -0
  60. kpmx-1.9.5/src/pkgmgr/actions/mirror/remote_provision.py +86 -0
  61. kpmx-1.9.5/src/pkgmgr/actions/mirror/setup_cmd.py +224 -0
  62. kpmx-1.9.5/src/pkgmgr/actions/mirror/types.py +32 -0
  63. kpmx-1.9.5/src/pkgmgr/actions/mirror/url_utils.py +111 -0
  64. kpmx-1.9.5/src/pkgmgr/actions/mirror/visibility_cmd.py +134 -0
  65. kpmx-1.9.5/src/pkgmgr/actions/proxy.py +44 -0
  66. kpmx-1.9.5/src/pkgmgr/actions/publish/__init__.py +5 -0
  67. kpmx-1.9.5/src/pkgmgr/actions/publish/git_tags.py +10 -0
  68. kpmx-1.9.5/src/pkgmgr/actions/publish/pypi_url.py +24 -0
  69. kpmx-1.9.5/src/pkgmgr/actions/publish/types.py +9 -0
  70. kpmx-1.9.5/src/pkgmgr/actions/publish/workflow.py +112 -0
  71. kpmx-1.9.5/src/pkgmgr/actions/release/__init__.py +5 -0
  72. kpmx-1.9.5/src/pkgmgr/actions/release/files/__init__.py +35 -0
  73. kpmx-1.9.5/src/pkgmgr/actions/release/files/changelog_md.py +62 -0
  74. kpmx-1.9.5/src/pkgmgr/actions/release/files/debian.py +74 -0
  75. kpmx-1.9.5/src/pkgmgr/actions/release/files/editor.py +45 -0
  76. kpmx-1.9.5/src/pkgmgr/actions/release/files/flake.py +39 -0
  77. kpmx-1.9.5/src/pkgmgr/actions/release/files/pkgbuild.py +41 -0
  78. kpmx-1.9.5/src/pkgmgr/actions/release/files/pyproject.py +45 -0
  79. kpmx-1.9.5/src/pkgmgr/actions/release/files/rpm_changelog.py +67 -0
  80. kpmx-1.9.5/src/pkgmgr/actions/release/files/rpm_spec.py +66 -0
  81. kpmx-1.9.5/src/pkgmgr/actions/release/git_ops.py +108 -0
  82. kpmx-1.9.5/src/pkgmgr/actions/release/prompts.py +29 -0
  83. kpmx-1.9.5/src/pkgmgr/actions/release/versioning.py +53 -0
  84. kpmx-1.9.5/src/pkgmgr/actions/release/workflow.py +253 -0
  85. kpmx-1.9.5/src/pkgmgr/actions/repository/__init__.py +0 -0
  86. kpmx-1.9.5/src/pkgmgr/actions/repository/clone.py +138 -0
  87. kpmx-1.9.5/src/pkgmgr/actions/repository/create/__init__.py +28 -0
  88. kpmx-1.9.5/src/pkgmgr/actions/repository/create/config_writer.py +84 -0
  89. kpmx-1.9.5/src/pkgmgr/actions/repository/create/git_bootstrap.py +35 -0
  90. kpmx-1.9.5/src/pkgmgr/actions/repository/create/mirrors.py +53 -0
  91. kpmx-1.9.5/src/pkgmgr/actions/repository/create/model.py +12 -0
  92. kpmx-1.9.5/src/pkgmgr/actions/repository/create/parser.py +66 -0
  93. kpmx-1.9.5/src/pkgmgr/actions/repository/create/planner.py +52 -0
  94. kpmx-1.9.5/src/pkgmgr/actions/repository/create/service.py +97 -0
  95. kpmx-1.9.5/src/pkgmgr/actions/repository/create/templates.py +78 -0
  96. kpmx-1.9.5/src/pkgmgr/actions/repository/deinstall.py +52 -0
  97. kpmx-1.9.5/src/pkgmgr/actions/repository/delete.py +35 -0
  98. kpmx-1.9.5/src/pkgmgr/actions/repository/list.py +344 -0
  99. kpmx-1.9.5/src/pkgmgr/actions/repository/pull.py +59 -0
  100. kpmx-1.9.5/src/pkgmgr/actions/repository/status.py +43 -0
  101. kpmx-1.9.5/src/pkgmgr/actions/update/__init__.py +10 -0
  102. kpmx-1.9.5/src/pkgmgr/actions/update/manager.py +110 -0
  103. kpmx-1.9.5/src/pkgmgr/actions/update/os_release.py +69 -0
  104. kpmx-1.9.5/src/pkgmgr/actions/update/system_updater.py +100 -0
  105. kpmx-1.9.5/src/pkgmgr/cli/__init__.py +73 -0
  106. kpmx-1.9.5/src/pkgmgr/cli/commands/__init__.py +23 -0
  107. kpmx-1.9.5/src/pkgmgr/cli/commands/branch.py +45 -0
  108. kpmx-1.9.5/src/pkgmgr/cli/commands/changelog.py +166 -0
  109. kpmx-1.9.5/src/pkgmgr/cli/commands/config.py +179 -0
  110. kpmx-1.9.5/src/pkgmgr/cli/commands/make.py +33 -0
  111. kpmx-1.9.5/src/pkgmgr/cli/commands/mirror.py +148 -0
  112. kpmx-1.9.5/src/pkgmgr/cli/commands/publish.py +36 -0
  113. kpmx-1.9.5/src/pkgmgr/cli/commands/release.py +80 -0
  114. kpmx-1.9.5/src/pkgmgr/cli/commands/repos.py +193 -0
  115. kpmx-1.9.5/src/pkgmgr/cli/commands/tools.py +41 -0
  116. kpmx-1.9.5/src/pkgmgr/cli/commands/version.py +215 -0
  117. kpmx-1.9.5/src/pkgmgr/cli/context.py +20 -0
  118. kpmx-1.9.5/src/pkgmgr/cli/dispatch.py +162 -0
  119. kpmx-1.9.5/src/pkgmgr/cli/parser/__init__.py +73 -0
  120. kpmx-1.9.5/src/pkgmgr/cli/parser/branch_cmd.py +101 -0
  121. kpmx-1.9.5/src/pkgmgr/cli/parser/changelog_cmd.py +34 -0
  122. kpmx-1.9.5/src/pkgmgr/cli/parser/common.py +177 -0
  123. kpmx-1.9.5/src/pkgmgr/cli/parser/config_cmd.py +72 -0
  124. kpmx-1.9.5/src/pkgmgr/cli/parser/install_update.py +53 -0
  125. kpmx-1.9.5/src/pkgmgr/cli/parser/list_cmd.py +38 -0
  126. kpmx-1.9.5/src/pkgmgr/cli/parser/make_cmd.py +38 -0
  127. kpmx-1.9.5/src/pkgmgr/cli/parser/mirror_cmd.py +86 -0
  128. kpmx-1.9.5/src/pkgmgr/cli/parser/navigation_cmd.py +53 -0
  129. kpmx-1.9.5/src/pkgmgr/cli/parser/publish_cmd.py +19 -0
  130. kpmx-1.9.5/src/pkgmgr/cli/parser/release_cmd.py +63 -0
  131. kpmx-1.9.5/src/pkgmgr/cli/parser/version_cmd.py +25 -0
  132. kpmx-1.9.5/src/pkgmgr/cli/proxy.py +251 -0
  133. kpmx-1.9.5/src/pkgmgr/cli/tools/__init__.py +5 -0
  134. kpmx-1.9.5/src/pkgmgr/cli/tools/paths.py +34 -0
  135. kpmx-1.9.5/src/pkgmgr/cli/tools/vscode.py +104 -0
  136. kpmx-1.9.5/src/pkgmgr/config/__init__.py +0 -0
  137. kpmx-1.9.5/src/pkgmgr/config/defaults.yaml +634 -0
  138. kpmx-1.9.5/src/pkgmgr/core/command/__init__.py +0 -0
  139. kpmx-1.9.5/src/pkgmgr/core/command/alias.py +43 -0
  140. kpmx-1.9.5/src/pkgmgr/core/command/ink.py +113 -0
  141. kpmx-1.9.5/src/pkgmgr/core/command/layer.py +31 -0
  142. kpmx-1.9.5/src/pkgmgr/core/command/resolve.py +204 -0
  143. kpmx-1.9.5/src/pkgmgr/core/command/run.py +111 -0
  144. kpmx-1.9.5/src/pkgmgr/core/config/__init__.py +0 -0
  145. kpmx-1.9.5/src/pkgmgr/core/config/load.py +297 -0
  146. kpmx-1.9.5/src/pkgmgr/core/config/save.py +10 -0
  147. kpmx-1.9.5/src/pkgmgr/core/credentials/__init__.py +20 -0
  148. kpmx-1.9.5/src/pkgmgr/core/credentials/providers/__init__.py +13 -0
  149. kpmx-1.9.5/src/pkgmgr/core/credentials/providers/env.py +25 -0
  150. kpmx-1.9.5/src/pkgmgr/core/credentials/providers/gh.py +44 -0
  151. kpmx-1.9.5/src/pkgmgr/core/credentials/providers/keyring.py +55 -0
  152. kpmx-1.9.5/src/pkgmgr/core/credentials/providers/prompt.py +68 -0
  153. kpmx-1.9.5/src/pkgmgr/core/credentials/resolver.py +151 -0
  154. kpmx-1.9.5/src/pkgmgr/core/credentials/store_keys.py +61 -0
  155. kpmx-1.9.5/src/pkgmgr/core/credentials/types.py +34 -0
  156. kpmx-1.9.5/src/pkgmgr/core/credentials/validate.py +40 -0
  157. kpmx-1.9.5/src/pkgmgr/core/git/__init__.py +17 -0
  158. kpmx-1.9.5/src/pkgmgr/core/git/commands/__init__.py +72 -0
  159. kpmx-1.9.5/src/pkgmgr/core/git/commands/add.py +44 -0
  160. kpmx-1.9.5/src/pkgmgr/core/git/commands/add_all.py +23 -0
  161. kpmx-1.9.5/src/pkgmgr/core/git/commands/add_remote.py +34 -0
  162. kpmx-1.9.5/src/pkgmgr/core/git/commands/add_remote_push_url.py +34 -0
  163. kpmx-1.9.5/src/pkgmgr/core/git/commands/branch_move.py +23 -0
  164. kpmx-1.9.5/src/pkgmgr/core/git/commands/checkout.py +18 -0
  165. kpmx-1.9.5/src/pkgmgr/core/git/commands/clone.py +32 -0
  166. kpmx-1.9.5/src/pkgmgr/core/git/commands/commit.py +37 -0
  167. kpmx-1.9.5/src/pkgmgr/core/git/commands/create_branch.py +23 -0
  168. kpmx-1.9.5/src/pkgmgr/core/git/commands/delete_local_branch.py +19 -0
  169. kpmx-1.9.5/src/pkgmgr/core/git/commands/delete_remote_branch.py +18 -0
  170. kpmx-1.9.5/src/pkgmgr/core/git/commands/fetch.py +40 -0
  171. kpmx-1.9.5/src/pkgmgr/core/git/commands/init.py +21 -0
  172. kpmx-1.9.5/src/pkgmgr/core/git/commands/merge_no_ff.py +18 -0
  173. kpmx-1.9.5/src/pkgmgr/core/git/commands/pull.py +18 -0
  174. kpmx-1.9.5/src/pkgmgr/core/git/commands/pull_args.py +39 -0
  175. kpmx-1.9.5/src/pkgmgr/core/git/commands/pull_ff_only.py +24 -0
  176. kpmx-1.9.5/src/pkgmgr/core/git/commands/push.py +35 -0
  177. kpmx-1.9.5/src/pkgmgr/core/git/commands/push_upstream.py +30 -0
  178. kpmx-1.9.5/src/pkgmgr/core/git/commands/set_remote_url.py +43 -0
  179. kpmx-1.9.5/src/pkgmgr/core/git/commands/tag_annotated.py +30 -0
  180. kpmx-1.9.5/src/pkgmgr/core/git/commands/tag_force_annotated.py +31 -0
  181. kpmx-1.9.5/src/pkgmgr/core/git/errors.py +30 -0
  182. kpmx-1.9.5/src/pkgmgr/core/git/queries/__init__.py +52 -0
  183. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_changelog.py +44 -0
  184. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_config_value.py +35 -0
  185. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_current_branch.py +18 -0
  186. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_head_commit.py +17 -0
  187. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_latest_commit.py +26 -0
  188. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_latest_signing_key.py +25 -0
  189. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_remote_head_commit.py +33 -0
  190. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_remote_push_urls.py +20 -0
  191. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_repo_root.py +22 -0
  192. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_tags.py +26 -0
  193. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_tags_at_ref.py +30 -0
  194. kpmx-1.9.5/src/pkgmgr/core/git/queries/get_upstream_ref.py +25 -0
  195. kpmx-1.9.5/src/pkgmgr/core/git/queries/list_remotes.py +17 -0
  196. kpmx-1.9.5/src/pkgmgr/core/git/queries/list_tags.py +18 -0
  197. kpmx-1.9.5/src/pkgmgr/core/git/queries/probe_remote_reachable.py +121 -0
  198. kpmx-1.9.5/src/pkgmgr/core/git/queries/resolve_base_branch.py +65 -0
  199. kpmx-1.9.5/src/pkgmgr/core/git/run.py +75 -0
  200. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/__init__.py +15 -0
  201. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/ensure.py +99 -0
  202. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/http/__init__.py +5 -0
  203. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/http/client.py +69 -0
  204. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/http/errors.py +9 -0
  205. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/providers/__init__.py +6 -0
  206. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/providers/base.py +54 -0
  207. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/providers/gitea.py +139 -0
  208. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/providers/github.py +134 -0
  209. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/registry.py +30 -0
  210. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/types.py +68 -0
  211. kpmx-1.9.5/src/pkgmgr/core/remote_provisioning/visibility.py +118 -0
  212. kpmx-1.9.5/src/pkgmgr/core/repository/__init__.py +0 -0
  213. kpmx-1.9.5/src/pkgmgr/core/repository/dir.py +56 -0
  214. kpmx-1.9.5/src/pkgmgr/core/repository/identifier.py +12 -0
  215. kpmx-1.9.5/src/pkgmgr/core/repository/ignored.py +3 -0
  216. kpmx-1.9.5/src/pkgmgr/core/repository/paths.py +126 -0
  217. kpmx-1.9.5/src/pkgmgr/core/repository/resolve.py +28 -0
  218. kpmx-1.9.5/src/pkgmgr/core/repository/selected.py +200 -0
  219. kpmx-1.9.5/src/pkgmgr/core/repository/verify.py +99 -0
  220. kpmx-1.9.5/src/pkgmgr/core/version/__init__.py +0 -0
  221. kpmx-1.9.5/src/pkgmgr/core/version/installed.py +169 -0
  222. kpmx-1.9.5/src/pkgmgr/core/version/semver.py +150 -0
  223. kpmx-1.9.5/src/pkgmgr/core/version/source.py +235 -0
kpmx-1.9.5/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Kevin Veen-Birkenbach
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
kpmx-1.9.5/PKG-INFO ADDED
@@ -0,0 +1,252 @@
1
+ Metadata-Version: 2.4
2
+ Name: kpmx
3
+ Version: 1.9.5
4
+ Summary: Kevin's package-manager tool (pkgmgr)
5
+ Author-email: Kevin Veen-Birkenbach <info@veen.world>
6
+ License: MIT
7
+ Project-URL: Homepage, https://s.veen.world/pkgmgr
8
+ Project-URL: Source, https://github.com/kevinveenbirkenbach/package-manager
9
+ Requires-Python: >=3.9
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: PyYAML>=6.0
13
+ Requires-Dist: tomli; python_version < "3.11"
14
+ Requires-Dist: jinja2>=3.1
15
+ Provides-Extra: keyring
16
+ Requires-Dist: keyring>=24.0.0; extra == "keyring"
17
+ Provides-Extra: dev
18
+ Requires-Dist: mypy; extra == "dev"
19
+ Dynamic: license-file
20
+
21
+ # Package Manager 🤖📦
22
+
23
+ ![PKGMGR Banner](assets/banner.jpg)
24
+
25
+ [![GitHub Sponsors](https://img.shields.io/badge/Sponsor-GitHub%20Sponsors-blue?logo=github)](https://github.com/sponsors/kevinveenbirkenbach)
26
+ [![Patreon](https://img.shields.io/badge/Support-Patreon-orange?logo=patreon)](https://www.patreon.com/c/kevinveenbirkenbach)
27
+ [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20me%20a%20Coffee-Funding-yellow?logo=buymeacoffee)](https://buymeacoffee.com/kevinveenbirkenbach)
28
+ [![PayPal](https://img.shields.io/badge/Donate-PayPal-blue?logo=paypal)](https://s.veen.world/paypaldonate)
29
+ [![GitHub license](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
30
+ [![GitHub repo size](https://img.shields.io/github/repo-size/kevinveenbirkenbach/package-manager)](https://github.com/kevinveenbirkenbach/package-manager)
31
+ [![Mark stable commit](https://github.com/kevinveenbirkenbach/package-manager/actions/workflows/mark-stable.yml/badge.svg)](https://github.com/kevinveenbirkenbach/package-manager/actions/workflows/mark-stable.yml)
32
+
33
+ [**Kevin's Package Manager (PKGMGR)**](https://s.veen.world/pkgmgr) is a *multi-distro* package manager and workflow orchestrator.
34
+ It helps you **develop, package, release and manage projects across multiple Linux-based
35
+ operating systems** (Arch, Debian, Ubuntu, Fedora, CentOS, …).
36
+
37
+ PKGMGR is implemented in **Python** and uses **Nix (flakes)** as a foundation for
38
+ distribution-independent builds and tooling. On top of that it provides a rich
39
+ CLI that proxies common developer tools (Git, Docker, Make, …) and glues them
40
+ together into repeatable development workflows.
41
+
42
+ ---
43
+
44
+ ## Why PKGMGR? 🧠
45
+
46
+ Traditional distro package managers like `apt`, `pacman` or `dnf` focus on a
47
+ single operating system. PKGMGR instead focuses on **your repositories and
48
+ development lifecycle**. It provides one configuration for all repositories,
49
+ one unified CLI to interact with them, and a Nix-based foundation that keeps
50
+ tooling reproducible across distributions.
51
+
52
+ Native package managers are still used where they make sense. PKGMGR coordinates
53
+ the surrounding development, build and release workflows in a consistent way.
54
+
55
+ In addition, PKGMGR provides Docker images that can serve as a **reproducible
56
+ system baseline**. These images bundle the complete PKGMGR toolchain and are
57
+ designed to be reused as a stable execution environment across machines,
58
+ pipelines and teams. This approach is specifically used within
59
+ [**Infinito.Nexus**](https://s.infinito.nexus/code) to make complex systems
60
+ distribution-independent while remaining fully reproducible.
61
+
62
+ ---
63
+
64
+ ## Features 🚀
65
+
66
+ PKGMGR enables multi-distro development and packaging by managing multiple
67
+ repositories from a single configuration file. It drives complete release
68
+ pipelines across Linux distributions using Nix flakes, Python build metadata,
69
+ native OS packages such as Arch, Debian and RPM formats, and additional ecosystem
70
+ integrations like Ansible.
71
+
72
+ All functionality is exposed through a unified `pkgmgr` command-line interface
73
+ that works identically on every supported distribution. It combines repository
74
+ management, Git operations, Docker and Compose orchestration, as well as
75
+ versioning, release and changelog workflows. Many commands support a preview
76
+ mode, allowing you to inspect the underlying actions before they are executed.
77
+
78
+ ---
79
+
80
+ ### Full development workflows
81
+
82
+ PKGMGR is not just a helper around Git commands. Combined with its release and
83
+ versioning features it can drive **end-to-end workflows**:
84
+
85
+ 1. Clone and mirror repositories.
86
+ 2. Run tests and builds through `make` or Nix.
87
+ 3. Bump versions, update changelogs and tags.
88
+ 4. Build distro-specific packages.
89
+ 5. Keep all mirrors and working copies in sync.
90
+
91
+ ---
92
+
93
+ ## Architecture & Setup Map 🗺️
94
+
95
+ The following diagram gives a full overview of:
96
+
97
+ * PKGMGR’s package structure,
98
+ * the layered installers (OS, foundation, Python, Makefile),
99
+ * and the setup controller that decides which layer to use on a given system.
100
+
101
+ ![PKGMGR Architecture](assets/map.png)
102
+
103
+
104
+ **Diagram status:** 12 December 2025
105
+
106
+ **Always-up-to-date version:** [https://s.veen.world/pkgmgrmp](https://s.veen.world/pkgmgrmp)
107
+
108
+ ---
109
+
110
+ ## Installation ⚙️
111
+
112
+ PKGMGR can be installed using `make`.
113
+ The setup mode defines **which runtime layers are prepared**.
114
+ ---
115
+
116
+ ### Download
117
+
118
+ ```bash
119
+ git clone https://github.com/kevinveenbirkenbach/package-manager.git
120
+ cd package-manager
121
+ ```
122
+
123
+ ### Dependency installation (optional)
124
+
125
+ System dependencies required **before running any *make* commands** are installed via:
126
+
127
+ ```
128
+ scripts/installation/dependencies.sh
129
+ ```
130
+
131
+ The script detects and normalizes the OS and installs the required **system-level dependencies** accordingly.
132
+
133
+ ### Install
134
+
135
+ ```bash
136
+ git clone https://github.com/kevinveenbirkenbach/package-manager.git
137
+ cd package-manager
138
+ make install
139
+ ```
140
+
141
+ ### Setup modes
142
+
143
+ | Command | Prepares | Use case |
144
+ | ------------------- | ----------------------- | --------------------- |
145
+ | **make setup** | Python venv **and** Nix | Full development & CI |
146
+ | **make setup-venv** | Python venv only | Local user setup |
147
+
148
+
149
+ ##### Full setup (venv + Nix)
150
+
151
+ ```bash
152
+ make setup
153
+ ```
154
+
155
+ Use this for CI, servers, containers and full development workflows.
156
+
157
+ ##### Venv-only setup
158
+
159
+ ```bash
160
+ make setup-venv
161
+ source ~/.venvs/pkgmgr/bin/activate
162
+ ```
163
+
164
+ Use this if you want PKGMGR isolated without Nix integration.
165
+
166
+ ---
167
+
168
+ Alles klar 🙂
169
+ Hier ist der **RUN-Abschnitt ohne Gedankenstriche**, klar nach **Nix, Docker und venv** getrennt:
170
+
171
+ ---
172
+
173
+ ## Run PKGMGR 🧰
174
+
175
+ PKGMGR can be executed in different environments.
176
+ All modes expose the same CLI and commands.
177
+
178
+ ---
179
+
180
+ ### Run via Nix (no installation)
181
+
182
+ ```bash
183
+ nix run github:kevinveenbirkenbach/package-manager#pkgmgr -- --help
184
+ ```
185
+
186
+ ---
187
+
188
+ ### Run via Docker 🐳
189
+
190
+ PKGMGR can be executed **inside Docker containers** for CI, testing and isolated
191
+ workflows.
192
+ ---
193
+
194
+ #### Container types
195
+
196
+ Two container types are available.
197
+
198
+
199
+ | Image type | Contains | Typical use |
200
+ | ---------- | ----------------------------- | ----------------------- |
201
+ | **Virgin** | Base OS + system dependencies | Clean test environments |
202
+ | **Stable** | PKGMGR + Nix (flakes enabled) | Ready-to-use workflows |
203
+
204
+ Example images:
205
+
206
+ * Virgin: `pkgmgr-arch-virgin`
207
+ * Stable: `ghcr.io/kevinveenbirkenbach/pkgmgr:stable`
208
+
209
+
210
+ Use **virgin images** for isolated test runs,
211
+ use the **stable image** for fast, reproducible execution.
212
+
213
+ ---
214
+
215
+ #### Run examples
216
+
217
+ ```bash
218
+ docker run --rm -it \
219
+ -v "$PWD":/src \
220
+ -w /src \
221
+ ghcr.io/kevinveenbirkenbach/pkgmgr:stable \
222
+ pkgmgr --help
223
+ ```
224
+
225
+ ---
226
+
227
+ ### Run via virtual environment (venv)
228
+
229
+ After activating the venv:
230
+
231
+ ```bash
232
+ pkgmgr --help
233
+ ```
234
+
235
+ ---
236
+
237
+ This allows you to choose between zero install execution using Nix, fully prebuilt
238
+ Docker environments or local isolated venv setups with identical command behavior.
239
+
240
+ ---
241
+
242
+ ## License 📄
243
+
244
+ This project is licensed under the MIT License.
245
+ See the [LICENSE](LICENSE) file for details.
246
+
247
+ ---
248
+
249
+ ## Author 👤
250
+
251
+ Kevin Veen-Birkenbach
252
+ [https://www.veen.world](https://www.veen.world)
kpmx-1.9.5/README.md ADDED
@@ -0,0 +1,232 @@
1
+ # Package Manager 🤖📦
2
+
3
+ ![PKGMGR Banner](assets/banner.jpg)
4
+
5
+ [![GitHub Sponsors](https://img.shields.io/badge/Sponsor-GitHub%20Sponsors-blue?logo=github)](https://github.com/sponsors/kevinveenbirkenbach)
6
+ [![Patreon](https://img.shields.io/badge/Support-Patreon-orange?logo=patreon)](https://www.patreon.com/c/kevinveenbirkenbach)
7
+ [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20me%20a%20Coffee-Funding-yellow?logo=buymeacoffee)](https://buymeacoffee.com/kevinveenbirkenbach)
8
+ [![PayPal](https://img.shields.io/badge/Donate-PayPal-blue?logo=paypal)](https://s.veen.world/paypaldonate)
9
+ [![GitHub license](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
10
+ [![GitHub repo size](https://img.shields.io/github/repo-size/kevinveenbirkenbach/package-manager)](https://github.com/kevinveenbirkenbach/package-manager)
11
+ [![Mark stable commit](https://github.com/kevinveenbirkenbach/package-manager/actions/workflows/mark-stable.yml/badge.svg)](https://github.com/kevinveenbirkenbach/package-manager/actions/workflows/mark-stable.yml)
12
+
13
+ [**Kevin's Package Manager (PKGMGR)**](https://s.veen.world/pkgmgr) is a *multi-distro* package manager and workflow orchestrator.
14
+ It helps you **develop, package, release and manage projects across multiple Linux-based
15
+ operating systems** (Arch, Debian, Ubuntu, Fedora, CentOS, …).
16
+
17
+ PKGMGR is implemented in **Python** and uses **Nix (flakes)** as a foundation for
18
+ distribution-independent builds and tooling. On top of that it provides a rich
19
+ CLI that proxies common developer tools (Git, Docker, Make, …) and glues them
20
+ together into repeatable development workflows.
21
+
22
+ ---
23
+
24
+ ## Why PKGMGR? 🧠
25
+
26
+ Traditional distro package managers like `apt`, `pacman` or `dnf` focus on a
27
+ single operating system. PKGMGR instead focuses on **your repositories and
28
+ development lifecycle**. It provides one configuration for all repositories,
29
+ one unified CLI to interact with them, and a Nix-based foundation that keeps
30
+ tooling reproducible across distributions.
31
+
32
+ Native package managers are still used where they make sense. PKGMGR coordinates
33
+ the surrounding development, build and release workflows in a consistent way.
34
+
35
+ In addition, PKGMGR provides Docker images that can serve as a **reproducible
36
+ system baseline**. These images bundle the complete PKGMGR toolchain and are
37
+ designed to be reused as a stable execution environment across machines,
38
+ pipelines and teams. This approach is specifically used within
39
+ [**Infinito.Nexus**](https://s.infinito.nexus/code) to make complex systems
40
+ distribution-independent while remaining fully reproducible.
41
+
42
+ ---
43
+
44
+ ## Features 🚀
45
+
46
+ PKGMGR enables multi-distro development and packaging by managing multiple
47
+ repositories from a single configuration file. It drives complete release
48
+ pipelines across Linux distributions using Nix flakes, Python build metadata,
49
+ native OS packages such as Arch, Debian and RPM formats, and additional ecosystem
50
+ integrations like Ansible.
51
+
52
+ All functionality is exposed through a unified `pkgmgr` command-line interface
53
+ that works identically on every supported distribution. It combines repository
54
+ management, Git operations, Docker and Compose orchestration, as well as
55
+ versioning, release and changelog workflows. Many commands support a preview
56
+ mode, allowing you to inspect the underlying actions before they are executed.
57
+
58
+ ---
59
+
60
+ ### Full development workflows
61
+
62
+ PKGMGR is not just a helper around Git commands. Combined with its release and
63
+ versioning features it can drive **end-to-end workflows**:
64
+
65
+ 1. Clone and mirror repositories.
66
+ 2. Run tests and builds through `make` or Nix.
67
+ 3. Bump versions, update changelogs and tags.
68
+ 4. Build distro-specific packages.
69
+ 5. Keep all mirrors and working copies in sync.
70
+
71
+ ---
72
+
73
+ ## Architecture & Setup Map 🗺️
74
+
75
+ The following diagram gives a full overview of:
76
+
77
+ * PKGMGR’s package structure,
78
+ * the layered installers (OS, foundation, Python, Makefile),
79
+ * and the setup controller that decides which layer to use on a given system.
80
+
81
+ ![PKGMGR Architecture](assets/map.png)
82
+
83
+
84
+ **Diagram status:** 12 December 2025
85
+
86
+ **Always-up-to-date version:** [https://s.veen.world/pkgmgrmp](https://s.veen.world/pkgmgrmp)
87
+
88
+ ---
89
+
90
+ ## Installation ⚙️
91
+
92
+ PKGMGR can be installed using `make`.
93
+ The setup mode defines **which runtime layers are prepared**.
94
+ ---
95
+
96
+ ### Download
97
+
98
+ ```bash
99
+ git clone https://github.com/kevinveenbirkenbach/package-manager.git
100
+ cd package-manager
101
+ ```
102
+
103
+ ### Dependency installation (optional)
104
+
105
+ System dependencies required **before running any *make* commands** are installed via:
106
+
107
+ ```
108
+ scripts/installation/dependencies.sh
109
+ ```
110
+
111
+ The script detects and normalizes the OS and installs the required **system-level dependencies** accordingly.
112
+
113
+ ### Install
114
+
115
+ ```bash
116
+ git clone https://github.com/kevinveenbirkenbach/package-manager.git
117
+ cd package-manager
118
+ make install
119
+ ```
120
+
121
+ ### Setup modes
122
+
123
+ | Command | Prepares | Use case |
124
+ | ------------------- | ----------------------- | --------------------- |
125
+ | **make setup** | Python venv **and** Nix | Full development & CI |
126
+ | **make setup-venv** | Python venv only | Local user setup |
127
+
128
+
129
+ ##### Full setup (venv + Nix)
130
+
131
+ ```bash
132
+ make setup
133
+ ```
134
+
135
+ Use this for CI, servers, containers and full development workflows.
136
+
137
+ ##### Venv-only setup
138
+
139
+ ```bash
140
+ make setup-venv
141
+ source ~/.venvs/pkgmgr/bin/activate
142
+ ```
143
+
144
+ Use this if you want PKGMGR isolated without Nix integration.
145
+
146
+ ---
147
+
148
+ Alles klar 🙂
149
+ Hier ist der **RUN-Abschnitt ohne Gedankenstriche**, klar nach **Nix, Docker und venv** getrennt:
150
+
151
+ ---
152
+
153
+ ## Run PKGMGR 🧰
154
+
155
+ PKGMGR can be executed in different environments.
156
+ All modes expose the same CLI and commands.
157
+
158
+ ---
159
+
160
+ ### Run via Nix (no installation)
161
+
162
+ ```bash
163
+ nix run github:kevinveenbirkenbach/package-manager#pkgmgr -- --help
164
+ ```
165
+
166
+ ---
167
+
168
+ ### Run via Docker 🐳
169
+
170
+ PKGMGR can be executed **inside Docker containers** for CI, testing and isolated
171
+ workflows.
172
+ ---
173
+
174
+ #### Container types
175
+
176
+ Two container types are available.
177
+
178
+
179
+ | Image type | Contains | Typical use |
180
+ | ---------- | ----------------------------- | ----------------------- |
181
+ | **Virgin** | Base OS + system dependencies | Clean test environments |
182
+ | **Stable** | PKGMGR + Nix (flakes enabled) | Ready-to-use workflows |
183
+
184
+ Example images:
185
+
186
+ * Virgin: `pkgmgr-arch-virgin`
187
+ * Stable: `ghcr.io/kevinveenbirkenbach/pkgmgr:stable`
188
+
189
+
190
+ Use **virgin images** for isolated test runs,
191
+ use the **stable image** for fast, reproducible execution.
192
+
193
+ ---
194
+
195
+ #### Run examples
196
+
197
+ ```bash
198
+ docker run --rm -it \
199
+ -v "$PWD":/src \
200
+ -w /src \
201
+ ghcr.io/kevinveenbirkenbach/pkgmgr:stable \
202
+ pkgmgr --help
203
+ ```
204
+
205
+ ---
206
+
207
+ ### Run via virtual environment (venv)
208
+
209
+ After activating the venv:
210
+
211
+ ```bash
212
+ pkgmgr --help
213
+ ```
214
+
215
+ ---
216
+
217
+ This allows you to choose between zero install execution using Nix, fully prebuilt
218
+ Docker environments or local isolated venv setups with identical command behavior.
219
+
220
+ ---
221
+
222
+ ## License 📄
223
+
224
+ This project is licensed under the MIT License.
225
+ See the [LICENSE](LICENSE) file for details.
226
+
227
+ ---
228
+
229
+ ## Author 👤
230
+
231
+ Kevin Veen-Birkenbach
232
+ [https://www.veen.world](https://www.veen.world)
@@ -0,0 +1,54 @@
1
+ [build-system]
2
+ requires = [
3
+ "setuptools>=68",
4
+ "wheel"
5
+ ]
6
+ build-backend = "setuptools.build_meta"
7
+
8
+ [project]
9
+ name = "kpmx"
10
+ version = "1.9.5"
11
+ description = "Kevin's package-manager tool (pkgmgr)"
12
+ readme = "README.md"
13
+ requires-python = ">=3.9"
14
+ license = { text = "MIT" }
15
+
16
+ authors = [
17
+ { name = "Kevin Veen-Birkenbach", email = "info@veen.world" }
18
+ ]
19
+
20
+ # Base runtime dependencies
21
+ dependencies = [
22
+ "PyYAML>=6.0",
23
+ "tomli; python_version < \"3.11\"",
24
+ "jinja2>=3.1"
25
+ ]
26
+
27
+ [project.urls]
28
+ Homepage = "https://s.veen.world/pkgmgr"
29
+ Source = "https://github.com/kevinveenbirkenbach/package-manager"
30
+
31
+ [project.optional-dependencies]
32
+ keyring = ["keyring>=24.0.0"]
33
+ dev = [
34
+ "mypy"
35
+ ]
36
+
37
+ # CLI entrypoint: this is the "pkgmgr" command
38
+ [project.scripts]
39
+ pkgmgr = "pkgmgr.cli:main"
40
+
41
+ # -----------------------------
42
+ # setuptools configuration
43
+ # -----------------------------
44
+ # Source layout: all packages live under "src/"
45
+ [tool.setuptools]
46
+ package-dir = { "" = "src" }
47
+ include-package-data = true
48
+
49
+ [tool.setuptools.packages.find]
50
+ where = ["src"]
51
+ include = ["pkgmgr*"]
52
+
53
+ [tool.setuptools.package-data]
54
+ "pkgmgr.config" = ["*.yml", "*.yaml"]
kpmx-1.9.5/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+