docs(readme): M130 r1 修正产物名的槽位说明与自相矛盾的 GUI 二进制称谓

- P2-1:`[.exe]` 只对两个 Windows 槽成立,四个 Linux/macOS 槽是 .tar.gz
  (make_artifacts.py:76-82 SLOTS、:243 stage_archive;packaging/README.md §1)。
  三处产物名统一写成 `unlucky-launcher_<version>_<platform>_<arch>` + 按槽位说明形态。
- P2-2:删掉「`unlucky-launcher` once extracted or downloaded」与段尾「Windows 裸资产文件名带
  版本段」的互相拆台;改成归档解出叫 `unlucky-launcher`、Windows 裸资产叫
  `unlucky-launcher_<version>_<platform>_<arch>.exe`。中英同步。
This commit is contained in:
AskaEth committed 2026-11-05 18:05:39 +08:00
1 parent 95131d856e
commit 72ee57f0a8
2 files changed
+16 -11

No files matched your search

+9 -7
View File
@@ -79,15 +79,16 @@ Binaries you may run into, so you can tell them apart:
| Binary | Crate | State | | Binary | Crate | State |
|--------|-------|-------| |--------|-------|-------|
| `unlucky-launcher-iced` | `crates/app-iced` (iced 0.14) | the GUI binary the workspace builds; the release pipeline stages the file as `unlucky-launcher_<version>_<platform>_<arch>[.exe]`, and the binary inside each archive is named `unlucky-launcher`; the same binary answers every CLI subcommand | | `unlucky-launcher-iced` | `crates/app-iced` (iced 0.14) | the GUI binary the workspace builds; the release pipeline stages the file as `unlucky-launcher_<version>_<platform>_<arch>` — a bare `.exe` on the two Windows slots, a `.tar.gz` on the four Linux / macOS slots — and the binary inside each archive is named `unlucky-launcher`; the same binary answers every CLI subcommand |
| `unlucky-launcher` | `crates/app` (Slint) | **historical**: that crate is excluded from the workspace, so this binary is no longer built or shipped; the v0.1.0 assets are the last Slint builds | | `unlucky-launcher` | `crates/app` (Slint) | **historical**: that crate is excluded from the workspace, so this binary is no longer built or shipped; the v0.1.0 assets are the last Slint builds |
| `ull` | `crates/cli` | the zero-UI build of the same command set, shipped as its own asset | | `ull` | `crates/cli` | the zero-UI build of the same command set, shipped as its own asset |
The GUI binary (`unlucky-launcher` once extracted or downloaded) and `ull` are not duplicates. The GUI The GUI binary and `ull` are not duplicates. An archive extracts the first as `unlucky-launcher`; on
binary needs the graphics stack when it opens a window (it `dlopen`s X11 / Wayland / GL, and links Windows it is a bare `unlucky-launcher_<version>_<platform>_<arch>.exe`. The GUI binary needs the
`libfontconfig` at load); `ull` needs nothing beyond glibc, so it runs on a server or a CI container graphics stack when it opens a window (it `dlopen`s X11 / Wayland / GL, and links `libfontconfig` at
where no window can exist. That floor is glibc ≥ 2.35 (the Linux slots build on Ubuntu 22.04), so an load); `ull` needs nothing beyond glibc, so it runs on a server or a CI container where no window can
older distribution — and Android/Termux, which is not a released slot at all — needs a source build exist. That floor is glibc ≥ 2.35 (the Linux slots build on Ubuntu 22.04), so an older distribution —
and Android/Termux, which is not a released slot at all — needs a source build
(`packaging/README.md` §4, §9). Pick `ull` when there is no desktop, `unlucky-launcher <command>` when (`packaging/README.md` §4, §9). Pick `ull` when there is no desktop, `unlucky-launcher <command>` when
there is. Both print the same CLI text, and each names itself after the file you ran — `argv[0]` with there is. Both print the same CLI text, and each names itself after the file you ran — `argv[0]` with
its directory and a trailing `.exe` removed, and nothing else (`crates/cli/src/cli/program.rs`). So its directory and a trailing `.exe` removed, and nothing else (`crates/cli/src/cli/program.rs`). So
@@ -184,7 +185,8 @@ What the build produces:
subcommand listed above. The `iced` in this name is cargo's, not the download's: renaming the bin subcommand listed above. The `iced` in this name is cargo's, not the download's: renaming the bin
is what the "flip" still owes. The release file name carries no implementation detail — the is what the "flip" still owes. The release file name carries no implementation detail — the
pipeline builds this bin and `packaging/make_artifacts.py` stages it as pipeline builds this bin and `packaging/make_artifacts.py` stages it as
`unlucky-launcher_<version>_<platform>_<arch>[.exe]`, with the binary inside each archive named `unlucky-launcher_<version>_<platform>_<arch>` — a bare `.exe` on the two Windows slots, a
`.tar.gz` on the four Linux / macOS slots — with the binary inside each archive named
`unlucky-launcher`, so download links never carry `iced`. `unlucky-launcher`, so download links never carry `iced`.
- `unlucky-launcher` — **historical**: no workspace build produces this binary any more; it belonged - `unlucky-launcher` — **historical**: no workspace build produces this binary any more; it belonged
to `crates/app`, which is excluded. The v0.1.0 assets are the last builds under this name. to `crates/app`, which is excluded. The v0.1.0 assets are the last builds under this name.
+7 -4
View File
@@ -59,17 +59,19 @@ Unlucky Launcher(ULL)是一个用 Rust 写的免费开源 Minecraft: Java
- **Slint 版已退出构建,只留源码作参考**:`crates/app` 不再是 workspace 成员(M118)——源码留作历史 - **Slint 版已退出构建,只留源码作参考**:`crates/app` 不再是 workspace 成员(M118)——源码留作历史
参考,不编译、不测试、不发布,也不再有可用的构建方式。还欠「翻牌」的只有**仓库内的 bin 名**(现在叫 参考,不编译、不测试、不发布,也不再有可用的构建方式。还欠「翻牌」的只有**仓库内的 bin 名**(现在叫
`unlucky-launcher-iced`);**产物名不欠**:`packaging/make_artifacts.py` 落盘时用的是 `unlucky-launcher-iced`);**产物名不欠**:`packaging/make_artifacts.py` 落盘时用的是
`unlucky-launcher_<版本>_<平台>_<架构>[.exe]`,归档里的二进制名是 `unlucky-launcher`。 `unlucky-launcher_<版本>_<平台>_<架构>`——两个 Windows 槽是裸 `.exe`,其余四个 Linux / macOS 槽
是 `.tar.gz`——归档里的二进制名是 `unlucky-launcher`。
可能会遇到的 bin,先认清楚: 可能会遇到的 bin,先认清楚:
| 二进制 | crate | 状态 | | 二进制 | crate | 状态 |
|--------|-------|------| |--------|-------|------|
| `unlucky-launcher-iced` | `crates/app-iced`(iced 0.14) | workspace 里**唯一**的 GUI bin;发布流水线把文件落成 `unlucky-launcher_<版本>_<平台>_<架构>[.exe]`,归档里的二进制名是 `unlucky-launcher`;子命令分发同款 | | `unlucky-launcher-iced` | `crates/app-iced`(iced 0.14) | workspace 里**唯一**的 GUI bin;发布流水线把文件落成 `unlucky-launcher_<版本>_<平台>_<架构>`(两个 Windows 槽是裸 `.exe`,其余四个 Linux / macOS 槽是 `.tar.gz`),归档里的二进制名是 `unlucky-launcher`;子命令分发同款 |
| `unlucky-launcher` | `crates/app`(Slint) | **历史**:该 crate 已被 workspace `exclude`,这个 bin 不再被构建或分发;`v0.1.0` 的资产是最后一批 Slint 版 | | `unlucky-launcher` | `crates/app`(Slint) | **历史**:该 crate 已被 workspace `exclude`,这个 bin 不再被构建或分发;`v0.1.0` 的资产是最后一批 Slint 版 |
| `ull` | `crates/cli` | 同一套命令的零 UI 构建,作为独立资产随发布分发 | | `ull` | `crates/cli` | 同一套命令的零 UI 构建,作为独立资产随发布分发 |
`unlucky-launcher` 与 `ull` 不是重复品:开窗时 GUI 二进制要用图形栈(X11 / Wayland / GL 走 GUI 二进制与 `ull` 不是重复品。归档解压出来那个二进制叫 `unlucky-launcher`;Windows 上是裸的
`unlucky-launcher_<版本>_<平台>_<架构>.exe`。开窗时 GUI 二进制要用图形栈(X11 / Wayland / GL 走
`dlopen`,启动时直接链接 `libfontconfig`);`ull` 除了 glibc 什么都不需要,所以在没有窗口的服务器、 `dlopen`,启动时直接链接 `libfontconfig`);`ull` 除了 glibc 什么都不需要,所以在没有窗口的服务器、
CI 容器上跑得起来。这个地板是 glibc ≥ 2.35(Linux 槽位在 Ubuntu 22.04 上构建),更老的发行版——以及 CI 容器上跑得起来。这个地板是 glibc ≥ 2.35(Linux 槽位在 Ubuntu 22.04 上构建),更老的发行版——以及
根本不在发布矩阵里的 Android/Termux——得源码自建(`packaging/README.md` §4、§9)。没有桌面就用 `ull`, 根本不在发布矩阵里的 Android/Termux——得源码自建(`packaging/README.md` §4、§9)。没有桌面就用 `ull`,
@@ -159,7 +161,8 @@ cargo build --release # bin 落在 target/relea
- `unlucky-launcher-iced`——GUI(iced)。它同时也是 CLI:同一个二进制认上面列的全部子命令。名字里的 - `unlucky-launcher-iced`——GUI(iced)。它同时也是 CLI:同一个二进制认上面列的全部子命令。名字里的
`iced` 是 cargo 的,不是下载链接的:还欠「翻牌」的只有这个 bin 名;发布文件里不带实现细节——流水线编 `iced` 是 cargo 的,不是下载链接的:还欠「翻牌」的只有这个 bin 名;发布文件里不带实现细节——流水线编
这个 bin,`packaging/make_artifacts.py` 落盘时改成 这个 bin,`packaging/make_artifacts.py` 落盘时改成
`unlucky-launcher_<版本>_<平台>_<架构>[.exe]`,归档里的二进制名是 `unlucky-launcher`。 `unlucky-launcher_<版本>_<平台>_<架构>`——两个 Windows 槽是裸 `.exe`,其余四个 Linux / macOS 槽
是 `.tar.gz`——归档里的二进制名是 `unlucky-launcher`。
- `unlucky-launcher`——**历史**:workspace 构建已不产出它(它属于被排除的 `crates/app`)。 - `unlucky-launcher`——**历史**:workspace 构建已不产出它(它属于被排除的 `crates/app`)。
`v0.1.0` 的资产是最后一批用这个名字发出去的构建。 `v0.1.0` 的资产是最后一批用这个名字发出去的构建。
- `ull`——CLI 的独立无 UI 构建:同一套命令、不链接图形栈、体积更小,给完全没有显示设备的机器用。 - `ull`——CLI 的独立无 UI 构建:同一套命令、不链接图形栈、体积更小,给完全没有显示设备的机器用。