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