Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • python-next-pull-request
    Acceptance Tests
    
    - Fix for tests/acceptance/virtio-gpu.py to match the change in device
      name
    - Fix for failure caught by tests/acceptance/multiprocess.py
    
    PS: While not a maintainer for the subsystem in PATCH 7, I'm including
    it as a one-off to facilitate the landing of the fix as discussed in
    the mailing list.
    
  • linux_test-v2
    Acceptance Test: introduce base class for Linux based tests
    
    This introduces a base class for tests that need to interact with a
    Linux guest.  It generalizes the "boot_linux.py" code, already been
    used by the "virtiofs_submounts.py" and also SSH related code being
    used by that and "linux_ssh_mips_malta.py".
    
    While at it, a number of fixes on hopeful improvements to those tests
    were added.
    
    Changes from v1:
    
    * Majority of v1 patches have been merged.
    
    * New patches:
      - Acceptance Tests: make username/password configurable
      - Acceptance Tests: set up SSH connection by default after boot for LinuxTest
      - tests/acceptance/virtiofs_submounts.py: remove launch_vm()
    
    * Allowed for the configuration of the network device type (defaulting
      to virtio-net) [Phil]
    
    * Fix module name typo (s/qemu.util/qemu.utils/) in the commit message
      [John]
    
    * Tests based on LinuxTest will have the SSH connection already prepared
  • ci_get_vm_images_targets-v1
    Acceptance Tests: restore the use of target related information
    
    This addresses two issues, restoring them to their previous behavior:
    
    The first one, reported by Thomas Huth, a test timeout (and thus a job
    failed) on CI.  The test was interrupted because of a download
    timeout.  The download timeout happened due to the fact that "make
    get-vm-images" is currently broken and the images matching the QEMU
    targets are not being downloaded before the Avocado job.
    
    The second one is the use of the same target related information, but
    to filter out tests that don't have a matching "arch" tag.  So, if one
    is not building, say "aarch64-softmmu", tests tagged with "arch:
    aarch64" won't even make into the Avocado job.
    
    For review purposes, the following job that shows the download of
    ppc64le, s390x and x86_64 (but not aarch64) Fedora 31 images on a
    acceptance-system-centos job:
    
       https://gitlab.com/cleber.gnu/qemu/-/jobs/1057043012#L63
    
    And the following shows the download of the aarch64 Fedora 31 image
    (but not any other) on a acceptance-system-ubuntu job:
    
       https://gitlab.com/cleber.gnu/qemu/-/jobs/1057043005#L61
  • scripts_ci_more_debug-v1
    gitlab-pipeline-status script: provide more information on errors
    
    When things go wrong with the GitLab API requests, it's useful to give
    users more information about the possible causes.
  • gating_ci-v5
    GitLab Custom Runners and Jobs (was: QEMU Gating CI)
    
    TL;DR: this should allow the QEMU maintainer to push to the staging
    branch, and have custom jobs running on the project's aarch64 and
    s390x machines.  Jobs in this version are allowed to fail, to allow
    for the inclusion of the novel machines/jobs without CI disruption.
    Simple usage looks like:
    
       git push remote staging
       ./scripts/ci/gitlab-pipeline-status --verbose --wait
    
    Long version:
    
    The idea about a public facing Gating CI for QEMU was summarized in an
    RFC[1].  Since then, it was decided that a simpler version should be
    attempted first.
    
    At this point, there are two specific runners (an aarch64 and an s390x)
    registered with GitLab, at https://gitlab.com/qemu-project, currently
    setup to the "qemu" repository.
    
    Changes from v4:
    
     - Fixed typo in docs/devel/ci.rst, s/maintanance/maintenance/ (Thomas)
     - Removed "[local]" group from inventory file (Erik)
     - Removed sections from the playbooks which *would* be applied on
       hardware/OS that are currently not available to QEMU
     - Removed duplicated "here" on documentation (Thomas)
     - Moved description of current jobs, and possible direction of future
       jobs to the patch description (Thomas)
     - Remove comments around "when" conditions (Andrea)
     - Switch to always use explicit lists on "when" blocks (Andrea)
     - Switch from using module "apt" to using generic action module "package",
       which involved adding a new task to update the apt cache (Andrea)
     - Fix playbook indentation in the non-s390x package installation task (Andrea)
     - Changed gitlab-runner tags examples from FreeBSD to Ubuntu, which is
       covered by jobs added on this version
     - Fixed typo in commit message s/s390/s390x/ (Phil)
     - Allow all custom-runner jobs to fail at this time
     - Cleared "Reviewed-by" in one patch due to large changes
    
      Changes requested in v4 but *not* seen here due to sections of the
      playbook being removed:
    
     - Replace SDL-devel for SDL2-devel on CentOS, according to 5ed7ca3 (Thomas)
     - Correct missing step 10 on the FreeBSD gitlab-runner installation
       instructions (Erik)
    
    Changes from v3:
    
    - Applied changes to match <20201014135416.1290679-1-pbonzini@redhat.com>,
      that is, added ninja-build to "build-environment.yml" list of packages
      and enabled PowerTools repository on CentOS 8.
    
    Changes from v2:
    
    - The overall idea of "Gating CI" has been re-worded "custom runners",
      given that the other jobs running on shared runners are also
      considered gating (Daniel)
    
    - Fixed wording and typos on the documentation, including:
     * update -> up to date (Erik)
     * a different set of CI jobs -> different CI jobs (Erik)
     * Pull requests will only be merged -> code will only be merged (Stefan)
     * Setup -> set up (Stefan)
     * them -> they (Stefan)
     * the -> where the (Stefan)
     * dropped "in the near future" (Stefan)
    
    - Changed comment on "build-environment.yml" regarding the origin of
      the package list (Stefan)
    
    - Removed inclusion of "vars.yml" from "build-environment.yml", given that
      no external variable is used there
    
    - Updated package list in "build-environment.yml" from current
      dockerfiles
    
    - Tested "build-environment" on Fedora 31 and 32 (in addition to Fedora 30),
      and noted that it's possible to use it on those distros
    
    - Moved CI documentation from "testing.rst" to its own file (Phillipe)
    
    - Split "GitLab Gating CI: initial set of jobs, documentation and scripts"
      into (Phillipe):
      1) Basic documentation and configuration (gitlab-ci.yml) placeholder
      2) Playbooks for setting up a build environment
      3) Playbooks for setting up gitlab-runner
      4) Actual GitLab CI jobs configuration
    
    - Set custom jobs to be on the "build" stage, given that they combine
      build and test.
    
    - Set custom jobs to not depend on any other job, so they can start
      right away.
    
    - Set rules for starting jobs so that all pushing to any branch that
      start with name "staging".  This allows the project maintainer to
      use the "push to staging" workflow, while also allowing others to
      generate similar jobs.  If this project has configured custom
      runners, the jobs will run, if not, the pipeline will be marked as
      "stuck".
    
    - Changed "scripts" on custom jobs to follow the now common pattern
      (on other jobs) of creating a "build" directory.
    
    Changes from v1:
    
    - Added jobs that require specific GitLab runners already available
      (Ubuntu 20.04 on aarch64, and Ubuntu 18.04 on s390x)
    - Removed jobs that require specific GitLab runners not yet available
      (Fedora 30, FreeBSD 12.1)
    - Updated documentation
    - Added copyright and license to new scripts
    - Moved script to from "contrib" to "scripts/ci/"
    - Moved setup playbooks form "contrib" to "scripts/ci/setup"
    - Moved "gating.yml" to ".gitlab-ci.d" directory
    - Removed "staging" only branch restriction on jobs defined in
      ".gitlab-ci.yml", assumes that the additional jobs on the staging
      branch running on the freely available gitlab shared runner are
      positive
    - Dropped patches 1-3 (already merged)
    - Simplified amount of version specifity on Ubuntu, from 18.04.3 to
      simply 18.04 (assumes no diverse minor levels will be used or
      specific runners)
    
    Changes from the RFC patches[2] accompanying the RFC document:
    
    - Moved gating job definitions to .gitlab-ci-gating.yml
    - Added info on "--disable-libssh" build option requirement
      (https://bugs.launchpad.net/qemu/+bug/1838763) to Ubuntu 18.04 jobs
    - Added info on "--disable-glusterfs" build option requirement
      (there's no static version of those libs in distro supplied
      packages) to one
    - Dropped ubuntu-18.04.3-x86_64-notools job definition, because it
      doesn't fall into the general scope of gating job described by PMM
      (and it did not run any test)
    - Added w32 and w64 cross builds based on Fedora 30
    - Added a FreeBSD based job that builds all targets and runs `make
      check`
    - Added "-j`nproc`" and "-j`sysctl -n hw.ncpu`" options to make as a
      simple but effective way of speeding up the builds and tests by
      using a number of make jobs matching the number of CPUs
    - Because the Ansible playbooks reference the content on Dockerfiles,
      some fixes to some Dockerfiles caught in the process were included
    - New patch with script to check or wait on a pipeline execution
    
    [1] - https://lists.gnu.org/archive/html/qemu-devel/2019-12/msg00231.html
    [2] - https://lists.gnu.org/archive/html/qemu-devel/2020-02/msg00154.html
  • avocado_85-v1
    Acceptance Tests: bump Avocado version requirement to 85.0
    
    This is being proposed as a separate single patch simply to show
    that no known regressions have been introduced as far as the
    acceptance tests/jobs are related.  CI job:
    
       https://gitlab.com/cleber.gnu/qemu/-/pipelines/255122420
    
    This version (and 84.0) contain improvements that address specific
    QEMU use cases, including:
    
     * Being able to download and use Fedora 31 images and thus
       re-activate the "boot_linux.py" tests
    
     * Being able to register local assets via "avocado assets register"
       and use them in tests
  • qemu_machine_stdout-v1
    Python / Acceptance Tests: improve logging
    
    The location and amount of information kept while using QEMUMachine in
    Acceptance Tests is currently not optimal.
    
    This improves the situation by using the Test's log directory (an
    Avocado standard feature) as the default location to keep logs,
    instead of the temporary directory currently used.
    
    Users will be able to find "qemu-$PID.log" files under the test log
    directories, containing all the stdout/stderr generated by the QEMU
    binary.
  • linux_test-v1
    Acceptance Test: introduce base class for Linux based tests
    
    This introduces a base class for tests that need to interact with a
    Linux guest.  It generalizes the "boot_linux.py" code, already been
    used by the "virtiofs_submounts.py" and also SSH related code being
    used by that and "linux_ssh_mips_malta.py".
    
    While at it, a number of fixes on hopeful improvements to those tests
    were added.
  • wip/linux_test-staging
  • v5.2.0
    v5.2.0 release
    
  • update_fedora_images-v1
    Acceptance tests: bump Fedora to 32
    
    I believe this may be a candidate for "right now" because the code
    changes here simply sync with external infrastructure changes, that
    is, the retirement of Fedora 31 from the official repository
    locations).
    
    The following jobs contain a validation of this bump:
    
     - https://gitlab.com/cleber.gnu/qemu/-/jobs/886864642#L72
     - https://gitlab.com/cleber.gnu/qemu/-/jobs/886864633#L72
    
    Thanks,
    - Cleber.
  • v5.2.0-rc4
    v5.2.0-rc4 release
    
  • v5.2.0-rc3
    v5.2.0-rc3 release
    
  • v5.2.0-rc2
    v5.2.0-rc2 release
    
  • v5.2.0-rc1
    v5.2.0-rc1 release
    
  • v5.2.0-rc0
    v5.2.0-rc0 release
    
  • python-pull-request
    Pull request
    
  • gating_ci-v4
    GitLab Custom Runners and Jobs (was: QEMU Gating CI)
    
    TL;DR: this should allow the QEMU maintainer to push to the staging
    branch, and have custom jobs running on the project's aarch64 and
    s390x machines.  Simple usage looks like:
    
       git push remote staging
       ./scripts/ci/gitlab-pipeline-status --verbose --wait
    
    Long version:
    
    The idea about a public facing Gating CI for QEMU was summarized in an
    RFC[1].  Since then, it was decided that a simpler version should be
    attempted first.
    
    At this point, there are two specific runners (an aarch64 and an s390)
    registered with GitLab, at https://gitlab.com/qemu-project, currently
    setup to the "qemu" repository.
    
    Changes from v3:
    
    - Applied changes to match <20201014135416.1290679-1-pbonzini@redhat.com>,
      that is, added ninja-build to "build-environment.yml" list of packages
      and enabled PowerTools repository on CentOS 8.
    
    Changes from v2:
    
    - The overall idea of "Gating CI" has been re-worded "custom runners",
      given that the other jobs running on shared runners are also
      considered gating (Daniel)
    
    - Fixed wording and typos on the documentation, including:
     * update -> up to date (Erik)
     * a different set of CI jobs -> different CI jobs (Erik)
     * Pull requests will only be merged -> code will only be merged (Stefan)
     * Setup -> set up (Stefan)
     * them -> they (Stefan)
     * the -> where the (Stefan)
     * dropped "in the near future" (Stefan)
    
    - Changed comment on "build-environment.yml" regarding the origin of
      the package list (Stefan)
    
    - Removed inclusion of "vars.yml" from "build-environment.yml", given that
      no external variable is used there
    
    - Updated package list in "build-environment.yml" from current
      dockerfiles
    
    - Tested "build-environment" on Fedora 31 and 32 (in addition to Fedora 30),
      and noted that it's possible to use it on those distros
    
    - Moved CI documentation from "testing.rst" to its own file (Phillipe)
    
    - Split "GitLab Gating CI: initial set of jobs, documentation and scripts"
      into (Phillipe):
      1) Basic documentation and configuration (gitlab-ci.yml) placeholder
      2) Playbooks for setting up a build environment
      3) Playbooks for setting up gitlab-runner
      4) Actual GitLab CI jobs configuration
    
    - Set custom jobs to be on the "build" stage, given that they combine
      build and test.
    
    - Set custom jobs to not depend on any other job, so they can start
      right away.
    
    - Set rules for starting jobs so that all pushing to any branch that
      start with name "staging".  This allows the project maintainer to
      use the "push to staging" workflow, while also allowing others to
      generate similar jobs.  If this project has configured custom
      runners, the jobs will run, if not, the pipeline will be marked as
      "stuck".
    
    - Changed "scripts" on custom jobs to follow the now common pattern
      (on other jobs) of creating a "build" directory.
    
    Changes from v1:
    
    - Added jobs that require specific GitLab runners already available
      (Ubuntu 20.04 on aarch64, and Ubuntu 18.04 on s390x)
    - Removed jobs that require specific GitLab runners not yet available
      (Fedora 30, FreeBSD 12.1)
    - Updated documentation
    - Added copyright and license to new scripts
    - Moved script to from "contrib" to "scripts/ci/"
    - Moved setup playbooks form "contrib" to "scripts/ci/setup"
    - Moved "gating.yml" to ".gitlab-ci.d" directory
    - Removed "staging" only branch restriction on jobs defined in
      ".gitlab-ci.yml", assumes that the additional jobs on the staging
      branch running on the freely available gitlab shared runner are
      positive
    - Dropped patches 1-3 (already merged)
    - Simplified amount of version specifity on Ubuntu, from 18.04.3 to
      simply 18.04 (assumes no diverse minor levels will be used or
      specific runners)
    
    Changes from the RFC patches[2] accompanying the RFC document:
    
    - Moved gating job definitions to .gitlab-ci-gating.yml
    - Added info on "--disable-libssh" build option requirement
      (https://bugs.launchpad.net/qemu/+bug/1838763) to Ubuntu 18.04 jobs
    - Added info on "--disable-glusterfs" build option requirement
      (there's no static version of those libs in distro supplied
      packages) to one
    - Dropped ubuntu-18.04.3-x86_64-notools job definition, because it
      doesn't fall into the general scope of gating job described by PMM
      (and it did not run any test)
    - Added w32 and w64 cross builds based on Fedora 30
    - Added a FreeBSD based job that builds all targets and runs `make
      check`
    - Added "-j`nproc`" and "-j`sysctl -n hw.ncpu`" options to make as a
      simple but effective way of speeding up the builds and tests by
      using a number of make jobs matching the number of CPUs
    - Because the Ansible playbooks reference the content on Dockerfiles,
      some fixes to some Dockerfiles caught in the process were included
    - New patch with script to check or wait on a pipeline execution
    
    [1] - https://lists.gnu.org/archive/html/qemu-devel/2019-12/msg00231.html
    [2] - https://lists.gnu.org/archive/html/qemu-devel/2020-02/msg00154.html
  • gating_ci-v3
    GitLab Custom Runners and Jobs (was: QEMU Gating CI)
    
    TL;DR: this should allow the QEMU maintainer to push to the staging
    branch, and have custom jobs running on the project's aarch64 and
    s390x machines.  Simple usage looks like:
    
       git push remote staging
       ./scripts/ci/gitlab-pipeline-status --verbose --wait
    
    Long version:
    
    The idea about a public facing Gating CI for QEMU was summarized in an
    RFC[1].  Since then, it was decided that a simpler version should be
    attempted first.
    
    At this point, there are two specific runners (an aarch64 and an s390)
    registered with GitLab, at https://gitlab.com/qemu-project, currently
    setup to the "qemu" repository.
    
    Changes from v2:
    
    - The overall idea of "Gating CI" has been re-worded "custom runners",
      given that the other jobs running on shared runners are also
      considered gating (Daniel)
    
    - Fixed wording and typos on the documentation, including:
     * update -> up to date (Erik)
     * a different set of CI jobs -> different CI jobs (Erik)
     * Pull requests will only be merged -> code will only be merged (Stefan)
     * Setup -> set up (Stefan)
     * them -> they (Stefan)
     * the -> where the (Stefan)
     * dropped "in the near future" (Stefan)
    
    - Changed comment on "build-environment.yml" regarding the origin of
      the package list (Stefan)
    
    - Removed inclusion of "vars.yml" from "build-environment.yml", given that
      no external variable is used there
    
    - Updated package list in "build-environment.yml" from current
      dockerfiles
    
    - Tested "build-environment" on Fedora 31 and 32 (in addition to Fedora 30),
      and noted that it's possible to use it on those distros
    
    - Moved CI documentation from "testing.rst" to its own file (Phillipe)
    
    - Split "GitLab Gating CI: initial set of jobs, documentation and scripts"
      into (Phillipe):
      1) Basic documentation and configuration (gitlab-ci.yml) placeholder
      2) Playbooks for setting up a build environment
      3) Playbooks for setting up gitlab-runner
      4) Actual GitLab CI jobs configuration
    
    - Set custom jobs to be on the "build" stage, given that they combine
      build and test.
    
    - Set custom jobs to not depend on any other job, so they can start
      right away.
    
    - Set rules for starting jobs so that all pushing to any branch that
      start with name "staging".  This allows the project maintainer to
      use the "push to staging" workflow, while also allowing others to
      generate similar jobs.  If this project has configured custom
      runners, the jobs will run, if not, the pipeline will be marked as
      "stuck".
    
    - Changed "scripts" on custom jobs to follow the now common pattern
      (on other jobs) of creating a "build" directory.
    
    Changes from v1:
    
    - Added jobs that require specific GitLab runners already available
      (Ubuntu 20.04 on aarch64, and Ubuntu 18.04 on s390x)
    - Removed jobs that require specific GitLab runners not yet available
      (Fedora 30, FreeBSD 12.1)
    - Updated documentation
    - Added copyright and license to new scripts
    - Moved script to from "contrib" to "scripts/ci/"
    - Moved setup playbooks form "contrib" to "scripts/ci/setup"
    - Moved "gating.yml" to ".gitlab-ci.d" directory
    - Removed "staging" only branch restriction on jobs defined in
      ".gitlab-ci.yml", assumes that the additional jobs on the staging
      branch running on the freely available gitlab shared runner are
      positive
    - Dropped patches 1-3 (already merged)
    - Simplified amount of version specifity on Ubuntu, from 18.04.3 to
      simply 18.04 (assumes no diverse minor levels will be used or
      specific runners)
    
    Changes from the RFC patches[2] accompanying the RFC document:
    
    - Moved gating job definitions to .gitlab-ci-gating.yml
    - Added info on "--disable-libssh" build option requirement
      (https://bugs.launchpad.net/qemu/+bug/1838763) to Ubuntu 18.04 jobs
    - Added info on "--disable-glusterfs" build option requirement
      (there's no static version of those libs in distro supplied
      packages) to one
    - Dropped ubuntu-18.04.3-x86_64-notools job definition, because it
      doesn't fall into the general scope of gating job described by PMM
      (and it did not run any test)
    - Added w32 and w64 cross builds based on Fedora 30
    - Added a FreeBSD based job that builds all targets and runs `make
      check`
    - Added "-j`nproc`" and "-j`sysctl -n hw.ncpu`" options to make as a
      simple but effective way of speeding up the builds and tests by
      using a number of make jobs matching the number of CPUs
    - Because the Ansible playbooks reference the content on Dockerfiles,
      some fixes to some Dockerfiles caught in the process were included
    - New patch with script to check or wait on a pipeline execution
    
    [1] - https://lists.gnu.org/archive/html/qemu-devel/2019-12/msg00231.html
    [2] - https://lists.gnu.org/archive/html/qemu-devel/2020-02/msg00154.html
  • cpu_topology_dies-v1
    hw/i386: prevent crash when an invalid number of dies is given
    
    Simple patch (and test) to avoid crashes when and invalid number
    of dies is given.