mirror of
https://github.com/LowganDev/PlayfinPS4.git
synced 2026-10-18 02:01:01 +02:00
3.2 KiB
3.2 KiB
Release process
The checklist for a release; release tags are the version number without "v" (1.0.0).
1. Prepare the version
project(Playfin VERSION x.y.z ...)inCMakeLists.txt(the app's version and the package's APP_VER follow;version_testchecks the app's).CHANGELOG.md: the version's section with its date.- The PS4 dependency packages: when
scripts/ps4/deps.txtchanged, build them withscripts/ps4/build-deps.shand upload the new ones to thedepsrelease (see "Dependency packages" below). A changed recipe always gets a newpkgrel, so a package name never stands for two builds. - Run the CI workflow (Actions → CI → Run workflow).
2. Check
ctest --preset linux-debugandctest --preset linux-asangreen;cmake --build --preset linux-fuzzandctest --preset linux-fuzz(30 s per target) without findings.scripts/build-ps4.sh: the imports, eboot and licences checks pass (a library linked without a licence line inresources/licenses/manifest.txtfails the build).- Licences: every component of
resources/licenses/manifest.txtmatches the versions inscripts/ps4/deps.txtand the pacbrew image;THIRD_PARTY_LICENSESagrees. - Security:
docs/security.mdreviewed for what changed since the last release (dependencies' versions against their published vulnerabilities). - On the console (back up saves and settings first, never cut the power during an install, prefer external
storage): install the package, sign in, home, a library, a film (direct play) and an episode (subtitles, skip
intro, next episode), a transcode, music in the background, a Live TV channel, settings (accent, language),
the licences page.
playfin.logwithout errors.
3. Publish
- Commit "build: Playfin x.y.z", tag
x.y.z, push the tag. - GitHub release "Playfin x.y.z" on the tag, with:
IV0001-PLFN00000_00-PLFN000000100000.pkg;- the dependencies' source: an archive of the upstream tarballs named in
scripts/ps4/*/PKGBUILD(and the pacbrew image's libraries: FriBidi, zlib, libsamplerate) with the patches, and the OpenOrbis toolchain's source at the version in the pacbrew image (GPL-3.0; itscrt1.o,crti.oandcrtn.oare linked intoeboot.bin), so that the GPL and LGPL components' corresponding source is offered with the binary; - the changelog section as notes.
- For the first public release: make the repository public, then switch CI on (add
pushandpull_requesttoon:in.github/workflows/ci.yml; it runs onworkflow_dispatchonly until then).
Dependency packages
scripts/build-ps4.sh installs the packages listed in scripts/ps4/deps.txt from build-deps/ when they are
there, else from the deps release (PS4_DEPS_URL overrides it). To publish packages built locally:
scripts/ps4/build-deps.sh # or only the changed ones: scripts/ps4/build-deps.sh libass
gh release upload deps build-deps/ps4-openorbis-<name>-<version>-<pkgrel>-any.pkg.tar.gz -R LowganDev/PlayfinPS4
The release is a pre-release on the tag deps; it was created once with
gh release create deps --prerelease --title "PS4 dependencies" --notes "..." -R LowganDev/PlayfinPS4.