From f1dae3e62e02b4868ad3d1a9334a5195a6c0b4fd Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Wed, 9 Jul 2025 10:59:20 +0300 Subject: [PATCH 1/4] Test on Fedora linux --- .../{build_linux.yml => build_appimage.yml} | 2 +- .github/workflows/test_fedora.yml | 47 +++++++++++++++++++ .../{test_linux.yml => test_ubuntu.yml} | 2 +- 3 files changed, 49 insertions(+), 2 deletions(-) rename .github/workflows/{build_linux.yml => build_appimage.yml} (98%) create mode 100644 .github/workflows/test_fedora.yml rename .github/workflows/{test_linux.yml => test_ubuntu.yml} (98%) diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_appimage.yml similarity index 98% rename from .github/workflows/build_linux.yml rename to .github/workflows/build_appimage.yml index 64f13d21f..fa47054b0 100644 --- a/.github/workflows/build_linux.yml +++ b/.github/workflows/build_appimage.yml @@ -1,4 +1,4 @@ -name: BuildLinux +name: BuildAppimage on: workflow_dispatch diff --git a/.github/workflows/test_fedora.yml b/.github/workflows/test_fedora.yml new file mode 100644 index 000000000..f0adb1eed --- /dev/null +++ b/.github/workflows/test_fedora.yml @@ -0,0 +1,47 @@ +name: Fedora + +on: + push: + branches: + - main + - release + pull_request: + branches: + - main + - release + +jobs: + testFedora: + fail-fast: false + runs-on: ubuntu-latest + container: + image: fedora-rawhide + steps: + - name: Install Packages (dnf) + run: | + dnf -y update + dnf -y install adobe-source-sans-pro-fonts hunspell-en hunspell-en-GB hunspell-en-US + dnf -y install enchant2-devel hunspell-devel qt6-qttools-devel qt6-qtsvg-devel sed + dnf -y install python3-devel + - name: Checkout Source + uses: actions/checkout@v4 + - name: Install Dependencies (pip) + run: | + pip install -U -r requirements.txt -r tests/requirements.txt + - name: Fedora specific modifications + run: | + sed -i 's/self.spellLanguage = "en"/self.spellLanguage = "en_US"/g' novelwriter/config.py + sed -i 's/spellcheck = en/spellcheck = en_US/g' tests/reference/baseConfig_novelwriter.conf + sed -i 's/"lrelease"/"lrelease-qt6"/g' utils/assets.py + - name: Run Build Commands + run: | + python pkgutils.py qtlrelease + python pkgutils.py sample + - name: Run Tests + run: | + export QT_QPA_PLATFORM=offscreen + python -m pytest -v --cov=novelwriter --timeout=60 + - name: Upload to Codecov + uses: codecov/codecov-action@v5 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_ubuntu.yml similarity index 98% rename from .github/workflows/test_linux.yml rename to .github/workflows/test_ubuntu.yml index b13e19c1d..9d538afa2 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_ubuntu.yml @@ -1,4 +1,4 @@ -name: Linux +name: Ubuntu on: push: From 36ec721b1e6b30508c460fcdb16a2aade8719214 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 9 Jul 2025 12:37:55 +0200 Subject: [PATCH 2/4] Remove sed and fix bug in fedora yaml --- .github/workflows/test_fedora.yml | 10 ++++------ utils/assets.py | 13 ++++++++++++- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test_fedora.yml b/.github/workflows/test_fedora.yml index f0adb1eed..64f64aae6 100644 --- a/.github/workflows/test_fedora.yml +++ b/.github/workflows/test_fedora.yml @@ -12,7 +12,6 @@ on: jobs: testFedora: - fail-fast: false runs-on: ubuntu-latest container: image: fedora-rawhide @@ -28,11 +27,10 @@ jobs: - name: Install Dependencies (pip) run: | pip install -U -r requirements.txt -r tests/requirements.txt - - name: Fedora specific modifications - run: | - sed -i 's/self.spellLanguage = "en"/self.spellLanguage = "en_US"/g' novelwriter/config.py - sed -i 's/spellcheck = en/spellcheck = en_US/g' tests/reference/baseConfig_novelwriter.conf - sed -i 's/"lrelease"/"lrelease-qt6"/g' utils/assets.py + # - name: Fedora specific modifications + # run: | + # sed -i 's/self.spellLanguage = "en"/self.spellLanguage = "en_US"/g' novelwriter/config.py + # sed -i 's/spellcheck = en/spellcheck = en_US/g' tests/reference/baseConfig_novelwriter.conf - name: Run Build Commands run: | python pkgutils.py qtlrelease diff --git a/utils/assets.py b/utils/assets.py index 1849c6962..5d8f8de12 100644 --- a/utils/assets.py +++ b/utils/assets.py @@ -160,6 +160,14 @@ def updateTranslationSources(args: argparse.Namespace) -> None: return +def getLReleaseExec() -> str | None: + """Look for the lrelease executable.""" + for entry in ["lrelease-qt6", "lrelease"]: + if subprocess.call(f"type {entry}", shell=True) == 0: + return entry + return None + + def buildTranslationAssets(args: argparse.Namespace | None = None) -> None: """Build the lang.qm files for Qt Linguist.""" print("") @@ -184,7 +192,10 @@ def buildTranslationAssets(args: argparse.Namespace | None = None) -> None: print("") try: - subprocess.call(["lrelease", "-verbose", *srcList]) + if lrelease := getLReleaseExec(): + subprocess.call([lrelease, "-verbose", *srcList]) + else: + raise FileNotFoundError("No lrelease executable found") except Exception as exc: print("Qt Linguist tools seem to be missing") print("On Debian/Ubuntu, install: qttools5-dev-tools") From 094353f64e0d8a1ab3bc87ece03a56d582e77bb4 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Wed, 9 Jul 2025 18:07:20 +0300 Subject: [PATCH 3/4] Fix container image name --- .github/workflows/test_fedora.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_fedora.yml b/.github/workflows/test_fedora.yml index 64f64aae6..0590f4198 100644 --- a/.github/workflows/test_fedora.yml +++ b/.github/workflows/test_fedora.yml @@ -14,7 +14,7 @@ jobs: testFedora: runs-on: ubuntu-latest container: - image: fedora-rawhide + image: fedora:rawhide steps: - name: Install Packages (dnf) run: | From 989d655c1f00e9c553632fc043ef3634778d5743 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Wed, 9 Jul 2025 18:41:14 +0300 Subject: [PATCH 4/4] Add git as a Fedora dependency for codecov --- .github/workflows/test_fedora.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/test_fedora.yml b/.github/workflows/test_fedora.yml index 0590f4198..460eca83b 100644 --- a/.github/workflows/test_fedora.yml +++ b/.github/workflows/test_fedora.yml @@ -20,17 +20,13 @@ jobs: run: | dnf -y update dnf -y install adobe-source-sans-pro-fonts hunspell-en hunspell-en-GB hunspell-en-US - dnf -y install enchant2-devel hunspell-devel qt6-qttools-devel qt6-qtsvg-devel sed + dnf -y install enchant2-devel git hunspell-devel qt6-qttools-devel qt6-qtsvg-devel dnf -y install python3-devel - name: Checkout Source uses: actions/checkout@v4 - name: Install Dependencies (pip) run: | pip install -U -r requirements.txt -r tests/requirements.txt - # - name: Fedora specific modifications - # run: | - # sed -i 's/self.spellLanguage = "en"/self.spellLanguage = "en_US"/g' novelwriter/config.py - # sed -i 's/spellcheck = en/spellcheck = en_US/g' tests/reference/baseConfig_novelwriter.conf - name: Run Build Commands run: | python pkgutils.py qtlrelease