git-worktrees 0.4.0__tar.gz → 0.4.1__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 (82) hide show
  1. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/.github/workflows/publish.yml +7 -4
  2. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/.github/workflows/testpypi.yml +2 -1
  3. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/.github/workflows/tests.yml +4 -2
  4. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/CHANGELOG.md +4 -0
  5. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/PKG-INFO +1 -1
  6. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/pyproject.toml +1 -1
  7. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/scripts/verify-publish.bash +5 -4
  8. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/uv.lock +1 -1
  9. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/.agents/skills/release/SKILL.md +0 -0
  10. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/.claude/settings.json +0 -0
  11. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/.gitignore +0 -0
  12. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/.pre-commit-config.yaml +0 -0
  13. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/.python-version +0 -0
  14. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/AGENTS.md +0 -0
  15. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/LICENSE +0 -0
  16. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/README.md +0 -0
  17. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gw.fish +0 -0
  18. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gwa.fish +0 -0
  19. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gwh.fish +0 -0
  20. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gwl.fish +0 -0
  21. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gwm.fish +0 -0
  22. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gwnb.fish +0 -0
  23. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gwp.fish +0 -0
  24. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gwr.fish +0 -0
  25. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gwrot.fish +0 -0
  26. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/completions/gws.fish +0 -0
  27. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/conf.d/worktrees.fish +0 -0
  28. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/docs/BENCHMARK.md +0 -0
  29. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/docs/DEVELOPMENT.md +0 -0
  30. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/docs/REFERENCE.md +0 -0
  31. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/functions/gwa.fish +0 -0
  32. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/functions/gwl.fish +0 -0
  33. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/functions/gwm.fish +0 -0
  34. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/functions/gwr.fish +0 -0
  35. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/hatch_build.py +0 -0
  36. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/renovate.json +0 -0
  37. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/scripts/README.md +0 -0
  38. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/scripts/benchmark.py +0 -0
  39. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/__init__.py +0 -0
  40. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/cli.py +0 -0
  41. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/errors.py +0 -0
  42. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/forge.py +0 -0
  43. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/git.py +0 -0
  44. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/layout.py +0 -0
  45. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/merged.py +0 -0
  46. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/new_branch.py +0 -0
  47. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/pick.py +0 -0
  48. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/prune.py +0 -0
  49. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/render.py +0 -0
  50. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/repo.py +0 -0
  51. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/rotate.py +0 -0
  52. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/verdicts.py +0 -0
  53. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/src/worktrees/worktree.py +0 -0
  54. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/conftest.py +0 -0
  55. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_benchmark.py +0 -0
  56. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_cli.py +0 -0
  57. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_completions.py +0 -0
  58. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_fixture.py +0 -0
  59. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_forge.py +0 -0
  60. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_gates.py +0 -0
  61. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_new_branch.py +0 -0
  62. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_render.py +0 -0
  63. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_rotate.py +0 -0
  64. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_shims.py +0 -0
  65. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_spec.py +0 -0
  66. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_version.py +0 -0
  67. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/tests/test_worktree.py +0 -0
  68. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gw +0 -0
  69. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gwa +0 -0
  70. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gwh +0 -0
  71. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gwl +0 -0
  72. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gwm +0 -0
  73. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gwnb +0 -0
  74. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gwp +0 -0
  75. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gwr +0 -0
  76. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gwrot +0 -0
  77. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/completions/_gws +0 -0
  78. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/functions/gwa +0 -0
  79. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/functions/gwl +0 -0
  80. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/functions/gwm +0 -0
  81. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/functions/gwr +0 -0
  82. {git_worktrees-0.4.0 → git_worktrees-0.4.1}/zsh/plugins/worktrees/worktrees.plugin.zsh +0 -0
@@ -36,7 +36,7 @@ jobs:
36
36
  # byte-for-byte what was tested and installed here.
37
37
  build:
38
38
  name: Build
39
- runs-on: ubuntu-latest
39
+ runs-on: ubuntu-26.04
40
40
  permissions:
41
41
  contents: read
42
42
  # Reading another workflow's runs. Without it the tests guard below
@@ -56,6 +56,7 @@ jobs:
56
56
  with:
57
57
  python-version: "3.14"
58
58
  enable-cache: true
59
+ cache-suffix: ${{ github.workflow }}-${{ github.job }}
59
60
 
60
61
  - name: Install the release tools
61
62
  uses: releasetools/cli@v0
@@ -126,7 +127,7 @@ jobs:
126
127
 
127
128
  publish:
128
129
  name: Publish to PyPI
129
- runs-on: ubuntu-latest
130
+ runs-on: ubuntu-26.04
130
131
  needs: build
131
132
  # Binds this job to the trusted publisher registered for `pypi`. Add a
132
133
  # required reviewer on this environment for a manual gate before anything
@@ -144,6 +145,7 @@ jobs:
144
145
  with:
145
146
  python-version: "3.14"
146
147
  enable-cache: true
148
+ cache-suffix: ${{ github.workflow }}-${{ github.job }}
147
149
 
148
150
  - name: Download distributions
149
151
  uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
@@ -162,7 +164,7 @@ jobs:
162
164
  # PyPI is slow rather than that the version is not out.
163
165
  verify:
164
166
  name: Verify it installs from PyPI
165
- runs-on: ubuntu-latest
167
+ runs-on: ubuntu-26.04
166
168
  needs: publish
167
169
  permissions:
168
170
  contents: read
@@ -178,13 +180,14 @@ jobs:
178
180
  with:
179
181
  python-version: "3.14"
180
182
  enable-cache: true
183
+ cache-suffix: ${{ github.workflow }}-${{ github.job }}
181
184
 
182
185
  - name: Verify it installs from PyPI
183
186
  run: scripts/verify-publish.bash --prod
184
187
 
185
188
  release:
186
189
  name: Release
187
- runs-on: ubuntu-latest
190
+ runs-on: ubuntu-26.04
188
191
  needs: publish
189
192
  permissions:
190
193
  contents: write
@@ -28,7 +28,7 @@ permissions:
28
28
  jobs:
29
29
  snapshot:
30
30
  name: Publish a snapshot
31
- runs-on: ubuntu-latest
31
+ runs-on: ubuntu-26.04
32
32
  # Binds this job to the trusted publisher registered for `testpypi`.
33
33
  environment: testpypi
34
34
  permissions:
@@ -47,6 +47,7 @@ jobs:
47
47
  with:
48
48
  python-version: "3.14"
49
49
  enable-cache: true
50
+ cache-suffix: ${{ github.workflow }}-${{ github.job }}
50
51
 
51
52
  # Epoch seconds rather than the run number: a re-run repeats the number
52
53
  # and TestPyPI refuses the duplicate, while the clock has moved on.
@@ -23,7 +23,7 @@ concurrency:
23
23
  jobs:
24
24
  lint:
25
25
  name: Lint
26
- runs-on: ubuntu-latest
26
+ runs-on: ubuntu-26.04
27
27
  steps:
28
28
  - name: Checkout code
29
29
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
@@ -33,6 +33,7 @@ jobs:
33
33
  with:
34
34
  python-version: "3.14"
35
35
  enable-cache: true
36
+ cache-suffix: ${{ github.workflow }}-${{ github.job }}
36
37
 
37
38
  - name: Install dependencies
38
39
  run: uv sync --all-extras --locked
@@ -44,7 +45,7 @@ jobs:
44
45
 
45
46
  test:
46
47
  name: Python ${{ matrix.python-version }}
47
- runs-on: ubuntu-latest
48
+ runs-on: ubuntu-26.04
48
49
  strategy:
49
50
  # One version failing is a fact about that version, so let the others
50
51
  # finish and say which.
@@ -66,6 +67,7 @@ jobs:
66
67
  with:
67
68
  python-version: ${{ matrix.python-version }}
68
69
  enable-cache: true
70
+ cache-suffix: ${{ github.workflow }}-${{ github.job }}
69
71
 
70
72
  - name: Install dependencies
71
73
  # --locked fails the run on a stale uv.lock, rather than quietly
@@ -17,6 +17,10 @@ not in here, whatever it cost to build.
17
17
  A release closes with a `### Choices` section when a decision in it is worth
18
18
  the reader's time: what was chosen, and what the alternative failed to do.
19
19
 
20
+ ## 0.4.1 - 2026-09-21
21
+
22
+ CLI behavior is unchanged from 0.4.0.
23
+
20
24
  ## 0.4.0 - 2026-09-21
21
25
 
22
26
  ### Security
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: git-worktrees
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: Git worktree commands that refuse to lose work.
5
5
  Project-URL: Bug reports, https://github.com/MihaiBojin/worktrees/issues/new
6
6
  Project-URL: Source, https://github.com/MihaiBojin/worktrees
@@ -9,7 +9,7 @@ authors = [
9
9
  ]
10
10
  # Static, and the single source of truth for the version. Bump it in a pull
11
11
  # request and run `uv lock`; the release tag only has to agree with it.
12
- version = "0.4.0"
12
+ version = "0.4.1"
13
13
  # The standard library answers every question this asks. A dependency here
14
14
  # would be paid on every invocation, and an invocation is 67 ms of which 25 ms
15
15
  # is the interpreter starting.
@@ -28,9 +28,9 @@ readonly NAME VERSION
28
28
 
29
29
  echo "Verifying $NAME==$VERSION from $WHICH..." >&2
30
30
 
31
- # --isolated and a throwaway cache, so a local build of the same version cannot answer for
32
- # the index. --index-strategy unsafe-best-match because TestPyPI carries none of the
33
- # dependencies.
31
+ # --isolated ignores installed tools. --no-cache gives each attempt a fresh cache,
32
+ # so an earlier index response cannot hide the published version on later attempts.
33
+ # --index-strategy unsafe-best-match because TestPyPI carries none of the dependencies.
34
34
  TMP="$(mktemp -d)"
35
35
  trap 'rm -rf "$TMP"' EXIT
36
36
 
@@ -53,7 +53,8 @@ delay="$BASE"
53
53
  while :; do
54
54
  attempt=$((attempt + 1))
55
55
 
56
- if REPORTED="$(UV_CACHE_DIR="$TMP/cache" uv tool run \
56
+ if REPORTED="$(uv tool run \
57
+ --no-cache \
57
58
  --isolated \
58
59
  --index "$INDEX" \
59
60
  --index-strategy unsafe-best-match \
@@ -40,7 +40,7 @@ wheels = [
40
40
 
41
41
  [[package]]
42
42
  name = "git-worktrees"
43
- version = "0.4.0"
43
+ version = "0.4.1"
44
44
  source = { editable = "." }
45
45
 
46
46
  [package.optional-dependencies]
File without changes
File without changes
File without changes
File without changes