Files
Ryan Houdek d323032ec9 docs: Remove Arch from the release process.
On December 6th 2024, the fex-emu packages got a deletion request:

> MarsSeed [1] filed a deletion request for fex-emu [2]:
>
> ARM-only package.
> This should be submitted to ArchLinuxARM.org [a], not to AUR - see
> quote from ArchWiki [b]:
>
>     "Packages that do not support the x86_64 architecture
>     are not allowed in the AUR."
>
> [a]:
> https://archlinuxarm.org/forum/viewforum.php?f=4
> [b]:
> https://wiki.archlinux.org/title/AUR_submission_guidelines#Rules_of_submission
>
> [1] https://aur.archlinux.org/account/MarsSeed/
> [2] https://aur.archlinux.org/pkgbase/fex-emu/

This is due to a rule clarification that occured in Arch's forum on November 25th: https://lists.archlinux.org/archives/list/aur-general@lists.archlinux.org/thread/IRZ2LWYX3ECPJQZJXMLAP6JIKL6HLHPZ/#GMYC74CRSFH7GGNENEUOODZUPWHOMX7A

On December 3rd the package submission guidelines on their wiki was
updated to mandate x86-64 support:
https://wiki.archlinux.org/index.php?title=AUR_submission_guidelines&diff=prev&oldid=822050

As of today, December 7th, 2024 the packages have been removed from AUR
due to only supporting aarch64.

> Muflone [1] deleted fex-emu [2].
>
> You will no longer receive notifications about this package.
>
> [1] https://aur.archlinux.org/account/Muflone/
> [2] https://aur.archlinux.org/pkgbase/fex-emu/

ArchLinux is no longer a supported distro for FEX, remove it from the release processes documentation.
2024-12-07 16:15:22 -08:00

3.7 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

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

@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