ext4-cli 0.0.1__tar.gz → 0.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 (38) hide show
  1. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/.github/workflows/release.yml +26 -10
  2. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/CHANGELOG.md +13 -0
  3. ext4_cli-0.0.2/Cargo.lock +1813 -0
  4. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/Cargo.toml +4 -1
  5. ext4_cli-0.0.2/PKG-INFO +142 -0
  6. ext4_cli-0.0.2/README.md +122 -0
  7. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/pyproject.toml +1 -0
  8. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/src/commands/cp.rs +1 -1
  9. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/src/commands/info.rs +3 -3
  10. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/src/commands/ls.rs +50 -9
  11. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/src/commands/mod.rs +3 -1
  12. ext4_cli-0.0.2/src/commands/schema.rs +118 -0
  13. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/src/commands/stat.rs +3 -3
  14. ext4_cli-0.0.2/src/main.rs +202 -0
  15. ext4_cli-0.0.2/src/output.rs +62 -0
  16. ext4_cli-0.0.2/tests/fixtures/clispec-v0.2.json +135 -0
  17. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/tests/info.rs +17 -3
  18. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/tests/ls.rs +22 -5
  19. ext4_cli-0.0.2/tests/output_format.rs +101 -0
  20. ext4_cli-0.0.2/tests/pagination.rs +118 -0
  21. ext4_cli-0.0.2/tests/schema.rs +128 -0
  22. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/tests/stat.rs +20 -3
  23. ext4_cli-0.0.1/Cargo.lock +0 -740
  24. ext4_cli-0.0.1/PKG-INFO +0 -17
  25. ext4_cli-0.0.1/src/main.rs +0 -131
  26. ext4_cli-0.0.1/src/output.rs +0 -35
  27. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/.github/workflows/ci.yml +0 -0
  28. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/.gitignore +0 -0
  29. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/Makefile +0 -0
  30. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/ext4_cli/__init__.py +0 -0
  31. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/ext4_cli/__main__.py +0 -0
  32. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/src/commands/cat.rs +0 -0
  33. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/src/source.rs +0 -0
  34. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/tests/cat.rs +0 -0
  35. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/tests/cp.rs +0 -0
  36. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/tests/create_fixtures.sh +0 -0
  37. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/tests/fixtures/minimal.img +0 -0
  38. {ext4_cli-0.0.1 → ext4_cli-0.0.2}/tests/fixtures/rich.img +0 -0
@@ -56,6 +56,9 @@ jobs:
56
56
  build:
57
57
  name: Build ${{ matrix.target }}
58
58
  needs: test
59
+ # Guard: self-hosted runners only execute on trusted events (tag push,
60
+ # workflow_dispatch). Fork PRs must never dispatch jobs to self-hosted.
61
+ if: github.event_name != 'pull_request'
59
62
  strategy:
60
63
  matrix:
61
64
  include:
@@ -64,9 +67,9 @@ jobs:
64
67
  - target: aarch64-unknown-linux-gnu
65
68
  os: ubuntu-latest
66
69
  - target: x86_64-apple-darwin
67
- os: macos-latest
70
+ os: [self-hosted, macOS, ARM64]
68
71
  - target: aarch64-apple-darwin
69
- os: macos-latest
72
+ os: [self-hosted, macOS, ARM64]
70
73
  runs-on: ${{ matrix.os }}
71
74
  steps:
72
75
  - uses: actions/checkout@v4
@@ -81,8 +84,15 @@ jobs:
81
84
  sudo apt-get update
82
85
  sudo apt-get install -y gcc-aarch64-linux-gnu
83
86
 
87
+ - name: Install uv
88
+ uses: astral-sh/setup-uv@v6
89
+
84
90
  - name: Install maturin and zig
85
- run: pip install maturin ziglang
91
+ shell: bash
92
+ run: |
93
+ uv venv "${RUNNER_TEMP}/build-venv"
94
+ uv pip install --python "${RUNNER_TEMP}/build-venv/bin/python" maturin ziglang
95
+ echo "${RUNNER_TEMP}/build-venv/bin" >> "$GITHUB_PATH"
86
96
 
87
97
  - name: Build wheel
88
98
  shell: bash
@@ -129,8 +139,14 @@ jobs:
129
139
  steps:
130
140
  - uses: actions/checkout@v4
131
141
 
142
+ - uses: astral-sh/setup-uv@v6
143
+
132
144
  - name: Install maturin
133
- run: pip install maturin
145
+ shell: bash
146
+ run: |
147
+ uv venv "${RUNNER_TEMP}/build-venv"
148
+ uv pip install --python "${RUNNER_TEMP}/build-venv/bin/python" maturin
149
+ echo "${RUNNER_TEMP}/build-venv/bin" >> "$GITHUB_PATH"
134
150
 
135
151
  - name: Build sdist
136
152
  run: maturin sdist
@@ -154,7 +170,7 @@ jobs:
154
170
  path: /tmp/artifacts
155
171
 
156
172
  - name: Publish to crates.io
157
- if: ${{ !inputs.dry_run && !inputs.skip_crates_io }}
173
+ if: ${{ !inputs.dry_run && !inputs.skip_crates_io && (github.ref_type == 'tag' || github.event_name != 'workflow_dispatch') }}
158
174
  run: cargo publish --locked
159
175
  env:
160
176
  CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
@@ -171,8 +187,8 @@ jobs:
171
187
  uses: astral-sh/setup-uv@v6
172
188
 
173
189
  - name: Publish to PyPI
174
- if: ${{ !inputs.dry_run && !inputs.skip_pypi }}
175
- run: uv publish /tmp/artifacts/build-*/*.whl /tmp/artifacts/sdist/*.tar.gz
190
+ if: ${{ !inputs.dry_run && !inputs.skip_pypi && (github.ref_type == 'tag' || github.event_name != 'workflow_dispatch') }}
191
+ run: uv publish --check-url https://pypi.org/simple/ /tmp/artifacts/build-*/target/wheels/*.whl /tmp/artifacts/sdist/*.tar.gz
176
192
  env:
177
193
  UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
178
194
 
@@ -180,16 +196,16 @@ jobs:
180
196
  if: ${{ inputs.dry_run == true && !inputs.skip_pypi }}
181
197
  run: |
182
198
  echo "DRY RUN: Would upload to PyPI:"
183
- find /tmp/artifacts/build-* -name "*.whl" -type f | sort
199
+ find /tmp/artifacts/build-*/target/wheels -name "*.whl" -type f | sort
184
200
  find /tmp/artifacts/sdist -name "*.tar.gz" -type f | sort
185
- uv tool run twine check /tmp/artifacts/build-*/*.whl /tmp/artifacts/sdist/*.tar.gz
201
+ uv tool run twine check /tmp/artifacts/build-*/target/wheels/*.whl /tmp/artifacts/sdist/*.tar.gz
186
202
 
187
203
  - name: Skip PyPI publishing
188
204
  if: ${{ inputs.skip_pypi == true }}
189
205
  run: echo "Skipping PyPI publishing as requested"
190
206
 
191
207
  - name: Create GitHub Release
192
- if: ${{ !inputs.dry_run && !inputs.skip_github_release }}
208
+ if: ${{ !inputs.dry_run && !inputs.skip_github_release && (github.ref_type == 'tag' || github.event_name != 'workflow_dispatch') }}
193
209
  run: |
194
210
  gh release create ${{ github.ref_name }} \
195
211
  --title "${{ github.ref_name }}" \
@@ -4,6 +4,19 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/).
6
6
 
7
+
8
+ ## [0.0.2](https://github.com/rvben/ext4-cli/compare/v0.0.1...v0.0.2) - 2026-06-11
9
+
10
+ ### Added
11
+
12
+ - add clispec v0.2 compliance (24/24 score) ([810bb87](https://github.com/rvben/ext4-cli/commit/810bb87f26c9091bda70acd862b62b5d153369d3))
13
+ - add PyPI distribution via maturin ([6909fce](https://github.com/rvben/ext4-cli/commit/6909fcef7a0f00d39a50c9c3cbb4dfe6f1979c76))
14
+
15
+ ### Fixed
16
+
17
+ - **ci**: use --check-url for uv publish to skip already-uploaded files ([ed9e19a](https://github.com/rvben/ext4-cli/commit/ed9e19a3c90afda0c272234cbe12f22612185bd6))
18
+ - **ci**: correct wheel artifact path and add --skip-existing for PyPI publish ([9ec39c6](https://github.com/rvben/ext4-cli/commit/9ec39c62e618178f1dd855ef4114befef2c94f8b))
19
+
7
20
  ## [0.0.1] - 2026-04-13
8
21
 
9
22
  ### Added