
FEX hardly works on Termux as-is, but we should make sure to document how to update the packages otherwise we will quickly become outdated on their package management.
4.2 KiB
FEX tagged version (release) process
A FEX tagged version happens near the start of each month.
The tagged versioning is FEX-<YYMM>
with the month being the current month.
If a tagged version was being done on Sun, 02 Jan 2022
then the FEX version would be FEX-2201
There are multiple locations that need to be updated during a release
-
Github tagged release
-
Github releases page
-
fex-emu.org blog post
-
https://launchpad.net/~fex-emu/+archive/ubuntu/fex Ubuntu PPA
-
@FEX_Emu twitter account
-
Optional: Update the rootfs images
Github Steps
-
Check out the commit that will be the branch $ git checkout upstream/main
-
Make local main branch be the selected commit $ git branch -D main $ git checkout -b main
-
Run the release script $ Scripts/generate_release.sh
-
Push the branches upstream
- This requires administrative push rights
- Both the tag and the main branch needs to be committed $ git push upstream $CURRENT $ git push upstream main
Github releases page Steps
- Requires administrative rights
- Go to https://github.com/FEX-Emu/FEX/releases
- Click Draft a new release
- Copy and paste the tagged changelog in to the draft release markdown
- This was generated from the generate_release.sh script
- Clean the markdown to a desired level of combining and ordering
- Fairly trivial cleanups, it's more just a developer focused changelog
- Click publish release
fex-emu.org blog post steps
- clone https://github.com/FEX-Emu/fex-emu.org
- Copy the previous post from the _posts/ folder to a new markdown file
- Ensure correct date format in filename
- Copy github release pages markdown in to this
- Easy to forget areas:
- Title text section
- See Release notes top section, links to github release tag
- See detailed changelog at the bottom, linking to github raw revision comparison
- Short blurb in the top paragraph if desired
- push new md file to the repo. Either in direct push or PR
- Jekyll will automatically regenerate the website with a github action
- Verify that the post shows up on the site at fex-emu.org
Launchpad PPA steps
Follow the steps in: https://github.com/FEX-Emu/FEX-ppa/blob/main/README_ppa.md
- Requires PPA GPG key signing access
- Wait the 20-30 minutes for Ubuntu PPA to build and publish the binaries
Termux package update steps
- Clone https://github.com/termux/termux-packages
- Update the package script with thew new version tag (https://github.com/termux/termux-packages/blob/master/packages/fex/build.sh)
- !!! Test the build locally on an Android device !!!
- Check the wiki for a command to run in the local changed repo on-device
- https://github.com/termux/termux-packages/wiki/Building-packages#how-to-build-package
- Submit a PR to upstream on github to get it picked up
@FEX_Emu twitter account steps
- Requires @FEX_Emu twitter account access
- Create a tweet with some small blurb/sizzle text about some relevant changes in this tagged version
- Link to the fex-emu.org blog post about the change
RootFS image updating
-
This doesn't typically need to be done on a monthly basis
-
This lives in https://github.com/FEX-Emu/RootFS
-
Follow the Build_Data file's information for how to generate an image using
build_image.py
- This gives a squashfs image for the rootfs
-
Use FEXRootFSFetcher <image.sqsh> to generate the xxhash for the image
-
Update
https://rootfs.fex-emu.org/file/fex-rootfs/RootFS_links.txt
with the new rootfs image and hash- This currently lives in a private FEX-Emu backblaze bucket with cloudflare servicing it.
- Never publically give the direct backblaze link to the file. Will cause BW costs to skyrocket
- Always pass through cloudflare
-
Upload new image to Backblaze using the b2 upload tool
- b2 upload-file <image.sqsh>
/<image.sqsh>
- b2 upload-file <image.sqsh>
-
Upload the new RootFS_links.txt
- Lives in the root of the bucket
- b2 upload-file RootFS_links.txt RootFS_links.txt
-
Once uploaded it should propagate immediately
-
Might be worth thinking about the coherency problem of updating the hash versus image independently if overwriting an image
- Need to be careful about it to not break anyone in the process of downloading an image