From 7b1887c486d8b465d12649010614d0fabbe7308f Mon Sep 17 00:00:00 2001 From: Ghanshyam Mann Date: Thu, 7 Sep 2023 11:56:57 -0500 Subject: [PATCH] Convert ATC to AC term TC passed a resolution in 2021[1] to convert the term ATC to AC and this is not just wording change but also it change the definition of it which include the AUC also in AC. Previously ATC and AUC were two different things. Reflecting the TC resolution in election tooling also. [1] https://governance.openstack.org/tc/resolutions/20210602-atc-renamed-to-ac.html Depends-On: https://review.opendev.org/c/openstack/governance/+/893831 Change-Id: Ic0570ae9a2bb2b31538179d3246b4475cdbeac45 --- README.rst | 6 ++-- openstack_election/check_candidacy.py | 6 ++-- openstack_election/cmds/change_owners.py | 4 +-- openstack_election/owners.py | 30 +++++++++---------- .../templates/combined_nominations_kickoff.j2 | 6 ++-- .../templates/combined_voting_kickoff.j2 | 6 ++-- .../templates/tc_nominations_kickoff.j2 | 4 +-- .../templates/tc_voting_kickoff.j2 | 4 +-- openstack_election/utils.py | 6 ++-- 9 files changed, 36 insertions(+), 36 deletions(-) diff --git a/README.rst b/README.rst index f2c128b0..b7bc28aa 100644 --- a/README.rst +++ b/README.rst @@ -17,7 +17,7 @@ Things to keep in mind when selecting election dates: which is "The election is held no later than 3 weeks prior to each cycle final release date(on or before ‘R-3’ week)" * At least 48 hours in between email deadline and poll start -* Consider extra-atcs approval deadlines +* Consider extra-acs approval deadlines * Allow at least a week for nomination period ``tox -evenv -- setup-election-config`` can be used to pick some possible dates that need to be @@ -103,10 +103,10 @@ When PTL Candidacy submission ends: * ``tox -e venv -- template-emails end_nominations`` -* When the tag is available, generate ATC rolls, e.g.: +* When the tag is available, generate AC rolls, e.g.: * ``tox -evenv -- generate-rolls`` - * Compare ATC rolls with at least one other election official + * Compare AC rolls with at least one other election official PTL Election Round diff --git a/openstack_election/check_candidacy.py b/openstack_election/check_candidacy.py index 7fa17289..6cf31d57 100755 --- a/openstack_election/check_candidacy.py +++ b/openstack_election/check_candidacy.py @@ -37,9 +37,9 @@ def check_candidate(project_name, email, projects, limit=1, verbose=0): project_list = [projects[project_name]] for project in project_list: - for atc in project.get('extra-atcs', []): - if (atc['email'] == email and utils.check_atc_date(atc)): - print("%2d: Valid extra ATC record:\n\t%s" % (found, atc)) + for ac in project.get('extra-acs', []): + if (ac['email'] == email and utils.check_ac_date(ac)): + print("%2d: Valid extra AC record:\n\t%s" % (found, ac)) found += 1 if found >= limit: return found diff --git a/openstack_election/cmds/change_owners.py b/openstack_election/cmds/change_owners.py index d42914b4..40215c81 100644 --- a/openstack_election/cmds/change_owners.py +++ b/openstack_election/cmds/change_owners.py @@ -110,8 +110,8 @@ def usage(argv=sys.argv): parser.add_argument("-i", "--ignore", help="Account Id numbers to skip", action='append') parser.add_argument("-l", "--legacy", help="Path to legacy projects file") - parser.add_argument("-n", "--no-extra-atcs", help='Omit "extra ATCs"', - dest='no_extra_atcs', action='store_true') + parser.add_argument("-n", "--no-extra-acs", help='Omit "extra ACs"', + dest='no_extra_acs', action='store_true') parser.add_argument("-o", "--outdir", help="Create an output directory") parser.add_argument("-p", "--projects", help="Path to local projects file") parser.add_argument("-r", "--ref", help="Specify a Governance refname") diff --git a/openstack_election/owners.py b/openstack_election/owners.py index 3b85386f..d05812c6 100644 --- a/openstack_election/owners.py +++ b/openstack_election/owners.py @@ -136,13 +136,13 @@ def main(options): else: sigs_file = None - # Whether to omit "extra ATCs" - if options.no_extra_atcs: - no_extra_atcs = options.no_extra_atcs - elif 'no-extra-atcs' in config: - no_extra_atcs = config['no-extra-atcs'] + # Whether to omit "extra ACs" + if options.no_extra_acs: + no_extra_acs = options.no_extra_acs + elif 'no-extra-acs' in config: + no_extra_acs = config['no-extra-acs'] else: - no_extra_atcs = False + no_extra_acs = False # Output file directory if options.outdir: @@ -237,14 +237,14 @@ def main(options): for sig in sigs_repos: for repo in sigs_repos[sig]: if 'sigs' not in gov_projects: - gov_projects['sigs'] = {'deliverables': {}, 'extra-atcs': []} + gov_projects['sigs'] = {'deliverables': {}, 'extra-acs': []} if sig not in gov_projects['sigs']['deliverables']: gov_projects['sigs']['deliverables'][sig] = {'repos': []} gov_projects['sigs']['deliverables'][sig]['repos'].append( repo['repo']) - extra_atcs = repo.get('extra-atcs', []) - if extra_atcs: - gov_projects['sigs']['extra-atcs'].extend(extra_atcs) + extra_acs = repo.get('extra-acs', []) + if extra_acs: + gov_projects['sigs']['extra-acs'].extend(extra_acs) # A cache of full repo names existing in Gerrit, used to filter out repos # listed in governance which don't actually exist @@ -503,12 +503,12 @@ def main(options): else: stamp = start.isoformat(sep=' ').split('.')[0] - # Iterate over all extra-atcs entries - if not no_extra_atcs: + # Iterate over all extra-acs entries + if not no_extra_acs: for project in gov_projects: - for extra_atc in gov_projects[project].get('extra-atcs', []): - name = extra_atc['name'] - email = extra_atc['email'] + for extra_ac in gov_projects[project].get('extra-acs', []): + name = extra_ac['name'] + email = extra_ac['email'] address = normalize_email(email) if address in all_emails: owner = all_emails[address] diff --git a/openstack_election/templates/combined_nominations_kickoff.j2 b/openstack_election/templates/combined_nominations_kickoff.j2 index 14e4d75f..75581549 100644 --- a/openstack_election/templates/combined_nominations_kickoff.j2 +++ b/openstack_election/templates/combined_nominations_kickoff.j2 @@ -34,15 +34,15 @@ through to {{ election_end }}. The electorate for the TC election are the OpenStack Foundation Individual Members who have a code contribution to one of the official teams over the {{ start_release }} to {{ end_release }} timeframe, {{ time_frame }}, as well as -any Extra ATCs who are acknowledged by the TC. The electorate for a +any Extra ACs who are acknowledged by the TC. The electorate for a PTL election are the OpenStack Foundation Individual Members who have a code contribution over the {{ start_release }} to {{ end_release }} timeframe, {{ time_frame }}, in a deliverable repository maintained by the team which the PTL would lead, as -well as the Extra ATCs who are acknowledged by the TC for that +well as the Extra ACs who are acknowledged by the TC for that specific team. The list of project teams can be found at https://governance.openstack.org/tc/reference/projects/ and their -individual team pages include lists of corresponding Extra ATCs. +individual team pages include lists of corresponding Extra ACs. Please find below the timeline: diff --git a/openstack_election/templates/combined_voting_kickoff.j2 b/openstack_election/templates/combined_voting_kickoff.j2 index e9f0ed02..1a9c9680 100644 --- a/openstack_election/templates/combined_voting_kickoff.j2 +++ b/openstack_election/templates/combined_voting_kickoff.j2 @@ -12,13 +12,13 @@ You are eligible to vote in the TC election if you are a Foundation individual member[0] that also has committed to any official project team's deliverable repositories[1] over the {{ time_frame }} timeframe ({{ start_release }} to {{ end_release }}) or if you are -in the list of extra-atcs[2] for any official project team. +in the list of extra-acs[2] for any official project team. You are eligible to vote in a PTL election if you are a Foundation individual member[0] and had a commit in one of that team's deliverable repositories[1] over the {{ time_frame }} timeframe ({{ start_release }} to {{ end_release }}) or if you are in that team's -list of extra-atcs[2]. +list of extra-acs[2]. If you are eligible to vote in an election, you should find your email with a link to the Condorcet Internet Voting Service (CIVS) page @@ -56,7 +56,7 @@ Happy voting, [1] The list of the repositories eligible for electoral status: {{ reference_url }} -[2] Look for the extra-atcs element in [1] +[2] Look for the extra-acs element in [1] [3] Sign into review.openstack.org: Go to Settings > Contact Information. Look at the email listed as your preferred email. diff --git a/openstack_election/templates/tc_nominations_kickoff.j2 b/openstack_election/templates/tc_nominations_kickoff.j2 index 9eba4116..e286c2f4 100644 --- a/openstack_election/templates/tc_nominations_kickoff.j2 +++ b/openstack_election/templates/tc_nominations_kickoff.j2 @@ -21,7 +21,7 @@ directly-elected TC seat. The election will be held from {{ election_start }} through to {{ election_end }}. The electorate are the Foundation individual members that are also committers for one of the official teams[3] over the {{ time_frame }} timeframe ({{ start_release }} to -{{ end_release }}, as well as the extra-ATCs who are acknowledged by the TC[4]. +{{ end_release }}, as well as the extra-ACs who are acknowledged by the TC[4]. Please see the website[5] for additional details about this election. Please find below the timeline: @@ -41,7 +41,7 @@ Thank you, [1] https://governance.openstack.org/election/#how-to-submit-a-candidacy [2] https://www.openstack.org/community/members/ [3] https://governance.openstack.org/tc/reference/projects/ -[4] https://releases.openstack.org/{{ last_release }}/schedule.html#p-extra-atcs +[4] https://releases.openstack.org/{{ last_release }}/schedule.html#p-extra-acs [5] https://governance.openstack.org/election/ [6] https://governance.openstack.org/election/#election-officials diff --git a/openstack_election/templates/tc_voting_kickoff.j2 b/openstack_election/templates/tc_voting_kickoff.j2 index 062fa5d4..2a9d5896 100644 --- a/openstack_election/templates/tc_voting_kickoff.j2 +++ b/openstack_election/templates/tc_voting_kickoff.j2 @@ -11,7 +11,7 @@ You are eligible to vote if you are a Foundation individual member[1] that also has committed to one of the official project teams' deliverable repositories[2] over the {{ time_frame }} timeframe ({{ start_release }} to {{ end_release }}) or if you are -one of the extra-atcs.[3] +one of the extra-acs.[3] If you are eligible to vote in an election, you should find your email with a link to the Condorcet Internet Voting Service (CIVS) page @@ -47,7 +47,7 @@ Thank you, [1] https://www.openstack.org/community/members/ [2] {{ reference_url }} -[3] Look for the extra-atcs element in [2] +[3] Look for the extra-acs element in [2] [4] Sign into review.openstack.org: Go to Settings > Contact Information. Look at the email listed as your preferred email. That is where the ballot has been sent. diff --git a/openstack_election/utils.py b/openstack_election/utils.py index 4a32155d..fa97298c 100644 --- a/openstack_election/utils.py +++ b/openstack_election/utils.py @@ -234,10 +234,10 @@ def candidate_files(review): # Governance functions -def check_atc_date(atc): - if 'expires-in' not in atc: +def check_ac_date(ac): + if 'expires-in' not in ac: return False - expires_in = datetime.datetime.strptime(atc['expires-in'], '%B %Y') + expires_in = datetime.datetime.strptime(ac['expires-in'], '%B %Y') expires_in = expires_in.replace(tzinfo=pytz.utc) return conf['timeframe']['end'] < expires_in