From 38099a5ab75dcdcd5d2dfd79b3c926614cbc44a0 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Mon, 3 Feb 2025 22:16:51 +0900 Subject: [PATCH 01/11] METAINFO: updated description and 0.9.0b release date --- net.retrodeck.retrodeck.metainfo.xml | 37 +++++++++++----------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/net.retrodeck.retrodeck.metainfo.xml b/net.retrodeck.retrodeck.metainfo.xml index 587bc20e..a8a8471f 100644 --- a/net.retrodeck.retrodeck.metainfo.xml +++ b/net.retrodeck.retrodeck.metainfo.xml @@ -36,29 +36,22 @@ -

What is Retrodeck?

-

RetroDECK is an emulation and retro gaming solution to catalog and play your game collection directly from Linux in one unified application. - It's inspired by other embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera. - RetroDECK is powered by EmulationStation Desktop Edition, that uses RetroArch and other standalone emulators to allow you to import and play your favorite games in a tidy environment. - No other software is needed as everything it's already included in one package!

-

BETA NOTICE: RetroDECK is still in Beta and the team is actively developing and adding more features. - The primary focus during the beta period is on SteamOS and the Steam Deck but we hope to expand to more devices and general Linux desktop in the future

-

NOTE: It can be run on Linux desktop right now but there will be some manual configurations needed for input, storage location and other tiny hickups.

-

- INSTALLATION INSTRUCTIONS FOR THE STEAM DECK: - 1. Start RetroDECK from the Desktop mode (only needed for the initial first time configuration) - 2. Add RetroDECK to your Steam Library by pressing "Add a non-steam game to my library" - 3. Download the offical RetroDECK controller profile from Steam - 4. [OPTIONAL] Download Steam Grids graphics for RetroDECK with BoilR -

-

For more detailed information check our wiki: - https://github.com/RetroDECK/RetroDECK/wiki

+

RetroDECK is an emulation and retro gaming application powered by the ES-DE Frontend that allows you to catalog and play your game collection directly on Linux in one unified experience. It's inspired by other embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera. The goal is to have everything you need included in one package, so no other software is required.

+

Currently in Beta, RetroDECK focuses on SteamOS, Steam Deck, and Linux Desktop. It uses Steam Input for controller inputs and hotkeys. For the best experience, play and launch RetroDECK via Steam, though manual tweaks via RetroDECK Configurator may be needed if played without it.

+

Thanks to the RetroENGINE, RetroDECK can be used as a headless engine, and thanks to Steam Sync you can synchronize your favorites as non-Steam games (powered by Steam ROM Manager).

+

What is it in detail? + https://retrodeck.readthedocs.io/en/latest/wiki_about/what-is-retrodeck/

+

How-to: Get Started using RetroDECK + https://retrodeck.readthedocs.io/en/latest/wiki_general/retrodeck-start/

If you want to sponsor the project: https://www.patreon.com/RetroDECK

-

If you want to join the RetroDECK community check our:

-

Reddit: https://www.reddit.com/r/RetroDECK/

-

Discord: https://discord.gg/WDc5C9YWMx - (If you want to help out with the project join the "i-want-to-help" channel)

+

The RetroDECK Community:

+

Blog: https://retrodeck.readthedocs.io/en/latest/blog/

+

Discord: https://discord.gg/WDc5C9YWMx

+

Matrix: https://matrix.to/#/#retrodeck:matrix.org

+

Lemmy Community: https://lemmy.zip/c/retrodeck

+

Subreddit: https://www.reddit.com/r/retrodeck

+

Bluesky: https://bsky.app/profile/retrodeck.net

#94a6fb @@ -67,7 +60,7 @@ GPL-3.0 CC0-1.0 - + https://github.com/RetroDECK/RetroDECK/releases/tag/0.9.0b

New Additions:

From f58d21d8eed67f41e4a74482c4319cd9ae58d3fd Mon Sep 17 00:00:00 2001 From: XargonWan Date: Mon, 3 Feb 2025 22:20:47 +0900 Subject: [PATCH 02/11] FLATHUB: rerouting artiacts on our new Artifacts repo --- .github/workflows/build_retrodeck.yml | 30 ++++++++++++++++++++++++++- automation_tools/flathub_push_main.sh | 4 ++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_retrodeck.yml b/.github/workflows/build_retrodeck.yml index a1311e98..e2244481 100644 --- a/.github/workflows/build_retrodeck.yml +++ b/.github/workflows/build_retrodeck.yml @@ -278,6 +278,19 @@ jobs: - name: Create Bundle run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh" + # TODO: Until we add support for Flathub-beta this is restricted to main + - name: Create Artifact for Flathub + if: github.ref == 'refs/heads/main' + run: | + if [[ "$GITHUB_REF" == "refs/heads/main" ]]; then + artifact_name="RetroDECK-Artifact" + else + artifact_name="RetroDECK-Artifact-cooker" + fi + tar -czf ${GITHUB_WORKSPACE}/${artifact_name}.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker . + hash=($(sha256sum ${GITHUB_WORKSPACE}/${artifact_name}.tar.gz)) + echo $hash > ${GITHUB_WORKSPACE}/${artifact_name}.sha + # Upload artifacts for other jobs - name: Upload Build Artifacts uses: actions/upload-artifact@v4 @@ -287,7 +300,8 @@ jobs: path: | RetroDECK*.flatpak RetroDECK*.flatpak.sha - RetroDECK*Artifact.tar.gz + RetroDECK-Artifact*.tar.gz + RetroDECK-Artifact*.sha GitHub-publish: runs-on: ubuntu-latest @@ -334,6 +348,20 @@ jobs: repo: ${{ env.REPO_NAME }} token: ${{ steps.generate-rekku-token.outputs.token }} + # Publish Artifacts + - name: Publish Artifacts + uses: ncipollo/release-action@v1 + with: + tag: ${{ env.TAG }} + name: "RetroDECK Artifacts - ${{ env.TAG }}" + body: "Flathub artifacts for version ${{ env.TAG }}" + artifacts: "retrodeck-artifacts/RetroDECK-Artifact*.tar.gz,retrodeck-artifacts/RetroDECK-Artifact*.sha" + allowUpdates: true + omitBodyDuringUpdate: true + makeLatest: ${{ env.MAKE_LATEST }} + repo: Artifacts + token: ${{ steps.generate-rekku-token.outputs.token }} + - name: Post PR comment with artifacts if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request' uses: marocchino/sticky-pull-request-comment@v2 diff --git a/automation_tools/flathub_push_main.sh b/automation_tools/flathub_push_main.sh index 2a398c5f..bb2ee12f 100755 --- a/automation_tools/flathub_push_main.sh +++ b/automation_tools/flathub_push_main.sh @@ -13,8 +13,8 @@ fi rd_branch="main" flathub_target_repo='flathub/net.retrodeck.retrodeck' retrodeck_repo='RetroDECK/RetroDECK' -artifacts_sha_link="https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.sha" -artifacts_link="https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.tar.gz" +artifacts_sha_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifacts.sha").browser_download_url') +artifacts_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifacts.tar.gz").browser_download_url') if -d "$gits_folder"; then rm -rf "$gits_folder" From e5087d98ef55b8de9e19f4b5a258ef51e869d4f8 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Mon, 3 Feb 2025 22:24:05 +0900 Subject: [PATCH 03/11] METAINFO: updated description --- net.retrodeck.retrodeck.metainfo.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net.retrodeck.retrodeck.metainfo.xml b/net.retrodeck.retrodeck.metainfo.xml index a8a8471f..a940e0ac 100644 --- a/net.retrodeck.retrodeck.metainfo.xml +++ b/net.retrodeck.retrodeck.metainfo.xml @@ -38,7 +38,7 @@

RetroDECK is an emulation and retro gaming application powered by the ES-DE Frontend that allows you to catalog and play your game collection directly on Linux in one unified experience. It's inspired by other embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera. The goal is to have everything you need included in one package, so no other software is required.

Currently in Beta, RetroDECK focuses on SteamOS, Steam Deck, and Linux Desktop. It uses Steam Input for controller inputs and hotkeys. For the best experience, play and launch RetroDECK via Steam, though manual tweaks via RetroDECK Configurator may be needed if played without it.

-

Thanks to the RetroENGINE, RetroDECK can be used as a headless engine, and thanks to Steam Sync you can synchronize your favorites as non-Steam games (powered by Steam ROM Manager).

+

Thanks to the built-in RetroENGINE, RetroDECK can be used as a headless engine, and with Steam Sync, you can synchronize your favorites as non-Steam games (powered by Steam ROM Manager).

What is it in detail? https://retrodeck.readthedocs.io/en/latest/wiki_about/what-is-retrodeck/

How-to: Get Started using RetroDECK From c75f9d325d4eb84b368ee3590ce0d2d5731da813 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 4 Feb 2025 07:11:08 +0900 Subject: [PATCH 04/11] WORKFLOW: Added Artifacts access to Rekku --- .github/workflows/build_retrodeck.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_retrodeck.yml b/.github/workflows/build_retrodeck.yml index e2244481..50c40f7c 100644 --- a/.github/workflows/build_retrodeck.yml +++ b/.github/workflows/build_retrodeck.yml @@ -318,7 +318,7 @@ jobs: with: app-id: ${{ vars.REKKU_APP_ID }} private-key: ${{ secrets.REKKU_PRIVATE_KEY }} - repositories: "RetroDECK,Cooker" + repositories: "RetroDECK,Cooker,Artifacts" owner: "RetroDECK" - name: Download all workflow run artifacts @@ -462,4 +462,4 @@ jobs: # Uninstall RetroDECK Flatpak - Not needed on a thorwaway ubuntu-latest # - name: Uninstall RetroDECK Flatpak # run: | - # flatpak remove --user --noninteractive -y net.retrodeck.retrodeck \ No newline at end of file + # flatpak remove --user --noninteractive -y net.retrodeck.retrodeck From 3c6a98813518716517da2f3461d602d0e54b6ab9 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 4 Feb 2025 09:59:36 +0900 Subject: [PATCH 05/11] FLATHUB_PUSH: fixed if [skip ci] --- automation_tools/flathub_push_main.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automation_tools/flathub_push_main.sh b/automation_tools/flathub_push_main.sh index bb2ee12f..c316700c 100755 --- a/automation_tools/flathub_push_main.sh +++ b/automation_tools/flathub_push_main.sh @@ -16,7 +16,7 @@ retrodeck_repo='RetroDECK/RetroDECK' artifacts_sha_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifacts.sha").browser_download_url') artifacts_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifacts.tar.gz").browser_download_url') -if -d "$gits_folder"; then +if [ -d "$gits_folder" ] ; then rm -rf "$gits_folder" fi mkdir -vp "$gits_folder" From c8ecd1d50f6719b39a4d09177178a727f3691e4b Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 4 Feb 2025 10:20:05 +0900 Subject: [PATCH 06/11] FLATHUB_PUSH: fixed artifact file retrival [skip ci] --- automation_tools/flathub_push_main.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/automation_tools/flathub_push_main.sh b/automation_tools/flathub_push_main.sh index c316700c..134c5cff 100755 --- a/automation_tools/flathub_push_main.sh +++ b/automation_tools/flathub_push_main.sh @@ -13,8 +13,8 @@ fi rd_branch="main" flathub_target_repo='flathub/net.retrodeck.retrodeck' retrodeck_repo='RetroDECK/RetroDECK' -artifacts_sha_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifacts.sha").browser_download_url') -artifacts_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifacts.tar.gz").browser_download_url') +artifacts_sha_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifact.sha").browser_download_url') +artifacts_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifact.tar.gz").browser_download_url') if [ -d "$gits_folder" ] ; then rm -rf "$gits_folder" From a5bb5a03a0f13d460084b22ba36a3a488913ca87 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 4 Feb 2025 10:22:20 +0900 Subject: [PATCH 07/11] FLATHUB_PUSH: comments and cleanup [skip ci] --- automation_tools/flathub_push_main.sh | 31 +++++++++++++++++++-------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/automation_tools/flathub_push_main.sh b/automation_tools/flathub_push_main.sh index 134c5cff..4c8f955c 100755 --- a/automation_tools/flathub_push_main.sh +++ b/automation_tools/flathub_push_main.sh @@ -1,51 +1,60 @@ #!/bin/bash -# EDITABLES: -#rd_branch=${GITHUB_REF_NAME} # should be main - +# Check if GITHUB_WORKSPACE is set, if not, set gits_folder to /tmp/gits if [ -z "${GITHUB_WORKSPACE}" ]; then gits_folder="${GITHUB_WORKSPACE}/tmp/gits" # without last / else gits_folder="/tmp/gits" # without last / fi - rd_branch="main" flathub_target_repo='flathub/net.retrodeck.retrodeck' retrodeck_repo='RetroDECK/RetroDECK' + +# Get the latest artifact SHA and download URL from the RetroDECK Artifacts repository artifacts_sha_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifact.sha").browser_download_url') artifacts_link=$(curl -s https://api.github.com/repos/RetroDECK/Artifacts/releases/latest | jq -r '.assets[] | select(.name == "RetroDECK-Artifact.tar.gz").browser_download_url') +# Remove existing gits_folder if it exists and create a new one if [ -d "$gits_folder" ] ; then rm -rf "$gits_folder" fi mkdir -vp "$gits_folder" cd "$gits_folder" && echo "Moving in $gits_folder" || exit 1 + +# Remove existing flathub and RetroDECK directories if they exist if [ -d flathub ]; then rm -rf "$gits_folder/flathub" fi if [ -d flathub ]; then rm -rf "$gits_folder/RetroDECK" fi + +# Clone the flathub and RetroDECK repositories git clone --depth=1 --recursive "https://github.com/$flathub_target_repo.git" "$gits_folder/flathub" git clone --depth=1 --recursive "https://github.com/$retrodeck_repo.git" "$gits_folder/RetroDECK" +# Get the latest release name, preferring prereleases if available relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases | jq -r '[.[] | select(.prerelease == true)][0].tag_name // empty') if [ -z "$relname" ]; then relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases/latest | jq -r .tag_name) fi echo "Using release: $relname" +# Checkout the main branch in the RetroDECK repository cd "$gits_folder/RetroDECK" && echo "Moving in $gits_folder/RetroDECK" && git checkout "$rd_branch" +# Create a new branch in the flathub repository with the release name cd "$gits_folder"/flathub && echo "Moving in $gits_folder/flathub" || exit 1 git checkout -b "$relname" echo "Current directory: $(pwd)" ls -lah -git rm -rf * -git clean -fxd # restroing git index -# Copying only a few files as the others are cloned by git in retrodeck.sh +# Remove all files in the flathub repository and clean the git index +git rm -rf * +git clean -fxd # restoring git index + +# Copy specific files from the RetroDECK repository to the flathub repository files_to_copy=('LICENSE' 'README.md' 'other_licenses.txt' 'net.retrodeck.retrodeck.yml' 'net.retrodeck.retrodeck.metainfo.xml') for file in "${files_to_copy[@]}"; do if ! cp -fv "$gits_folder/RetroDECK/$file" "$gits_folder/flathub"; then @@ -56,7 +65,7 @@ done cd "$gits_folder/flathub" && echo "Moving in $gits_folder/flathub" || exit 1 ls -lah -# Creating the manifest for flathub +# Create the manifest for flathub manifest='net.retrodeck.retrodeck.yml' sed -n '/cleanup:/q;p' $gits_folder/RetroDECK/net.retrodeck.retrodeck.yml > $manifest sed -i '/^[[:space:]]*#/d' $manifest @@ -74,18 +83,20 @@ modules: sha256: $(curl -sL "$artifacts_sha_link") EOF +# Create a flathub.json file specifying the architecture cat << EOF >> flathub.json { "only-arches": ["x86_64"] } EOF -# If we are in a GitHub workflow... +# If running in a GitHub workflow, configure git and authenticate with GitHub if [ -n "${GITHUB_WORKFLOW}" ]; then git config --global user.name "$GIT_NAME" git config --global user.email "$GIT_MAIL" git config --global credential.helper store gh auth login +# If not in a GitHub workflow, prompt the user for git configuration if not already set elif [[ -z $(git config --get user.name) || -z $(git config --get user.email) ]]; then read -p "No git user.name set, please enter your name: " git_username git config --local user.name "$git_username" @@ -93,9 +104,11 @@ elif [[ -z $(git config --get user.name) || -z $(git config --get user.email) ]] git config --local user.email "$git_email" fi +# Commit the changes and push to the new branch git add . git commit -m "Update RetroDECK to v$relname from RetroDECK/$rd_branch" +# Push the changes to the remote repository, using authentication if in a GitHub workflow if [ -n "${GITHUB_WORKFLOW}" ]; then git remote set-url origin https://x-access-token:${GH_TOKEN}@github.com/${flathub_target_repo} git push --force origin "$relname" From 44754749a80ba2dd6e1f00fd8d9522ae52699758 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 4 Feb 2025 10:25:37 +0900 Subject: [PATCH 08/11] FLATHUB_PUSH: fix prerelease fetch [skip ci] --- automation_tools/flathub_push_main.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/automation_tools/flathub_push_main.sh b/automation_tools/flathub_push_main.sh index 4c8f955c..68b63fca 100755 --- a/automation_tools/flathub_push_main.sh +++ b/automation_tools/flathub_push_main.sh @@ -34,8 +34,8 @@ fi git clone --depth=1 --recursive "https://github.com/$flathub_target_repo.git" "$gits_folder/flathub" git clone --depth=1 --recursive "https://github.com/$retrodeck_repo.git" "$gits_folder/RetroDECK" -# Get the latest release name, preferring prereleases if available -relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases | jq -r '[.[] | select(.prerelease == true)][0].tag_name // empty') +# Get the latest release name, preferring prereleases if available and published after 2025-01-01 +relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases | jq -r '[.[] | select(.prerelease == true and (.published_at | fromdateiso8601) > (strptime("2025-01-01T00:00:00Z") | mktime))][0].tag_name // empty') if [ -z "$relname" ]; then relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases/latest | jq -r .tag_name) fi From 83145ddba4e75bde6cb04239935dcd2daf81457d Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 4 Feb 2025 10:34:17 +0900 Subject: [PATCH 09/11] WORKFLOW: fixed artifact folder name --- .github/workflows/build_retrodeck.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_retrodeck.yml b/.github/workflows/build_retrodeck.yml index 50c40f7c..9864c6fb 100644 --- a/.github/workflows/build_retrodeck.yml +++ b/.github/workflows/build_retrodeck.yml @@ -284,10 +284,12 @@ jobs: run: | if [[ "$GITHUB_REF" == "refs/heads/main" ]]; then artifact_name="RetroDECK-Artifact" + artifact_folder="retrodeck-flatpak-main" else artifact_name="RetroDECK-Artifact-cooker" + artifact_folder="retrodeck-flatpak-cooker" fi - tar -czf ${GITHUB_WORKSPACE}/${artifact_name}.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker . + tar -czf ${GITHUB_WORKSPACE}/${artifact_name}.tar.gz -C ${GITHUB_WORKSPACE}/"$artifact_folder" . hash=($(sha256sum ${GITHUB_WORKSPACE}/${artifact_name}.tar.gz)) echo $hash > ${GITHUB_WORKSPACE}/${artifact_name}.sha From 25bd92f8db2c18b6053b0a172be7a277a87b143e Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 4 Feb 2025 10:34:36 +0900 Subject: [PATCH 10/11] METAINFO: bumped date --- net.retrodeck.retrodeck.metainfo.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net.retrodeck.retrodeck.metainfo.xml b/net.retrodeck.retrodeck.metainfo.xml index a940e0ac..f750e227 100644 --- a/net.retrodeck.retrodeck.metainfo.xml +++ b/net.retrodeck.retrodeck.metainfo.xml @@ -60,7 +60,7 @@ GPL-3.0 CC0-1.0 - + https://github.com/RetroDECK/RetroDECK/releases/tag/0.9.0b

New Additions:

From ae401466ab61db79a39b354dec5b47d6cbf617ae Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 4 Feb 2025 14:09:08 +0900 Subject: [PATCH 11/11] FLATHUB_PUSH: fixed pre-release matching [skip ci] --- automation_tools/flathub_push_main.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automation_tools/flathub_push_main.sh b/automation_tools/flathub_push_main.sh index 68b63fca..dda57c18 100755 --- a/automation_tools/flathub_push_main.sh +++ b/automation_tools/flathub_push_main.sh @@ -35,7 +35,7 @@ git clone --depth=1 --recursive "https://github.com/$flathub_target_repo.git" "$ git clone --depth=1 --recursive "https://github.com/$retrodeck_repo.git" "$gits_folder/RetroDECK" # Get the latest release name, preferring prereleases if available and published after 2025-01-01 -relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases | jq -r '[.[] | select(.prerelease == true and (.published_at | fromdateiso8601) > (strptime("2025-01-01T00:00:00Z") | mktime))][0].tag_name // empty') +relname=$(curl -s "https://api.github.com/repos/$retrodeck_repo/releases" | jq -r '[.[] | select(.prerelease == true and (.published_at | fromdateiso8601) > 1735689600)][0].tag_name // empty') if [ -z "$relname" ]; then relname=$(curl -s https://api.github.com/repos/$retrodeck_repo/releases/latest | jq -r .tag_name) fi