Files
Alex Vanderveen 874df9b5bb release: ship bundled, compiled games from committed generated/ C
Retire the setup-host release model (CI wiped generated/ and shipped
emitters + sources + a wizard so every player regenerated and rebuilt the
title). Titles now commit generated/ and CI ships the compiled game.

- docs/ci/templates/game-release.yml replaces setup-release.yml: gate on
  committed game C (tools/ci/check_generated.sh), emit the OpenBIOS backend
  in CI (tools/ci/generate_openbios.sh), configure with
  PSXRECOMP_REQUIRE_GAME_C=ON and assert the full path was taken, package
  with tools/package_game_release.sh, verify the zip is a game not a kit.
- tools/package_game_release.sh: exe, assets, bundled OpenBIOS, configs, mod
  catalog + overlay toolchain via release_stage.py, notices; refuses sources,
  emitters, generated C, BIOS dumps. clear_generated.sh removed;
  package_setup_host.sh marked retired.
- Scaffold: gitignore templates track generated/, package_release.sh.in
  wrapper, setup_project.{sh,ps1} commit generated/ after Generate.
- Project Studio: audit flags ignored/untracked generated/, retail BIOS C
  and setup-host workflows; merge_gitignore un-ignores generated/; ops emit
  the bundled packager + workflow; generate_ci uses the new template.
- Docs: docs/ci/BUNDLED_RELEASES.md replaces HOST_ONLY_RELEASES.md.
- Tests: tools/tests/test_bundled_release_layout.py; fix pre-existing
  false positives in the packager-surface and overlay-static tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-30 17:11:14 -04:00

87 lines
1.8 KiB
Plaintext

# Suggested .gitignore for a PSXRecomp game repository.
# setup_project copies the New Project Layout equivalent (gitignore.in).
# Adjust title-specific disc dirs (e.g. /motk/ /bpe/) if you use them.
# Build outputs
/build/
/build-*/
/out/
/.happypath/
# generated/ is COMMITTED: releases ship the compiled game, and CI builds it
# from the game C in this repo (psxrecomp_cli.py generate, then git add
# generated). Never ignore it. Only the framework submodule's own generated/
# (BIOS backends) stays untracked, and that is the submodule's rule.
# psxrecomp_cli.py work areas (overlay toolchain download, static overlay
# shard evidence -- the latter holds bytes read from the disc).
/.cache/
# Release packaging
/release-stage/
/dist/
*.zip
# Local PlayStation assets (never commit)
/bios/
/isos/
/saves/
/prepared_disc/
/disc/
.settings/
# Disc / image / memcard formats
*.bin
*.cue
*.iso
*.img
*.sub
*.ccd
*.mcd
*.mcr
*.chd
*.car
SCPH*.BIN
bios.cfg
disc.cfg
rom.cfg
settings.toml
# Local analysis scratch — GPU frame captures / parity dumps (the default
# --out for tools/gpu_frame_*.py and gpu_parity.py) and asset rips pulled off
# the disc. Multi-hundred-MB binaries land here and are rejected by GitHub's
# 100 MB blob limit, and ripped disc content must never be committed at all.
/analysis/
# Ghidra / local analysis
/ghidra/projects/
*.gpr
*.rep/
*.lock
*.lock~
# Editor / cache
.vs/
.vscode/
*.user
*.log
.DS_Store
__pycache__/
# Runtime artifacts from psx-runtime launches
psx_crash.txt
psx_last_run_report.json
psx_screenshot.bmp
psx_freeze_heartbeat.json
.psxrecomp_last_generate
.psxrecomp_write_probe
starvation_dump.jsonl
# Diagnostic dumps (root-level) — keep catalog / probe trackable
/*.json
/*.bmp
/*.png
!/catalog_identity.json
!/disc_probe.json
!/.recomp.json