Skip to content

Commit 2854d30

Browse files
UnbreakableMJclaude
andcommitted
release: v0.8.2 — fix flatten step to rename by upload-name
v0.8.1 successfully published a GH Release but only 4 of the 9 expected assets appeared. The flatten step moved the inner file of each downloaded artifact (always named `zamak-uefi.efi` or `zamak`) into `flat/`, so every BOOT*.EFI collapsed to `zamak-uefi.efi` and every CLI binary to `zamak`, overwriting each other. Only the last-moved EFI + CLI + SHA256SUMS + SBOM landed on the release page. Fix: walk `dist/<upload-name>/` directories, pick the single inner file per matrix entry, copy to `flat/<upload-name>`. Now BOOTX64.EFI / BOOTAA64.EFI / BOOTRISCV64.EFI / BOOTLOONGARCH64.EFI / zamak-linux-x86_64 / zamak-macos-aarch64 / zamak-freebsd-x86_64 all appear as distinct assets. 11 workspace crates bumped 0.8.1 → 0.8.2. No code changes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent f319424 commit 2854d30

15 files changed

Lines changed: 83 additions & 37 deletions

File tree

.forgejo/workflows/release.yml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,24 @@ jobs:
113113
with:
114114
path: dist
115115
- uses: dtolnay/rust-toolchain@stable
116-
- name: flatten artifact directories
116+
- name: flatten + rename artifact directories
117117
# Each artifact was uploaded under its own subdir
118-
# (dist/<name>/<file>). Flatten to dist/<file> so release
119-
# assets have the expected short names.
118+
# (dist/<upload-name>/<inner-file>). The inner file has the
119+
# generic target name (e.g. `zamak-uefi.efi`, `zamak`), so
120+
# multiple entries from the same matrix collapse to the same
121+
# name if we just flatten. Rename each to its upload-name so
122+
# BOOTX64.EFI, BOOTAA64.EFI, zamak-linux-x86_64, … appear as
123+
# distinct GH release assets.
120124
run: |
121125
set -euo pipefail
122126
mkdir -p flat
123-
find dist -type f -exec mv {} flat/ \;
127+
for dir in dist/*/; do
128+
upload_name=$(basename "$dir")
129+
inner_file=$(find "$dir" -maxdepth 1 -type f | head -1)
130+
if [ -n "$inner_file" ]; then
131+
cp "$inner_file" "flat/${upload_name}"
132+
fi
133+
done
124134
rm -rf dist
125135
mv flat dist
126136
ls -la dist

.github/workflows/release.yml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,24 @@ jobs:
113113
with:
114114
path: dist
115115
- uses: dtolnay/rust-toolchain@stable
116-
- name: flatten artifact directories
116+
- name: flatten + rename artifact directories
117117
# Each artifact was uploaded under its own subdir
118-
# (dist/<name>/<file>). Flatten to dist/<file> so release
119-
# assets have the expected short names.
118+
# (dist/<upload-name>/<inner-file>). The inner file has the
119+
# generic target name (e.g. `zamak-uefi.efi`, `zamak`), so
120+
# multiple entries from the same matrix collapse to the same
121+
# name if we just flatten. Rename each to its upload-name so
122+
# BOOTX64.EFI, BOOTAA64.EFI, zamak-linux-x86_64, … appear as
123+
# distinct GH release assets.
120124
run: |
121125
set -euo pipefail
122126
mkdir -p flat
123-
find dist -type f -exec mv {} flat/ \;
127+
for dir in dist/*/; do
128+
upload_name=$(basename "$dir")
129+
inner_file=$(find "$dir" -maxdepth 1 -type f | head -1)
130+
if [ -n "$inner_file" ]; then
131+
cp "$inner_file" "flat/${upload_name}"
132+
fi
133+
done
124134
rm -rf dist
125135
mv flat dist
126136
ls -la dist

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,32 @@ All dates use ISO 8601 format (YYYY-MM-DD).
1212

1313
## [Unreleased]
1414

15+
## [0.8.2] - 2026-04-24
16+
17+
Second release-workflow patch. v0.8.1 successfully published a GH
18+
Release but only 4 of the expected 9 assets appeared: the
19+
`flatten` step renamed all files to their inner basenames
20+
(`zamak-uefi.efi` for every EFI target, `zamak` for every CLI
21+
target), so `dist/BOOTX64.EFI/zamak-uefi.efi` and
22+
`dist/BOOTAA64.EFI/zamak-uefi.efi` both became `flat/zamak-uefi.efi`
23+
and overwrote each other during the move.
24+
25+
### Fixed
26+
27+
- **`release.yml` flatten/rename step** — now walks
28+
`dist/<upload-name>/` directories, picks the single inner file
29+
per matrix entry, and copies it to `flat/<upload-name>`. So
30+
`BOOTX64.EFI`, `BOOTAA64.EFI`, `BOOTRISCV64.EFI`,
31+
`BOOTLOONGARCH64.EFI`, `zamak-linux-x86_64`,
32+
`zamak-macos-aarch64`, `zamak-freebsd-x86_64` all appear as
33+
distinct release assets.
34+
35+
### Note
36+
37+
v0.8.1's GH Release page will stay on the repo for historical
38+
reference but is incomplete (4/9 assets). Use v0.8.2 as the
39+
effective "0.8" release point.
40+
1541
## [0.8.1] - 2026-04-24
1642

1743
Release-workflow patch release. No code changes; fixes

Cargo.lock

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

zamak-bios/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[package]
44
name = "zamak-bios"
5-
version = "0.8.1"
5+
version = "0.8.2"
66
edition = "2021"
77
license = "GPL-3.0-or-later"
88

@@ -13,8 +13,8 @@ license = "GPL-3.0-or-later"
1313
smp = []
1414

1515
[dependencies]
16-
zamak-core = { path = "../zamak-core", version = "0.8.1" }
17-
zamak-theme = { path = "../zamak-theme", version = "0.8.1" }
16+
zamak-core = { path = "../zamak-core", version = "0.8.2" }
17+
zamak-theme = { path = "../zamak-theme", version = "0.8.2" }
1818
log = "0.4"
1919
x86_64 = { version = "0.15", default-features = false, features = ["instructions"] }
2020
limine-protocol = "0.5"

zamak-cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[package]
44
name = "zamak-cli"
5-
version = "0.8.1"
5+
version = "0.8.2"
66
edition = "2021"
77
description = "Host-side CLI tool for ZAMAK bootloader (MBR install, config enrollment, SBOM)"
88
license = "GPL-3.0-or-later"

zamak-core/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
[package]
44
name = "zamak-core"
5-
version = "0.8.1"
5+
version = "0.8.2"
66
edition = "2021"
77
license = "GPL-3.0-or-later"
88

99
[dependencies]
10-
zamak-proto = { path = "../zamak-proto", version = "0.8.1" }
11-
zamak-macros = { path = "../zamak-macros", version = "0.8.1" }
12-
zamak-theme = { path = "../zamak-theme", version = "0.8.1" }
10+
zamak-proto = { path = "../zamak-proto", version = "0.8.2" }
11+
zamak-macros = { path = "../zamak-macros", version = "0.8.2" }
12+
zamak-theme = { path = "../zamak-theme", version = "0.8.2" }
1313
limine-protocol = "0.5"
1414
goblin = { version = "0.7", default-features = false, features = ["elf64", "elf32", "endian_fd", "alloc"] }
1515

zamak-decompressor/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[package]
44
name = "zamak-decompressor"
5-
version = "0.8.1"
5+
version = "0.8.2"
66
edition = "2021"
77
description = "BIOS stage2 decompressor — inflates zamak-bios.sys to a fixed physical address"
88
license = "GPL-3.0-or-later"

zamak-macros/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[package]
44
name = "zamak-macros"
5-
version = "0.8.1"
5+
version = "0.8.2"
66
edition = "2021"
77
description = "Procedural macros for ZAMAK bootloader safety annotations"
88
license = "GPL-3.0-or-later"

zamak-proto/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[package]
44
name = "zamak-proto"
5-
version = "0.8.1"
5+
version = "0.8.2"
66
edition = "2021"
77
description = "Limine Protocol types and request/response structures for ZAMAK"
88
license = "GPL-3.0-or-later"

0 commit comments

Comments
 (0)