ext4-cli 0.0.1__tar.gz → 0.0.3__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.
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/.github/workflows/release.yml +36 -12
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/CHANGELOG.md +20 -0
- ext4_cli-0.0.3/Cargo.lock +1813 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/Cargo.toml +4 -1
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/Makefile +12 -1
- ext4_cli-0.0.3/PKG-INFO +142 -0
- ext4_cli-0.0.3/README.md +122 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/pyproject.toml +1 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/src/commands/cp.rs +1 -1
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/src/commands/info.rs +3 -3
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/src/commands/ls.rs +50 -9
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/src/commands/mod.rs +3 -1
- ext4_cli-0.0.3/src/commands/schema.rs +117 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/src/commands/stat.rs +3 -3
- ext4_cli-0.0.3/src/main.rs +202 -0
- ext4_cli-0.0.3/src/output.rs +62 -0
- ext4_cli-0.0.3/tests/fixtures/clispec-v0.2.json +135 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/tests/info.rs +17 -3
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/tests/ls.rs +22 -5
- ext4_cli-0.0.3/tests/output_format.rs +101 -0
- ext4_cli-0.0.3/tests/pagination.rs +118 -0
- ext4_cli-0.0.3/tests/schema.rs +128 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/tests/stat.rs +20 -3
- ext4_cli-0.0.1/Cargo.lock +0 -740
- ext4_cli-0.0.1/PKG-INFO +0 -17
- ext4_cli-0.0.1/src/main.rs +0 -131
- ext4_cli-0.0.1/src/output.rs +0 -35
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/.github/workflows/ci.yml +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/.gitignore +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/ext4_cli/__init__.py +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/ext4_cli/__main__.py +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/src/commands/cat.rs +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/src/source.rs +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/tests/cat.rs +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/tests/cp.rs +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/tests/create_fixtures.sh +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/tests/fixtures/minimal.img +0 -0
- {ext4_cli-0.0.1 → ext4_cli-0.0.3}/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:
|
|
70
|
+
os: [self-hosted, macOS, ARM64]
|
|
68
71
|
- target: aarch64-apple-darwin
|
|
69
|
-
os:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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 }}" \
|
|
@@ -226,7 +242,7 @@ jobs:
|
|
|
226
242
|
|
|
227
243
|
- name: Update Homebrew formula
|
|
228
244
|
env:
|
|
229
|
-
|
|
245
|
+
HOMEBREW_TAP_DEPLOY_KEY: ${{ secrets.HOMEBREW_TAP_DEPLOY_KEY }}
|
|
230
246
|
run: |
|
|
231
247
|
VERSION="${{ github.ref_name }}"
|
|
232
248
|
VERSION_NUM="${VERSION#v}"
|
|
@@ -275,7 +291,15 @@ jobs:
|
|
|
275
291
|
sed -i "s/SHA_AARCH64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.aarch64_unknown_linux_gnu }}/g" /tmp/ext4.rb
|
|
276
292
|
sed -i "s/SHA_X86_64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.x86_64_unknown_linux_gnu }}/g" /tmp/ext4.rb
|
|
277
293
|
|
|
278
|
-
|
|
294
|
+
# Authenticate to the tap with a write deploy key scoped to
|
|
295
|
+
# rvben/homebrew-tap. The key does not expire, so cross-repo pushes
|
|
296
|
+
# keep working without periodic token rotation.
|
|
297
|
+
mkdir -p ~/.ssh
|
|
298
|
+
echo "$HOMEBREW_TAP_DEPLOY_KEY" > ~/.ssh/id_ed25519
|
|
299
|
+
chmod 600 ~/.ssh/id_ed25519
|
|
300
|
+
ssh-keyscan -t ed25519 github.com >> ~/.ssh/known_hosts 2>/dev/null
|
|
301
|
+
|
|
302
|
+
git clone git@github.com:rvben/homebrew-tap.git /tmp/tap
|
|
279
303
|
mkdir -p /tmp/tap/Formula
|
|
280
304
|
cp /tmp/ext4.rb /tmp/tap/Formula/ext4.rb
|
|
281
305
|
cd /tmp/tap
|
|
@@ -4,6 +4,26 @@ 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
|
+
|
|
9
|
+
## [0.0.3](https://github.com/rvben/ext4-cli/compare/v0.0.2...v0.0.3) - 2026-06-20
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **schema**: remove conflict error kind not emitted by the binary ([1105e6e](https://github.com/rvben/ext4-cli/commit/1105e6e2f3ca11580956847feec6e3a341f01d2b))
|
|
14
|
+
|
|
15
|
+
## [0.0.2](https://github.com/rvben/ext4-cli/compare/v0.0.1...v0.0.2) - 2026-06-11
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- add clispec v0.2 compliance (24/24 score) ([810bb87](https://github.com/rvben/ext4-cli/commit/810bb87f26c9091bda70acd862b62b5d153369d3))
|
|
20
|
+
- add PyPI distribution via maturin ([6909fce](https://github.com/rvben/ext4-cli/commit/6909fcef7a0f00d39a50c9c3cbb4dfe6f1979c76))
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- **ci**: use --check-url for uv publish to skip already-uploaded files ([ed9e19a](https://github.com/rvben/ext4-cli/commit/ed9e19a3c90afda0c272234cbe12f22612185bd6))
|
|
25
|
+
- **ci**: correct wheel artifact path and add --skip-existing for PyPI publish ([9ec39c6](https://github.com/rvben/ext4-cli/commit/9ec39c62e618178f1dd855ef4114befef2c94f8b))
|
|
26
|
+
|
|
7
27
|
## [0.0.1] - 2026-04-13
|
|
8
28
|
|
|
9
29
|
### Added
|