website: Add draft post about the QA frontpage.

* website/drafts/progress-on-the-qa-frontpage.md: New file.
This commit is contained in:
Christopher Baines 2023-07-12 12:52:21 +01:00
parent b33af66cda
commit 84a2206ac6
No known key found for this signature in database
GPG Key ID: 5E28A33B0B84F577
1 changed files with 101 additions and 0 deletions

View File

@ -0,0 +1,101 @@
title: Progress so far on the Guix Quality Assurance (QA) frontpage
author: Christopher Baines
tags: Continuous integration, Quality Assurance
date: 2023-07-12 16:30:00
---
Maintaining and adding to Guix's collection of packages can be
complicated. As a distribution with around 22,000 packages, spanning
across around 7 architectures and with support for cross-compilation,
it's quite common for problems to occur when making changes.
Quality Assurance (QA) is a general term to describe the approach
taken to try and ensure something meets expectations. When applied to
software, the term testing is normally used. While Guix is software,
and has tests, much more than those tests are needed to maintain Guix
as a distribution.
So what might quality mean in the context of Guix as a distribution?
This will differ from person to person, but these are some common
concerns:
- Packages not building
- Either now or in the future
- Packages building reproducibly
- Packages building on or for a specific architecture
- The packaged software functioning correctly
- Availability of translations for the package definitions
# Tooling to help with Quality Assurance
There's a range of tools to help maintain Guix. The [package
linters](https://guix.gnu.org/en/manual/en/html_node/Invoking-guix-lint.html)
are a set of simple tools, they cover basic things from the naming of
packages to more complicated things like the validity of the home-page
URL and the formatting of the package definition.
The [guix weather](https://guix.gnu.org/en/manual/en/html_node/Invoking-guix-weather.html)
tool looks at substitute availability information and can indicate how
many substitutes are available for the current Guix and system. The
[guix challenge](https://guix.gnu.org/en/manual/en/html_node/Invoking-guix-challenge.html)
tool is similar, but it highlights package reproducibility issues,
which is when the substitutes and local store items (if available)
differ.
For translations, [Guix uses
Weblate](https://guix.gnu.org/manual/en/html_node/Translating-Guix.html)
which can provide information on how many translations are available.
## The QA Frontpage
Then there's the relatively new Quality Assurance (QA) frontpage, the
aim of which is to bring together some of the existing Quality
Assurance related information, as well as new being a good place to do
additional QA tasks.
The QA frontpage
[started](https://lists.gnu.org/archive/html/guix-devel/2022-09/msg00054.html)
as a service to coordinate automated testing for patches, it queries
the [data service](https://data.qa.guix.gnu.org/) to find out what
derivations have changed and then submits builds for these derivations
to the build coordinator behind
[bordeaux.guix.gnu.org](https://bordeaux.guix.gnu.org/).
A very similar process applies for non-master branches, the QA
frontpage queries [issues.guix.gnu.org](https://issues.guix.gnu.org/)
to find out which branch is going to be merged next, then queries the
data service to find out what derivations have changed and just like
for patches then submits builds for these changed derivations to the
bordeaux.guix.gnu.org build coordinator.
For both patches and branches the QA frontpage tries to display
information about the effects of the changes. This is a work in
progress though, and there's much more that the QA frontpage should be
able to do to provide clearer descriptions of the changes and any
problems that should be addressed.
# How to get involved?
There's plenty of ways to get involved or contribute to the QA
frontpage.
If you submit patches to Guix, the QA frontpage will attempt to apply
the patches and show what's changed. You can click through from
issues.guix.gnu.org to qa.guix.gnu.org via the QA badge by the status
of the issue.
From the QA frontpage, you can also view the list of branches which
includes the requests for merging if they exist. Similar to the patch
series, for the branch the QA frontpage can display information about
the package changes and substitute availability.
There's also plenty of ways to contribute to the QA frontpage and
connected tools. You can find some ideas and information on how to
run the service in the
[README](https://git.savannah.gnu.org/cgit/guix/qa-frontpage.git/tree/README.org)
and if you have any questions or patches, please email
guix-devel@gnu.org.