gitwise-cli 0.24.4__tar.gz → 0.25.0__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 (173) hide show
  1. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/CHANGELOG.md +13 -0
  2. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/PKG-INFO +33 -5
  3. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/README.md +28 -4
  4. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/__init__.py +1 -1
  5. gitwise_cli-0.25.0/install.sh +161 -0
  6. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/pyproject.toml +9 -2
  7. gitwise_cli-0.24.4/install.sh +0 -53
  8. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/.gitignore +0 -0
  9. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/LICENSE +0 -0
  10. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/bin/gitwise +0 -0
  11. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/__main__.py +0 -0
  12. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/_cli_completions.py +0 -0
  13. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/_cli_dispatch.py +0 -0
  14. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/_cli_introspection.py +0 -0
  15. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/_cli_parser.py +0 -0
  16. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/_cli_setup_agents.py +0 -0
  17. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/_i18n_data.json +0 -0
  18. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/_paths.py +0 -0
  19. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/_runtime_config.py +0 -0
  20. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/audit.py +0 -0
  21. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/branches.py +0 -0
  22. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/clean.py +0 -0
  23. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/commit.py +0 -0
  24. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/conflicts.py +0 -0
  25. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/context.py +0 -0
  26. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/design.py +0 -0
  27. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/diff.py +0 -0
  28. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/doctor.py +0 -0
  29. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/git.py +0 -0
  30. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/health.py +0 -0
  31. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/i18n.py +0 -0
  32. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/log.py +0 -0
  33. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/merge.py +0 -0
  34. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/optimize.py +0 -0
  35. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/output.py +0 -0
  36. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/pick.py +0 -0
  37. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/pr.py +0 -0
  38. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/py.typed +0 -0
  39. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/schema.py +0 -0
  40. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup.py +0 -0
  41. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/__init__.py +0 -0
  42. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/adapters/__init__.py +0 -0
  43. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/adapters/aider.py +0 -0
  44. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/adapters/base.py +0 -0
  45. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/adapters/codex.py +0 -0
  46. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/adapters/continue_adapter.py +0 -0
  47. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/adapters/cursor.py +0 -0
  48. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/adapters/opencode.py +0 -0
  49. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/adapters/pi.py +0 -0
  50. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/exec.py +0 -0
  51. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/format.py +0 -0
  52. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/plan.py +0 -0
  53. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/plan_gitfiles.py +0 -0
  54. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/plan_skills.py +0 -0
  55. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/providers/__init__.py +0 -0
  56. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/providers/aider.py +0 -0
  57. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/providers/base.py +0 -0
  58. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/providers/claude.py +0 -0
  59. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/providers/codex.py +0 -0
  60. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/providers/continue_adapter.py +0 -0
  61. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/providers/cursor.py +0 -0
  62. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/providers/opencode.py +0 -0
  63. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/providers/pi.py +0 -0
  64. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/state.py +0 -0
  65. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/setup_agents/types.py +0 -0
  66. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/show.py +0 -0
  67. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/snapshot.py +0 -0
  68. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/stash.py +0 -0
  69. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/status.py +0 -0
  70. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/suggest.py +0 -0
  71. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/summarize.py +0 -0
  72. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/sync.py +0 -0
  73. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/tag.py +0 -0
  74. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/undo.py +0 -0
  75. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/update.py +0 -0
  76. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/utils/__init__.py +0 -0
  77. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/utils/git_output.py +0 -0
  78. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/utils/json_envelope.py +0 -0
  79. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/utils/parsing.py +0 -0
  80. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/gitwise/worktree.py +0 -0
  81. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/agents/skills/git-audit/SKILL.md +0 -0
  82. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/agents/skills/git-clean/SKILL.md +0 -0
  83. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/agents/skills/git-optimize/SKILL.md +0 -0
  84. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/aider/CONVENTIONS.md.template +0 -0
  85. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/aider/aider.conf.yml.template +0 -0
  86. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/claude/CLAUDE.md.template +0 -0
  87. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/claude/rules/gitwise.md +0 -0
  88. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/claude/settings.json.template +0 -0
  89. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/claude/skills/git-audit/SKILL.md +0 -0
  90. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/claude/skills/git-clean/SKILL.md +0 -0
  91. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/claude/skills/git-optimize/SKILL.md +0 -0
  92. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/codex/agents/gitwise.toml.template +0 -0
  93. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/continue/rules/gitwise.md.template +0 -0
  94. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/cursor/rules/gitwise.mdc.template +0 -0
  95. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/git-config-modern.txt +0 -0
  96. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/hooks/commit-msg +0 -0
  97. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/hooks/pre-commit +0 -0
  98. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/opencode/agents/gitwise.md.template +0 -0
  99. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/pi/skills/gitwise.md.template +0 -0
  100. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/audit.json +0 -0
  101. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/branches.json +0 -0
  102. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/clean.json +0 -0
  103. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/commands.json +0 -0
  104. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/commit.json +0 -0
  105. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/completions.json +0 -0
  106. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/conflicts.json +0 -0
  107. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/context.json +0 -0
  108. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/diff.json +0 -0
  109. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/doctor.json +0 -0
  110. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/health.json +0 -0
  111. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/log.json +0 -0
  112. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/merge.json +0 -0
  113. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/optimize.json +0 -0
  114. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/pick.json +0 -0
  115. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/pr.json +0 -0
  116. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/schema.json +0 -0
  117. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/setup-agents.json +0 -0
  118. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/setup.json +0 -0
  119. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/show.json +0 -0
  120. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/snapshot.json +0 -0
  121. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/stash.json +0 -0
  122. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/status.json +0 -0
  123. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/suggest.json +0 -0
  124. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/summarize.json +0 -0
  125. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/sync.json +0 -0
  126. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/tag.json +0 -0
  127. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/undo.json +0 -0
  128. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/update.json +0 -0
  129. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/share/schemas/v1/input/worktree.json +0 -0
  130. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/__init__.py +0 -0
  131. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/conftest.py +0 -0
  132. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_adapters.py +0 -0
  133. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_audit.py +0 -0
  134. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_branches.py +0 -0
  135. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_clean.py +0 -0
  136. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_commit.py +0 -0
  137. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_conflicts.py +0 -0
  138. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_context.py +0 -0
  139. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_design.py +0 -0
  140. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_diff.py +0 -0
  141. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_doctor.py +0 -0
  142. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_edge_cases.py +0 -0
  143. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_git.py +0 -0
  144. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_git_output_utils.py +0 -0
  145. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_health.py +0 -0
  146. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_i18n.py +0 -0
  147. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_json_envelope_utils.py +0 -0
  148. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_log.py +0 -0
  149. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_main.py +0 -0
  150. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_md_links_script.py +0 -0
  151. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_merge.py +0 -0
  152. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_optimize.py +0 -0
  153. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_output.py +0 -0
  154. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_parsing_utils.py +0 -0
  155. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_pick.py +0 -0
  156. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_pr.py +0 -0
  157. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_roadmap_baseline_script.py +0 -0
  158. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_sa_plan.py +0 -0
  159. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_sa_unit.py +0 -0
  160. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_schema_catalog.py +0 -0
  161. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_setup.py +0 -0
  162. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_setup_agents.py +0 -0
  163. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_show.py +0 -0
  164. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_snapshot.py +0 -0
  165. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_stash.py +0 -0
  166. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_status.py +0 -0
  167. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_suggest.py +0 -0
  168. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_summarize.py +0 -0
  169. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_sync.py +0 -0
  170. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_sync_changelog_es_script.py +0 -0
  171. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_tag.py +0 -0
  172. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_undo.py +0 -0
  173. {gitwise_cli-0.24.4 → gitwise_cli-0.25.0}/tests/test_worktree.py +0 -0
@@ -3,6 +3,19 @@
3
3
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
4
4
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
5
 
6
+ ## v0.25.0 (2026-06-18)
7
+
8
+ ### Feat
9
+
10
+ - **install**: rewrite install.sh for remote curl|bash via uv tool install (#57)
11
+
12
+ ## v0.24.5 (2026-06-18)
13
+
14
+ ### Fix
15
+
16
+ - **packaging**: add project URLs and SPDX license metadata (#55)
17
+ - **ci**: abort auto-release when commits cancel out via revert (#56)
18
+
6
19
  ## v0.24.4 (2026-06-17)
7
20
 
8
21
  ### Fix
@@ -1,7 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitwise-cli
3
- Version: 0.24.4
3
+ Version: 0.25.0
4
4
  Summary: Python CLI for optimizing git workflows and Claude Code integration
5
+ Project-URL: Homepage, https://github.com/drzioner/gitwise
6
+ Project-URL: Repository, https://github.com/drzioner/gitwise
7
+ Project-URL: Changelog, https://github.com/drzioner/gitwise/blob/main/CHANGELOG.md
8
+ Project-URL: Issues, https://github.com/drzioner/gitwise/issues
5
9
  Author-email: Deiner <drzioner@gmail.com>
6
10
  License-Expression: MIT
7
11
  License-File: LICENSE
@@ -54,15 +58,40 @@ gitwise addresses three daily pain points:
54
58
 
55
59
  ## Install
56
60
 
61
+ Pick one:
62
+
63
+ **curl | bash** (recommended, auto-installs `uv` if missing):
64
+
65
+ ```bash
66
+ curl -fsSL https://raw.githubusercontent.com/drzioner/gitwise/main/install.sh | bash
67
+ ```
68
+
69
+ **uv** (if you already use [uv](https://docs.astral.sh/uv/)):
70
+
71
+ ```bash
72
+ uv tool install gitwise-cli
73
+ ```
74
+
75
+ **From source** (development only):
76
+
57
77
  ```bash
58
- git clone https://github.com/drzioner/gitwise.git ~/.local/share/gitwise
59
- bash ~/.local/share/gitwise/install.sh
78
+ git clone https://github.com/drzioner/gitwise.git
79
+ cd gitwise
80
+ uv sync
81
+ uv run python -m gitwise doctor
60
82
  ```
61
83
 
62
84
  Update an existing installation:
63
85
 
64
86
  ```bash
65
- gitwise update
87
+ uv tool upgrade gitwise-cli # if installed via uv
88
+ # or re-run the curl | bash installer, which always pulls latest
89
+ ```
90
+
91
+ Uninstall:
92
+
93
+ ```bash
94
+ uv tool uninstall gitwise-cli
66
95
  ```
67
96
 
68
97
  ## Quick Start
@@ -130,7 +159,6 @@ For all commands, examples, aliases, and JSON usage, see:
130
159
  | `GITWISE_AGENT=1` | Alias to enable agent output mode |
131
160
  | `GITWISE_GIT_TIMEOUT=<seconds>` | Override git subprocess timeout |
132
161
  | `GITWISE_WIDTH=<columns>` | Override output width |
133
- | `GITWISE_BIN_DIR` | Install location (default: `~/.local/bin`) |
134
162
 
135
163
  ## Shell Completions
136
164
 
@@ -25,15 +25,40 @@ gitwise addresses three daily pain points:
25
25
 
26
26
  ## Install
27
27
 
28
+ Pick one:
29
+
30
+ **curl | bash** (recommended, auto-installs `uv` if missing):
31
+
32
+ ```bash
33
+ curl -fsSL https://raw.githubusercontent.com/drzioner/gitwise/main/install.sh | bash
34
+ ```
35
+
36
+ **uv** (if you already use [uv](https://docs.astral.sh/uv/)):
37
+
38
+ ```bash
39
+ uv tool install gitwise-cli
40
+ ```
41
+
42
+ **From source** (development only):
43
+
28
44
  ```bash
29
- git clone https://github.com/drzioner/gitwise.git ~/.local/share/gitwise
30
- bash ~/.local/share/gitwise/install.sh
45
+ git clone https://github.com/drzioner/gitwise.git
46
+ cd gitwise
47
+ uv sync
48
+ uv run python -m gitwise doctor
31
49
  ```
32
50
 
33
51
  Update an existing installation:
34
52
 
35
53
  ```bash
36
- gitwise update
54
+ uv tool upgrade gitwise-cli # if installed via uv
55
+ # or re-run the curl | bash installer, which always pulls latest
56
+ ```
57
+
58
+ Uninstall:
59
+
60
+ ```bash
61
+ uv tool uninstall gitwise-cli
37
62
  ```
38
63
 
39
64
  ## Quick Start
@@ -101,7 +126,6 @@ For all commands, examples, aliases, and JSON usage, see:
101
126
  | `GITWISE_AGENT=1` | Alias to enable agent output mode |
102
127
  | `GITWISE_GIT_TIMEOUT=<seconds>` | Override git subprocess timeout |
103
128
  | `GITWISE_WIDTH=<columns>` | Override output width |
104
- | `GITWISE_BIN_DIR` | Install location (default: `~/.local/bin`) |
105
129
 
106
130
  ## Shell Completions
107
131
 
@@ -1,4 +1,4 @@
1
- __version__ = "0.24.4"
1
+ __version__ = "0.25.0"
2
2
 
3
3
 
4
4
  def get_version() -> str:
@@ -0,0 +1,161 @@
1
+ #!/usr/bin/env bash
2
+ # install.sh — install gitwise via uv tool install (works remote: curl | bash)
3
+ # Usage: bash install.sh [--dry-run] [--version=X.Y.Z] [--help]
4
+ #
5
+ # Remote one-liner:
6
+ # curl -fsSL https://raw.githubusercontent.com/drzioner/gitwise/main/install.sh | bash
7
+ #
8
+ # This installer:
9
+ # 1. Installs uv if not present (via https://astral.sh/uv/install.sh).
10
+ # 2. Runs `uv tool install --upgrade gitwise-cli` (isolated venv, no PyPI pollution).
11
+ # 3. Prints PATH guidance if `gitwise` is not yet on PATH.
12
+ #
13
+ # Supported OS: macOS, Linux. Windows users: see README for alternatives.
14
+
15
+ set -Eeuo pipefail
16
+
17
+ trap 'exit 130' INT TERM
18
+
19
+ # Allow override (e.g. pin a specific uv version: UV_INSTALLER_URL="https://astral.sh/uv/0.11.21/install.sh")
20
+ UV_INSTALLER_URL="${UV_INSTALLER_URL:-https://astral.sh/uv/install.sh}"
21
+
22
+ DRY_RUN=false
23
+ TARGET_VERSION=""
24
+
25
+ for arg in "$@"; do
26
+ case "$arg" in
27
+ --dry-run) DRY_RUN=true ;;
28
+ --version=*)
29
+ TARGET_VERSION="${arg#*=}"
30
+ if ! printf '%s' "$TARGET_VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
31
+ echo "error: --version must be in X.Y.Z format (got '$TARGET_VERSION')" >&2
32
+ exit 2
33
+ fi
34
+ ;;
35
+ --help|-h)
36
+ cat <<'EOF'
37
+ gitwise installer
38
+
39
+ Usage: bash install.sh [OPTIONS]
40
+
41
+ Options:
42
+ --dry-run Print actions without executing them.
43
+ --version=X.Y.Z Pin a specific version (default: latest from PyPI).
44
+ --help, -h Show this help and exit.
45
+
46
+ Environment:
47
+ UV_INSTALLER_URL Override the uv installer URL (default: https://astral.sh/uv/install.sh).
48
+ Pin a version with: UV_INSTALLER_URL="https://astral.sh/uv/0.11.21/install.sh"
49
+
50
+ Remote:
51
+ curl -fsSL https://raw.githubusercontent.com/drzioner/gitwise/main/install.sh | bash
52
+ EOF
53
+ exit 0
54
+ ;;
55
+ *)
56
+ echo "error: unknown argument '$arg' (try --help)" >&2
57
+ exit 2
58
+ ;;
59
+ esac
60
+ done
61
+
62
+ OS="$(uname -s)"
63
+ ARCH="$(uname -m)"
64
+ case "$OS" in
65
+ Darwin) printf 'gitwise installer - macOS (%s)\n' "$ARCH" ;;
66
+ Linux) printf 'gitwise installer - Linux (%s)\n' "$ARCH" ;;
67
+ *)
68
+ echo "error: unsupported OS '$OS'. This installer supports macOS and Linux." >&2
69
+ echo "Windows users: see README for alternative install methods." >&2
70
+ exit 1
71
+ ;;
72
+ esac
73
+ echo "-----------------------------------------"
74
+
75
+ if ! command -v curl >/dev/null 2>&1; then
76
+ echo "error: curl is required. Install curl via your package manager and re-run." >&2
77
+ exit 1
78
+ fi
79
+
80
+ NEED_UV_INSTALL=false
81
+ if command -v uv >/dev/null 2>&1; then
82
+ echo "uv: present ($(uv --version 2>/dev/null || echo 'version unknown'))"
83
+ else
84
+ NEED_UV_INSTALL=true
85
+ echo "uv: not found"
86
+ fi
87
+
88
+ if [ -n "$TARGET_VERSION" ]; then
89
+ PACKAGE_SPEC="gitwise-cli==$TARGET_VERSION"
90
+ echo "target version: $TARGET_VERSION"
91
+ else
92
+ PACKAGE_SPEC="gitwise-cli"
93
+ echo "target version: latest"
94
+ fi
95
+
96
+ if [ "$DRY_RUN" = "true" ]; then
97
+ echo ""
98
+ echo "[dry-run] plan:"
99
+ if [ "$NEED_UV_INSTALL" = "true" ]; then
100
+ echo " - curl -LsSf $UV_INSTALLER_URL | sh"
101
+ fi
102
+ if [ -n "$TARGET_VERSION" ]; then
103
+ echo " - uv tool install $PACKAGE_SPEC"
104
+ else
105
+ echo " - uv tool install --upgrade $PACKAGE_SPEC"
106
+ fi
107
+ echo " - print PATH guidance if 'gitwise' not on PATH"
108
+ exit 0
109
+ fi
110
+
111
+ if [ "$NEED_UV_INSTALL" = "true" ]; then
112
+ echo ""
113
+ echo "Installing uv ($UV_INSTALLER_URL)..."
114
+ curl -LsSf "$UV_INSTALLER_URL" | sh
115
+
116
+ if [ -x "$HOME/.local/bin/uv" ]; then
117
+ export PATH="$HOME/.local/bin:$PATH"
118
+ fi
119
+ if ! command -v uv >/dev/null 2>&1; then
120
+ echo "error: uv installer finished but 'uv' is not on PATH." >&2
121
+ echo " Add $HOME/.local/bin to PATH and re-run, or open a new shell." >&2
122
+ exit 1
123
+ fi
124
+ echo "uv installed: $(uv --version)"
125
+ fi
126
+
127
+ echo ""
128
+ if [ -n "$TARGET_VERSION" ]; then
129
+ echo "Installing gitwise $TARGET_VERSION..."
130
+ uv tool install "$PACKAGE_SPEC"
131
+ else
132
+ echo "Installing/upgrading gitwise..."
133
+ uv tool install --upgrade "$PACKAGE_SPEC"
134
+ fi
135
+
136
+ # No post-install verification needed here: `set -e` (line 15) already aborted
137
+ # the script if `uv tool install` returned non-zero. A `uv tool list | grep`
138
+ # check would be both redundant and fragile under `pipefail`. The PATH check
139
+ # below uses `command -v gitwise` directly, which is the actually useful signal.
140
+
141
+ UV_BIN_DIR="$HOME/.local/bin"
142
+ if command -v gitwise >/dev/null 2>&1; then
143
+ INSTALLED_VERSION="$(gitwise --version 2>/dev/null || echo 'unknown')"
144
+ echo ""
145
+ echo "gitwise $INSTALLED_VERSION is ready."
146
+ echo ""
147
+ echo "Try: gitwise doctor"
148
+ echo "Update later: uv tool upgrade gitwise-cli"
149
+ echo "Uninstall: uv tool uninstall gitwise-cli"
150
+ else
151
+ echo ""
152
+ echo "gitwise installed, but the 'gitwise' command is not yet on PATH."
153
+ echo "uv places tool entry points in: $UV_BIN_DIR"
154
+ echo ""
155
+ echo "Pick one:"
156
+ echo " 1. Run: uv tool update-shell"
157
+ echo " (uv will add $UV_BIN_DIR to your shell profile automatically.)"
158
+ echo " 2. Or add this line to ~/.zshrc (or ~/.bashrc):"
159
+ echo " export PATH=\"$UV_BIN_DIR:\$PATH\""
160
+ echo "Then open a new shell, or: source ~/.zshrc"
161
+ fi
@@ -1,9 +1,10 @@
1
1
  [project]
2
2
  name = "gitwise-cli"
3
- version = "0.24.4"
3
+ version = "0.25.0"
4
4
  description = "Python CLI for optimizing git workflows and Claude Code integration"
5
5
  readme = "README.md"
6
6
  license = "MIT"
7
+ license-files = ["LICENSE"]
7
8
  requires-python = ">=3.10"
8
9
  authors = [
9
10
  { name = "Deiner", email = "drzioner@gmail.com" },
@@ -32,6 +33,12 @@ dependencies = [
32
33
  "shtab>=1.8.0,<2",
33
34
  ]
34
35
 
36
+ [project.urls]
37
+ Homepage = "https://github.com/drzioner/gitwise"
38
+ Repository = "https://github.com/drzioner/gitwise"
39
+ Changelog = "https://github.com/drzioner/gitwise/blob/main/CHANGELOG.md"
40
+ Issues = "https://github.com/drzioner/gitwise/issues"
41
+
35
42
  [project.scripts]
36
43
  gitwise = "gitwise.__main__:main"
37
44
 
@@ -47,7 +54,7 @@ dev = [
47
54
  ]
48
55
 
49
56
  [build-system]
50
- requires = ["hatchling"]
57
+ requires = ["hatchling>=1.27"]
51
58
  build-backend = "hatchling.build"
52
59
 
53
60
  [tool.hatch.build.targets.wheel]
@@ -1,53 +0,0 @@
1
- #!/usr/bin/env bash
2
- # install.sh — install gitwise to ~/.local/bin
3
- # Usage: bash install.sh [--dry-run]
4
- # To update: gitwise update
5
- set -Eeuo pipefail
6
-
7
- trap 'exit 130' INT TERM
8
-
9
- BIN_DIR="${GITWISE_BIN_DIR:-$HOME/.local/bin}"
10
- DRY_RUN=false
11
-
12
- for arg in "$@"; do
13
- case "$arg" in
14
- --dry-run) DRY_RUN=true ;;
15
- esac
16
- done
17
-
18
- _SELF="${BASH_SOURCE[0]}"
19
- SCRIPT_DIR="$(cd "$(dirname "$_SELF")" && pwd)"
20
- SOURCE="$SCRIPT_DIR/bin/gitwise"
21
- TARGET="$BIN_DIR/gitwise"
22
-
23
- if [[ ! -f "$SOURCE" ]]; then
24
- echo "error: bin/gitwise not found in $SCRIPT_DIR" >&2
25
- exit 1
26
- fi
27
-
28
- if [[ "$DRY_RUN" == "true" ]]; then
29
- echo "would install to: $TARGET"
30
- echo "would symlink: $SOURCE -> $TARGET"
31
- if ! printf '%s\n' "${PATH//:/$'\n'}" | grep -qx "$BIN_DIR"; then
32
- echo "would add to PATH: $BIN_DIR (not currently in PATH)"
33
- fi
34
- exit 0
35
- fi
36
-
37
- mkdir -p "$BIN_DIR"
38
- ln -snf "$SOURCE" "$TARGET"
39
- chmod +x "$SOURCE"
40
-
41
- echo "gitwise installed at: $TARGET"
42
-
43
- if ! printf '%s\n' "${PATH//:/$'\n'}" | grep -qx "$BIN_DIR"; then
44
- echo ""
45
- echo "NOTE: $BIN_DIR is not in PATH."
46
- echo "Add to ~/.zshrc:"
47
- echo " export PATH=\"\$HOME/.local/bin:\$PATH\""
48
- echo "Then: source ~/.zshrc"
49
- fi
50
-
51
- echo ""
52
- echo "Try: gitwise doctor"
53
- echo "To update: gitwise update"
File without changes
File without changes
File without changes
File without changes