OpenStack QA Specifications
Go to file
Doug Hellmann bd68bb6db6 import zuul job settings from project-config
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
repository.

Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.

Because this patch is generated by a script, there may be some
cosmetic changes to the layout of the YAML file(s) as the contents are
normalized.

See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html

Change-Id: Ib3ede35857bfd3dffd8af19be081ce09db89ee21
Story: #2002586
Task: #24327
2018-09-08 22:52:55 -04:00
doc/source Merge "Update document theme" 2017-06-15 08:26:05 +00:00
specs Update README.rst to support new Repository directories 2018-08-07 21:53:52 -05:00
tools Add devstack external plugin spec 2015-02-06 07:41:22 -05:00
.gitignore Add sphinx support to qa-specs repo 2014-03-24 13:36:43 -04:00
.gitreview Added .gitreview 2014-03-14 23:10:06 +00:00
.zuul.yaml import zuul job settings from project-config 2018-09-08 22:52:55 -04:00
LICENSE Add a license file 2014-03-25 18:27:36 -04:00
README.rst Update README.rst to support new Repository directories 2018-08-07 21:53:52 -05:00
requirements.txt Sync sphinx version with g-r 2017-08-29 06:31:52 +03:00
setup.cfg Changed the home-page link for qa-specs 2016-10-24 17:37:05 +05:30
setup.py Add sphinx support to qa-specs repo 2014-03-24 13:36:43 -04:00
template.rst Update the template to add section for projects 2015-02-03 15:26:18 -05:00
tox.ini Add devstack external plugin spec 2015-02-06 07:41:22 -05:00

Team and repository tags

image

QA Specs Repository

This is a git repository for doing design review on QA enhancements as part of the OpenStack program. This provides an ability to ensure that everyone has signed off on the approach to solving a problem early on.

This repository includes the Tempest and DevStack projects.

Repository Structure

The structure of the repository is as follows:

specs/
    devstack/
        implemented/
    other
        implemented/
    patrole
        implemented/
    tempest
        implemented/

Expected Work Flow

  1. Create a blueprint stub in tempest, devstack, patrole or other blueprint repository
  2. Propose review to qa-specs repository (ensure bp:blueprint_name is in the commit message. DevStack specs should go into the devstack/ subdirectory but otherwise follow the same process.
  3. Link Read the full specification to the gerrit address of the spec
  4. Bring forward the proposed item to the openstack-qa meeting for summary
  5. Review happens on proposal by qa-core members and others
  6. Iterate until review is Approved or Rejected

Once a Review is Approved...

  1. Update blueprint, Copy summary text of blueprint to there
  2. Link Read the full specification to the git address of the spec
  3. Profit!

Revisiting Specs

We don't always get everything right the first time. If we realize we need to revisit a specification because something changed, either we now know more, or a new idea came in which we should embrace, we'll manage this by proposing an update to the spec in question.

Learn as we go

This is a new way of attempting things, so we're going to be low in process to begin with to figure out where we go from here. Expect some early flexibility in evolving this effort over time.

Tempest Specs For New Tests

If you're writing a new spec to improve the testing coverage in Tempest the requirements for what is included in the specification are slightly less stringent and different from other proposals. This is because blueprints for more tests are more about tracking the effort in a single place and assigning a unified topic in gerrit for ease of review, it's less about the implementation details. Blueprints/specifications for new tests should only ever be opened for overarching development efforts. For example there should only ever only need to be a single blueprint for adding tests for a project.

Most of these efforts require a method to track the work items outside of launchpad. Both etherpad and google docs have been used very successfully for this. The goal is to list out all the tests that need to be written and allow people to mark that they intend to work on a specific test. This prevents duplication of effort as well as provide overall status tracking. An external tool like etherpad or google docs is better at this because it allows concurrent use and more dynamic editing than launchpad.

The only details required in the proposed change section for a spec about new tests are:

  • What is being tested and the scope of what will be covered by the blueprint
  • What external tool is being used to track the development.
    • If no external tracking is being used just explain why.

DevStack Specs

Specs for DevStack fall into a couple of broad categories:

  • Support for new {projectcool widget}

    This is where the discussion of "Does this support belong in the DevStack repo?" should take place.

  • Significant re-factoring

    One primary section that these types of changes require is an analysis of backward compatibility and Grenade impacts.

The existing template is mostly suitable for DevStack use, a quick s/tempest/devstack/ handles the majority of changes.