add instructions about tracking status

Change-Id: I0b7cb8ee7d24a9bb135b7437cf6c3f2b78338ed8
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2018-08-06 11:52:27 -04:00
parent a8b52bf673
commit a0db30412b
4 changed files with 82 additions and 0 deletions

View File

@ -96,6 +96,43 @@ use it while reviewing the other patches.
$ cd ../Output/Documentation/openstack-infra/project-config
$ git review
Marking the Team "In Progress"
------------------------------
1. Use ``update-tasks`` to set the status of the tasks on the story to
"review". For example::
$ cd goal-tools
$ .tox/venv/bin/update-tasks --status review 2003250
2. The Infrastructure team needs to know not to approve changes to job
configurations for a team while the team's settings are being
migrated. To inform them, send email to the
``openstack-infra@lists.openstack.org`` list. The ``migration
announce`` command will build a message body containing all of the
repository names.::
$ .tox/venv/bin/python3-first migration announce Oslo
The Zuul project settings for the Oslo repositories
has begun. Please do not approve any changes to
openstack-infra/project-config/zuul.d/projects.yaml for
the following repositories:
- openstack-dev/cookiecutter
- openstack-dev/oslo-cookiecutter
- openstack-dev/pbr
- openstack/automaton
...
Marking the Team "Complete"
---------------------------
1. Use ``update-tasks`` to set the status of the tasks on the story to
"merged".
2. Reply to the preivous message on the ``openstack-infra`` mailing
list to announce that the migration for the team is completed.
Tools
-----

View File

@ -3,10 +3,12 @@
import logging
import os.path
import subprocess
import textwrap
from goal_tools import governance
from cliff import command
import jinja2
LOG = logging.getLogger(__name__)
@ -86,3 +88,44 @@ class ReposList(command.Command):
except ValueError as err:
print(err)
return 1
class MigrationAnnounce(command.Command):
"email the infra team a list the locked repositories for a team"
def get_parser(self, prog_name):
parser = super().get_parser(prog_name)
parser.add_argument(
'--project-list',
default=governance.PROJECTS_LIST,
help='URL for projects.yaml',
)
parser.add_argument(
'team',
help='the team name',
)
return parser
body_template = textwrap.dedent('''
The Zuul project settings for the {{team}} repositories
has begun. Please do not approve any changes to
openstack-infra/project-config/zuul.d/projects.yaml for
the following repositories:
{% for repo in repos %}
- {{repo}}
{%- endfor %}
''')
def take_action(self, parsed_args):
gov_dat = governance.Governance(url=parsed_args.project_list)
repos = sorted(list(gov_dat.get_repos_for_team(parsed_args.team)))
template = jinja2.Template(
source=self.body_template,
undefined=jinja2.StrictUndefined,
)
body = template.render(
team=parsed_args.team,
repos=repos,
)
print(body)

View File

@ -7,3 +7,4 @@ requests
ruamel.yaml
six
yamlordereddictloader
jinja2

View File

@ -54,6 +54,7 @@ python3_first =
repos clone = goal_tools.python3_first.repos:ReposClone
repos list = goal_tools.python3_first.repos:ReposList
patches list = goal_tools.python3_first.patches:PatchesList
migration announce = goal_tools.python3_first.repos:MigrationAnnounce
[wheel]
universal = 1