[librsvg: 3/6] ci.rst: Describe the container images
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 3/6] ci.rst: Describe the container images
- Date: Tue, 13 Sep 2022 02:14:14 +0000 (UTC)
commit 5ccd3f6e7fdf4de9cafdaadddfb25f471cf1eaff
Author: Federico Mena Quintero <federico gnome org>
Date: Mon Sep 12 20:25:32 2022 -0500
ci.rst: Describe the container images
Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/746>
devel-docs/ci.rst | 44 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)
---
diff --git a/devel-docs/ci.rst b/devel-docs/ci.rst
index 0ad8a6ae7..98788cde1 100644
--- a/devel-docs/ci.rst
+++ b/devel-docs/ci.rst
@@ -50,11 +50,53 @@ We'll explain each stage in detail next.
Creating a reproducible environment
-----------------------------------
-Describe ci-templates; copy most of the stuff from at-spi2-core's CI README.
+The task of setting up CI for a particular distro or build
+configuration is rather repetitive. One has to start with a "bare"
+distro image, then install the build-time dependencies that your
+project requires, then that is slow, then you want to build a
+container image instead of installing packages every time, then you
+want to test another distro, then you want to make those container
+images easily available to your project's forks, and then you start
+pulling your hair.
+
+[Fredesktop CI Templates][ci-templates]
+([documentation][ci-templates-docs]) are a solution to this. They can
+automatically build container images for various distros, make them
+available to forks of your project, and have some nice amenities to
+reduce the maintenance burden.
+
+Librsvg uses CI templates to test its various build configurations.
+The container images are stored here:
+https://gitlab.gnome.org/GNOME/librsvg/container_registry
+
+What sort of environments for building are produced by this step?
+
+- Build with a certain Minimum Supported Rust Version (MSRV), also a
+ relatively recent stable Rust, and Rust nightly. Building with the
+ MSRV is to help distros that don't update Rust super regularly, and
+ also to ensure that librsvg's dependencies do not suddently start
+ depending on a too-recent Rust version, for example. Building on
+ nightly is hopefully to catch compiler bugs early, or to get an
+ early warning when the Rust compiler is about to introduce newer
+ lints/warnings.
+
+- Build on a couple of distros. Librsvg's test suite is especially
+ sensitive to changes in rendering from Cairo, Pixman, and the
+ Pango/Freetype2/Harfbuzz stack. Building on a few distros gives us
+ slightly different versions of those dependencies, so that we can
+ catch breakage early.
+
+- There is an environment for doing a "full build and test", that runs
+ the whole test suite, and tests all the artifacts produced by the
+ build. This environment also has all the tools for generating
+ documentation, or producing a test coverage report. As of
+ 2022/Sept/12 this is the ``opensuse-container@x86_64.stable`` image.
Quick checks
------------
+
+
Full test suite and different environments
------------------------------------------
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]