FEX/docs/ReleaseProcess.md
Elias James Howell b953433404 fix spelling errors
Fixing some minor spelling errors which should not affect functionality but improve the overall quality of documentation.
2023-07-13 11:23:59 -04:00

4.4 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 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

Launchpad PPA steps

Follow the steps in: https://github.com/FEX-Emu/FEX-ppa/blob/main/README.md

  • Requires PPA GPG key signing access
  • Wait the 20-30 minutes for Ubuntu PPA to build and publish the binaries

ArchLinux AUR package

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.com blog post steps

  • clone https://github.com/FEX-Emu/fex-emu.com
  • 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.com

Termux package update steps

@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.com 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.com/file/fex-rootfs/RootFS_links.json with the new rootfs image and hash

    • This currently lives in a private FEX-Emu backblaze bucket with cloudflare servicing it.
    • Never publicly 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>
  • Upload the new RootFS_links.json

    • Lives in the root of the bucket
    • b2 upload-file RootFS_links.json RootFS_links.json
  • 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