This repo creates scripts for managing the [Fedora Changes process][https://fedoraproject.org/wiki/Fedora_Program_Management/ChangesSOP].

Workflow

Example workflow:

  1. make version=30 type=SystemWide build
  2. make bz
  3. Copy-paste ChangesList into ChangeSet page on wiki
  4. make clean
  5. make version=30 type=SelfContained build
  6. make bz
  7. Copy-paste ChangesList into ChangeSet page on wiki

Note It's a good idea to run make clean before each invocation so that you get the freshest status from Bugzilla into the ChangesList file.

Setup

Login credentials for scripts that make Bugzilla calls come from the ${HOME}/.bugzillarc file. e.g.

   [buzgilla.redhat.com]
   api_key = abcdefg123456

Scripts

createbz.py

Creates Bugzilla tickets in the Fedora Changes component from a CSV file.

Usage: createbz.py <CSV file>

The CSV file must contain the following fields:

  • Name — A descriptive name of the change, used as the Bugzilla ticket summary
  • Email — Comma-separated email addresses(es) of change owner(s), used as the Bugzilla ticket cc
  • Summary — A brief summary of the change, used as the Bugzilla ticket description
  • Bug — A column for recording the bug. The column must exist. A new bug will only be created if the field is empty for a given row.

Bugzilla will bomb if the email address in the change doesn't map to a valid user. Any bugs you create prior to it blowing up will be duplicated when you run it with a fix.

getcplist.py

Pulls changes from the Fedora wiki.

Usage: getcplist.py <TYPE> <STATUS>

TYPE is one of "SelfContainedChange" or "SystemWideChange". STATUS is one of the change statuses in the wiki (e.g. "ChangeAcceptedF29").

This script writes a CSV file change-pages-<TYPE>-<STATUS>.csv in the working directory.

processcp.py

Parses the change list. Iterates over a CSV file produced by getcplist.py and queries Bugzilla for status information.

Usage: processcp.py <CSV file>

This script writes a file feature-pages.csv that can be fed to createbz.py and a file ChangesList that contains wiki-formmated text to write for the ChangeSet page.