Hi Chris, lets me apologize that it needed ten days that somebody from the LP engineering team took a look at your exciting work. Aside from the new features which are very useful I appreciate very much that you also wrote a good README file and added the Relax-NG schema files. I have a few comments on details of your changes (nothing serious, see below), but my main concern is that the script is becoming complex enough so that new features should be tested. (Well... the entire code should be tested, but that's something for other branches ;) If you don't have enough time to write some tests (which I would understand quite well) I would file a bug roughly like "there is great work waiting to be merged, once we have some tests" and hopefully someone from the LP core team can take care of it soon. And there is one blocker: Canonical requires that external contributors sign a "Contributor License Agreement": http://www.canonical.com/contributors . so, could you please sign it? > @@ -224,14 +304,29 @@ > return date.isoformat() + 'Z' > > > -def create_launchpad_issue_tree(issues, options): > +def create_launchpad_issue_tree(issues, options, users): > root = ET.Element("launchpad-bugs") > root.attrib['xmlns'] = "https://launchpad.net/xmlns/2006/bugs" > > - def _sfuser(elem, name): > - name = (name if name is not None else "noone").strip() > - elem.text = name > - elem.attrib["email"] = "%