diff --git a/.gitlab-ci/build.yml b/.gitlab-ci/build.yml index 315bad2f..7d659138 100644 --- a/.gitlab-ci/build.yml +++ b/.gitlab-ci/build.yml @@ -3,6 +3,7 @@ include: - project: "GNOME/citemplates" file: "flatpak/flatpak_ci_initiative.yml" + - local: '.gitlab-ci/utils.yml' variables: RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo" @@ -30,34 +31,23 @@ build@aarch64: # Test builds with the stable runtime to make sure that the Flatpak will build on Flathub. # Should be run manually before tagging a new release. -# -# To get a list of available GNOME and LLVM versions, see: -# https://gitlab.gnome.org/GNOME/gnome-runtime-images/-/blob/master/.gitlab-ci.yml -.build-stable: - image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-${GNOME_STABLE_VERSION}' +.build_stable: + extends: + - .stable_runtime variables: - GNOME_STABLE_VERSION: "48" - LLVM_NIGHTLY_VERSION: "18" - LLVM_STABLE_VERSION: "18" RUNTIME_REPO: "https://flathub.org/repo/flathub.flatpakrepo" RUN_TESTS: 0 - before_script: - # We want to use the latest stable GNOME runtime instead of the nightly runtime. - - sed -i "s|master|${GNOME_STABLE_VERSION}|g" ${MANIFEST_PATH} - # We want to use the latest LLVM extension for the stable runtime. - - sed -i "s|llvm${LLVM_NIGHTLY_VERSION}|llvm${LLVM_STABLE_VERSION}|g" ${MANIFEST_PATH} - build-stable@x86_64: extends: - .flatpak@x86_64 - - .build-stable + - .build_stable stage: build when: manual build-stable@aarch64: extends: - .flatpak@aarch64 - - .build-stable + - .build_stable stage: build when: manual diff --git a/.gitlab-ci/test.yml b/.gitlab-ci/test.yml index 6217306e..eb70cb9f 100644 --- a/.gitlab-ci/test.yml +++ b/.gitlab-ci/test.yml @@ -47,13 +47,16 @@ rust-tests: build-docs: extends: - .remove_build_only_modules + - .stable_runtime stage: test - image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master' tags: - flatpak interruptible: true + before_script: + - !reference [.remove_build_only_modules, before_script] + - !reference [.stable_runtime, before_script] script: - - flatpak install --user --noninteractive org.freedesktop.Sdk.Extension.rust-nightly//24.08 + - flatpak install --user --noninteractive org.freedesktop.Sdk.Extension.rust-nightly//${FREEDESKTOP_RUNTIME_BRANCH} # We want to use the nightly toolchain inside the build terminal. - sed -i 's|"org.freedesktop.Sdk.Extension.rust-stable"|"org.freedesktop.Sdk.Extension.rust-nightly"|g' ${MANIFEST_PATH} - sed -i 's|/rust-stable/bin|/rust-nightly/extra/sdk/rust-nightly/bin|g' ${MANIFEST_PATH} diff --git a/.gitlab-ci/utils.yml b/.gitlab-ci/utils.yml index 7a66477e..424de608 100644 --- a/.gitlab-ci/utils.yml +++ b/.gitlab-ci/utils.yml @@ -14,3 +14,21 @@ - mv $TMP_FILE ${MANIFEST_PATH} # Use meson's build-env profile. - sed -i "s|-Dprofile=development|-Dprofile=build-env|g" ${MANIFEST_PATH} + +# Update the Flatpak manifest to use the latest stable GNOME runtime and use the corresponding +# container image. +# +# To get a list of available GNOME and LLVM versions, see: +# https://gitlab.gnome.org/GNOME/gnome-runtime-images/-/blob/master/.gitlab-ci.yml +.stable_runtime: + image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-${GNOME_STABLE_VERSION}' + variables: + GNOME_STABLE_VERSION: "48" + FREEDESKTOP_RUNTIME_BRANCH: "24.08" + LLVM_NIGHTLY_VERSION: "20" + LLVM_STABLE_VERSION: "20" + before_script: + # We want to use the latest stable GNOME runtime instead of the nightly runtime. + - sed -i "s|master|${GNOME_STABLE_VERSION}|g" ${MANIFEST_PATH} + # We want to use the latest LLVM extension for the stable runtime. + - sed -i "s|llvm${LLVM_NIGHTLY_VERSION}|llvm${LLVM_STABLE_VERSION}|g" ${MANIFEST_PATH} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 18c4399e..97437d8d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,10 +42,10 @@ flatpak remote-add --user --if-not-exists gnome-nightly https://nightly.gnome.or flatpak install --user gnome-nightly org.gnome.Sdk//master org.gnome.Platform//master # Install the required rust-stable extension from Flathub -flatpak install --user flathub org.freedesktop.Sdk.Extension.rust-stable//24.08 +flatpak install --user flathub org.freedesktop.Sdk.Extension.rust-stable//25.08beta # Install the required llvm extension from Flathub -flatpak install --user flathub org.freedesktop.Sdk.Extension.llvm18//24.08 +flatpak install --user flathub org.freedesktop.Sdk.Extension.llvm20//25.08beta ``` If you are building the flatpak manually you will also need flatpak-builder on your system, or the @@ -100,7 +100,7 @@ GNOME Builder can export a flatpak of the app after it has been successfully bui Fractal can then be installed with: ```sh -flatpak install --user --bundle path/to/org.gnome.Fractal.Devel.flatpak +flatpak install --user --bundle path/to/org.gnome.Fractal.Devel.flatpak ``` Alternatively, it can be built and installed with flatpak-builder: @@ -143,7 +143,7 @@ submissions and is once again checked by our CI. Please follow the [GNOME commit message guidelines](https://handbook.gnome.org/development/commit-messages.html). We enforce the use of a tag as a prefix for the summary line. It should be the area of the app that -is changed. +is changed. ## Merge Request diff --git a/build-aux/org.gnome.Fractal.Devel.json b/build-aux/org.gnome.Fractal.Devel.json index 6d69f529..1fd3cf0c 100644 --- a/build-aux/org.gnome.Fractal.Devel.json +++ b/build-aux/org.gnome.Fractal.Devel.json @@ -5,7 +5,7 @@ "sdk": "org.gnome.Sdk", "sdk-extensions": [ "org.freedesktop.Sdk.Extension.rust-stable", - "org.freedesktop.Sdk.Extension.llvm18" + "org.freedesktop.Sdk.Extension.llvm20" ], "command": "fractal", "finish-args": [ @@ -20,8 +20,8 @@ "--env=RUST_BACKTRACE=1" ], "build-options": { - "append-ld-library-path": "/usr/lib/sdk/llvm18/lib", - "append-path": "/usr/lib/sdk/llvm18/bin:/usr/lib/sdk/rust-stable/bin", + "append-ld-library-path": "/usr/lib/sdk/llvm20/lib", + "append-path": "/usr/lib/sdk/llvm20/bin:/usr/lib/sdk/rust-stable/bin", "env": { "RUSTFLAGS": "-C force-frame-pointers=yes", "CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER": "clang",