DKR-R v1.0.7 - COMPLETE RELEASE PIPELINE
====================================

The release uses one frozen, source-only composition for Windows x64, Linux
x86_64, Linux ARM64, Steam Deck and Android ARM64. Mac/iOS sources remain in
the repository, but no Apple package is produced in this release pass.

Do not edit RT64/N64ModernRuntime/N64Recomp checkouts, RecompiledFuncs or
RecompiledPatches. Approved dependency patches are applied only to isolated
build copies by the existing CMake pipeline. Do not rename a beta executable.

1. PREPARE YOUR PRIVATE INPUTS

Follow docs/BUILDING.md for locked tools/dependencies, both supported US ROM
revisions, generated normal v77/v80/RSP payloads and the complete owned v77/v80
outputs. Preserve exact generation policies and tool revisions. These are
private build inputs, never public source or player-package data.

Camera++ also requires the v77/v80 draw kernels and shadow-adapter inputs
generated by patches/camera-plus/scene_kernel_pipeline.py and
patches/camera-shadow/pipeline.py. Their byte contracts are recorded under
source-capsule-r2/manifest.json. Different prepared inputs must not be waved
through as the same release: investigate/rebaseline them explicitly.

2. RECONSTRUCT THE ACCEPTED FIRST-PARTY SOURCE

From this source checkout (Python 3.11+), run this as ONE command:

  python -B patches/release-prep/v1.0.7/capsule.py stage
    --output <NEW-capsule-directory>
    --camera-kernel-v77 <prepared-camera-v77>
    --camera-kernel-v80 <prepared-camera-v80>
    --shadow-kernel-v77 <prepared-shadow-v77>
    --shadow-kernel-v80 <prepared-shadow-v80>

The checked-in deltas reconstruct the exact accepted native layers from
canonical LF first-party source. Each base, delta result and prepared draw
input is checked. The capsule includes the original address-only references
needed by relative includes. No historical build/stage folders are consulted.
The verifier compares membership and hashes against the checked-in manifest,
not merely an editable generated receipt.

  python -B patches/release-prep/v1.0.7/capsule.py verify --output <capsule>

The export action is a maintainer-only operation for capturing a reviewed new
baseline. Its historical coordinates are NOT needed to build this release.
Do not run export just to silence a source/identity mismatch.

3. CONFIGURE AND COMPILE

Prepare a platform build directory with the normal pinned dependency paths,
toolchain and the explicit v77/v80 normal/owned/RSP generated-input options
documented in docs/BUILDING.md. Existing caches are not portable toolchains.
For a fresh tree pass these options to CMake before applying the release
configuration; use isolated output, never a protected source directory.

  python -B patches/release-prep/v1.0.7/release.py configure
    --build <platform-build> --capsule <capsule>
    --log <private-evidence>/configure.log --cmake <cmake-executable>

  python -B patches/release-prep/v1.0.7/release.py build
    --build <platform-build> --log <private-evidence>/build.log
    --cmake <cmake-executable> --jobs 4

The stable version is 1.0.7; all private qualification flags are off. The
normal/owned guest inputs are read-only. The Android-only Store adapter uses
platform HTTPS and portable libc++ snapshot/timestamp handling. Desktop Store
transport and the accepted water renderer body are not changed by that adapter.

Keep Linux's reconstructed capsule on the Linux filesystem for faster header
and receipt lookup. The same manifest reconstructs Windows/Linux source bytes;
absolute paths and compiler flags are not online identities.

4. ASSEMBLE PACKAGES

package_release.py assembles Windows/Linux from explicit runtime assets,
compiled binaries, an admitted platform-library/legal input and the current
README/release notes. It does not copy a previous package wholesale. Linux
AppImage construction uses only the inspected architecture-matching outer
runtime, never executes an AppImage, and rebuilds its filesystem payload.

prepare_android.py generates a lean APK packaging recipe. Specify the SDK/NDK,
SDL source, a NEW staging/products directory, release version 1.0.7 and a
versionCode above every previously distributed APK. This release uses 1070018,
above the last local beta's 1070017. Retain the distributed application ID and
signing certificate; compare signer fingerprints before delivery. Never
uninstall a user's app or generate a replacement signing key to force an update.

Do not ship an offline Player Guide, SDK, test fixtures, ROMs, saves, installed
mods, personal configuration, diagnostics, PDBs or accumulated playtest notes in
the game packages. Keep required legal notices. SDK/Bible/sample mods ship
separately. Generate ownership manifests AFTER final package contents, then
build archives and hashes. Do not edit already accepted/published archives.

Keep exact runtime/symbol pairs privately. Compare both per-revision rollback
IDs across every delivered native platform. Inspect PE/ELF/APK architecture,
metadata, dependencies, archive integrity and final ownership membership.

5. ACCEPTANCE AND PUBLISHING

These commands compile/package/inspect only. They do not run the game, a mod,
CTest, replays or benchmarks. Gameplay, GPU, controllers, online and physical
device acceptance belongs to the owner. RELEASE-VALIDATION.md records this
distinction; compilation does not establish Android/ARM performance parity.

Manual downloads can be delivered without update signatures. Automatic-update
metadata needs the existing trusted private signing key. Do not replace the
trust anchor or pretend a public key signs anything. Existing 1.0.7+beta readers
compare equal to stable 1.0.7, so those users need a manual stable upgrade.

Do not push main, create a tag or upload a GitHub release as an implicit part of
compilation. Preserve contributor authorship and the accepted baseline. Keep
the cleanup journal and recoverable backups under the owner's named F: backup.
