website: Add draft post about the QA frontpage.
* website/drafts/progress-on-the-qa-frontpage.md: New file.
This commit is contained in:
parent
b33af66cda
commit
84a2206ac6
|
@ -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.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue