Skip to content

Commit b2b8016

Browse files
authored
fix(packaging): green TurtleTerm packaging, release & language suites (#45)
Unifies package identity to turtleterm, aligns version to 0.1.0, collapses arch to canonical staging, greens the real deb/rpm/arch build+verify jobs, fixes rpm %files globbing and build-script stdout capture, hardens the turtle-language symbol merge (adversarial-review finding), makes the arch PKGBUILD build under real makepkg, and adds the python3 runtime dep to all shipped packages. 13/13 tests; all checks green except pre-existing Cargo audit (7 RUSTSEC in the wezterm-fork dep tree, tracked as backlog B7).
1 parent e5b9364 commit b2b8016

25 files changed

Lines changed: 1803 additions & 239 deletions

.github/workflows/turtle-term-linux-packaging.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
- name: Validate Debian control shape
5454
run: |
5555
test -f packaging/linux/deb/control
56-
grep -q '^Package: turtle-term$' packaging/linux/deb/control
56+
grep -q '^Package: turtleterm$' packaging/linux/deb/control
5757
grep -q '^Architecture: amd64 arm64$' packaging/linux/deb/control
5858
grep -q '^Homepage: https://github.com/SourceOS-Linux/TurtleTerm$' packaging/linux/deb/control
5959
@@ -76,7 +76,7 @@ jobs:
7676
- name: Validate RPM spec shape
7777
run: |
7878
test -f packaging/linux/rpm/turtle-term.spec
79-
grep -q '^Name: turtle-term$' packaging/linux/rpm/turtle-term.spec
79+
grep -q '^Name: turtleterm$' packaging/linux/rpm/turtle-term.spec
8080
grep -q '^ExclusiveArch: x86_64 aarch64$' packaging/linux/rpm/turtle-term.spec
8181
grep -q 'TURTLE_TERM_STAGE_PREFIX=%{buildroot}%{_prefix}' packaging/linux/rpm/turtle-term.spec
8282
grep -q 'ai.sourceos.TurtleTerm.desktop' packaging/linux/rpm/turtle-term.spec

.github/workflows/turtle-term-native-linux-packages.yml

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,15 @@ jobs:
9797
- name: Verify package artifacts exist
9898
run: |
9999
ls -lah dist/native
100-
test -n "$(find dist/native -name 'turtle-term_*.deb' -print -quit)"
101-
test -n "$(find dist/native -name 'turtle-term_*.deb.sha256' -print -quit)"
102-
test -n "$(find dist/native -name 'turtle-term_*.deb.manifest.json' -print -quit)"
103-
test -n "$(find dist/native -name 'turtle-term-*.rpm' -print -quit)"
104-
test -n "$(find dist/native -name 'turtle-term-*.rpm.sha256' -print -quit)"
105-
test -n "$(find dist/native -name 'turtle-term-*.rpm.manifest.json' -print -quit)"
106-
test -n "$(find dist/native -name 'turtle-term-*.pkg.tar.zst' -print -quit)"
107-
test -n "$(find dist/native -name 'turtle-term-*.pkg.tar.zst.sha256' -print -quit)"
108-
test -n "$(find dist/native -name 'turtle-term-*.pkg.tar.zst.manifest.json' -print -quit)"
100+
test -n "$(find dist/native -name 'turtleterm_*.deb' -print -quit)"
101+
test -n "$(find dist/native -name 'turtleterm_*.deb.sha256' -print -quit)"
102+
test -n "$(find dist/native -name 'turtleterm_*.deb.manifest.json' -print -quit)"
103+
test -n "$(find dist/native -name 'turtleterm-*.rpm' -print -quit)"
104+
test -n "$(find dist/native -name 'turtleterm-*.rpm.sha256' -print -quit)"
105+
test -n "$(find dist/native -name 'turtleterm-*.rpm.manifest.json' -print -quit)"
106+
test -n "$(find dist/native -name 'turtleterm-*.pkg.tar.zst' -print -quit)"
107+
test -n "$(find dist/native -name 'turtleterm-*.pkg.tar.zst.sha256' -print -quit)"
108+
test -n "$(find dist/native -name 'turtleterm-*.pkg.tar.zst.manifest.json' -print -quit)"
109109
110110
- name: Write native package index
111111
env:
@@ -137,15 +137,15 @@ jobs:
137137
uses: actions/attest@v4
138138
with:
139139
subject-path: |
140-
dist/native/turtle-term_*.deb
141-
dist/native/turtle-term_*.deb.sha256
142-
dist/native/turtle-term_*.deb.manifest.json
140+
dist/native/turtleterm_*.deb
141+
dist/native/turtleterm_*.deb.sha256
142+
dist/native/turtleterm_*.deb.manifest.json
143143
dist/native/rpmbuild/RPMS/**/*.rpm
144144
dist/native/rpmbuild/RPMS/**/*.rpm.sha256
145145
dist/native/rpmbuild/RPMS/**/*.rpm.manifest.json
146-
dist/native/turtle-term-*.pkg.tar.zst
147-
dist/native/turtle-term-*.pkg.tar.zst.sha256
148-
dist/native/turtle-term-*.pkg.tar.zst.manifest.json
146+
dist/native/turtleterm-*.pkg.tar.zst
147+
dist/native/turtleterm-*.pkg.tar.zst.sha256
148+
dist/native/turtleterm-*.pkg.tar.zst.manifest.json
149149
dist/native/turtle-term-native-packages.index.json
150150
dist/native/turtle-term-native-packages.index.json.sha256
151151
@@ -154,15 +154,15 @@ jobs:
154154
with:
155155
name: turtle-term-native-linux-${{ matrix.deb_arch }}
156156
path: |
157-
dist/native/turtle-term_*.deb
158-
dist/native/turtle-term_*.deb.sha256
159-
dist/native/turtle-term_*.deb.manifest.json
157+
dist/native/turtleterm_*.deb
158+
dist/native/turtleterm_*.deb.sha256
159+
dist/native/turtleterm_*.deb.manifest.json
160160
dist/native/rpmbuild/RPMS/**/*.rpm
161161
dist/native/rpmbuild/RPMS/**/*.rpm.sha256
162162
dist/native/rpmbuild/RPMS/**/*.rpm.manifest.json
163-
dist/native/turtle-term-*.pkg.tar.zst
164-
dist/native/turtle-term-*.pkg.tar.zst.sha256
165-
dist/native/turtle-term-*.pkg.tar.zst.manifest.json
163+
dist/native/turtleterm-*.pkg.tar.zst
164+
dist/native/turtleterm-*.pkg.tar.zst.sha256
165+
dist/native/turtleterm-*.pkg.tar.zst.manifest.json
166166
dist/native/turtle-term-native-packages.index.json
167167
dist/native/turtle-term-native-packages.index.json.sha256
168168

.github/workflows/turtle-term-release.yml

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,12 @@ jobs:
2828
include:
2929
- os: macos-14
3030
target: macos-arm64
31+
- os: macos-13
32+
target: macos-x86_64
3133
- os: ubuntu-24.04
3234
target: linux-x86_64
35+
- os: ubuntu-24.04-arm
36+
target: linux-arm64
3337

3438
steps:
3539
- name: Check out repository
@@ -95,6 +99,14 @@ jobs:
9599
dist/turtle-term-*.tar.gz.sha256
96100
dist/turtle-term-*.tar.gz.manifest.json
97101
102+
- name: Generate SBOM
103+
uses: anchore/sbom-action@v0
104+
with:
105+
path: dist/
106+
format: spdx-json
107+
artifact-name: turtle-term-${{ matrix.target }}.sbom.spdx.json
108+
output-file: dist/turtle-term-${{ matrix.target }}.sbom.spdx.json
109+
98110
- name: Upload artifact
99111
uses: actions/upload-artifact@v4
100112
with:
@@ -106,16 +118,14 @@ jobs:
106118
107119
- name: Publish GitHub release assets
108120
if: startsWith(github.ref, 'refs/tags/turtle-term-v')
109-
env:
110-
GH_TOKEN: ${{ github.token }}
111-
run: |
112-
tag="${GITHUB_REF_NAME}"
113-
gh release create "$tag" \
114-
--title "TurtleTerm ${tag}" \
115-
--notes "TurtleTerm ${tag} — see CHANGELOG for details." \
116-
2>/dev/null || true
117-
gh release upload "$tag" \
118-
dist/turtle-term-*.tar.gz \
119-
dist/turtle-term-*.tar.gz.sha256 \
120-
dist/turtle-term-*.tar.gz.manifest.json \
121-
--clobber
121+
uses: softprops/action-gh-release@v2
122+
with:
123+
tag_name: ${{ github.ref_name }}
124+
name: TurtleTerm ${{ github.ref_name }}
125+
body: "TurtleTerm ${{ github.ref_name }} — see CHANGELOG for details."
126+
fail_on_unmatched_files: false
127+
files: |
128+
dist/turtle-term-*.tar.gz
129+
dist/turtle-term-*.tar.gz.sha256
130+
dist/turtle-term-*.tar.gz.manifest.json
131+
dist/turtle-term-*.sbom.spdx.json

0 commit comments

Comments
 (0)