Add verified multipart Linux and Windows GitHub releases
This commit is contained in:
1 parent
443d77852b
commit
d1f5b7e5a2
8 files changed
+1152
-1
No files matched your search
@@ -0,0 +1,86 @@
|
||||
# Downloadable releases
|
||||
|
||||
The GitHub release provides playable Linux x86_64 and Windows x86_64 packages.
|
||||
Cargo, Python, the old engine and a Git checkout are unnecessary for play.
|
||||
|
||||
The approved HD artwork makes the shared data larger than GitHub's
|
||||
[2 GiB limit per release asset](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases).
|
||||
Each platform ZIP therefore contains the executable, platform libraries, all
|
||||
45 mods with SD/HD artwork and audio, and the source/docs. Shared data ZIPs
|
||||
contain the complete unchanged original catalog, approved HD pack, briefings
|
||||
and the runtime manifest's other data files. Extracting them together produces
|
||||
one self-contained `RustRaptor` folder. A single ZIP is only part of the download.
|
||||
|
||||
## Install
|
||||
|
||||
Download `Install-Windows.ps1` or `Install-Linux.sh` from the release. Review it,
|
||||
then run it in a directory without an existing `RustRaptor` folder. It downloads
|
||||
your platform ZIP and every shared data ZIP, checks each archive and every extracted payload against the versioned
|
||||
`release-manifest.json` (and publishes `SHA256SUMS` for manual verification),
|
||||
and extracts them into the same destination. Downloads are processed one at a
|
||||
time. Linux needs Bash and Python 3.8 or later for this optional installer; Windows uses
|
||||
built-in Windows PowerShell 5.1 and .NET. The Windows helper uses explicit extended
|
||||
paths to retain long accepted proof filenames without an admin policy change.
|
||||
A failed install preserves its partial folder for inspection; move or remove that
|
||||
folder before retrying. All archives reject unexpected paths, links and file collisions.
|
||||
|
||||
```powershell
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-Windows.ps1
|
||||
```
|
||||
|
||||
```sh
|
||||
bash ./Install-Linux.sh
|
||||
```
|
||||
|
||||
For manual installation:
|
||||
|
||||
1. Download **one** platform ZIP: `RustRaptor-windows-x86_64.zip` or
|
||||
`RustRaptor-linux-x86_64.zip`.
|
||||
2. Download **every** `RustRaptor-data-NN-of-TT.zip` and `SHA256SUMS` from
|
||||
the **same release**. Do not mix snapshots.
|
||||
3. Verify the downloaded hashes. On Windows use `Get-FileHash -Algorithm SHA256`;
|
||||
on Linux use `sha256sum`. Compare them with `SHA256SUMS`.
|
||||
4. Extract every downloaded ZIP into the **same parent directory**. Every ZIP
|
||||
starts with `RustRaptor/`; do not make a different subfolder for each ZIP.
|
||||
5. Start `RustRaptor/run.cmd` on Windows or `RustRaptor/run.sh` on Linux.
|
||||
|
||||
Keep enough storage for the installed folder plus one data ZIP during install.
|
||||
The release notes state the exact installed/download sizes. Your pilots and
|
||||
settings stay in the separate `RaptorReplica` user profile directories.
|
||||
|
||||
## Maintainer export
|
||||
|
||||
Export only a clean, fully committed final tested commit with current Linux and Windows manifests.
|
||||
The exporter does not build, refresh the runtime, change manifests or upload.
|
||||
|
||||
```sh
|
||||
python3 tools/export_release.py plan --package . \
|
||||
--expected-commit FULL_TESTED_COMMIT --output /tmp/release-plan.json
|
||||
python3 tools/export_release.py archive --plan /tmp/release-plan.json \
|
||||
--asset RustRaptor-data-01-of-07.zip \
|
||||
--output /tmp/RustRaptor-data-01-of-07.zip \
|
||||
--receipt /path/to/receipts/RustRaptor-data-01-of-07.zip.json
|
||||
```
|
||||
|
||||
Use the actual volume count in the plan. Each asset is under 1.5 GB before ZIP
|
||||
overhead, is checked against every planned source SHA-256 while writing, and
|
||||
passes whole-archive CRC validation before a receipt is produced. The exporter
|
||||
retains Linux execute permissions. The exporter inventories selected source files without following symlinks and
|
||||
rejects non-regular members. It preserves every physical runtime-data file,
|
||||
including directories named `derived`; proof/lineage files already present in
|
||||
the runtime manifest remain included.
|
||||
|
||||
Create a draft release at the exact tested tag. Write, verify and upload one
|
||||
archive at a time, record its remote size/digest, then remove only that disposable
|
||||
export copy before producing the next. Keep receipts. After all assets exist:
|
||||
|
||||
```sh
|
||||
python3 tools/export_release.py checksums --plan /tmp/release-plan.json \
|
||||
--receipts /path/to/receipts --output /tmp/SHA256SUMS \
|
||||
--manifest-output /tmp/release-manifest.json --tag v0.1.0-preview.20261020
|
||||
```
|
||||
|
||||
Upload the versioned release manifest, checksum list and installers, check complete remote membership, and
|
||||
publish the draft only after all checks pass. Native Windows CI and local
|
||||
representative rendering/audio evidence retain their actual commit and scope;
|
||||
archive integrity checks do not imply a fresh full playthrough.
|
||||
Reference in new issue
Block a user