README.md

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

Workflow

Example workflow:

  1. getcplist.py SelfContainedChange ChangeAcceptedF29
  2. processcp.py change-pages-SelfContainedChange-ChangeAcceptedF29.csv
  3. createbz.py feature-pages.csv
  4. Copy-paste ChangesList into ChangeSet page on wiki
  5. getcplist.py SystemWideChange ChangeAcceptedF29
  6. processcp.py change-pages-SystemWideChange-ChangeAcceptedF29.csv
  7. createbz.py feature-pages.csv
  8. Copy-paste ChangesList into ChangeSet page on wiki

Setup

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

[core] user = myname@example.com password = hunter2

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.