OpenStack Elections repository
Go to file
Hervé Beraud d113fc7087 Stop to use the __future__ module.
The __future__ module [1] was used in this context to ensure compatibility
between python 2 and python 3.

We previously dropped the support of python 2.7 [2] and now we only support
python 3 so we don't need to continue to use this module and the imports
listed below.

Imports commonly used and their related PEPs:
- `division` is related to PEP 238 [3]
- `print_function` is related to PEP 3105 [4]
- `unicode_literals` is related to PEP 3112 [5]
- `with_statement` is related to PEP 343 [6]
- `absolute_import` is related to PEP 328 [7]

[1] https://docs.python.org/3/library/__future__.html
[2] https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html
[3] https://www.python.org/dev/peps/pep-0238
[4] https://www.python.org/dev/peps/pep-3105
[5] https://www.python.org/dev/peps/pep-3112
[6] https://www.python.org/dev/peps/pep-0343
[7] https://www.python.org/dev/peps/pep-0328

Change-Id: I2f9d4c9a760bd9a9dbb9cde5bcb8af24fd4b34b9
2020-07-24 13:44:46 +02:00
.zuul.d Drop Python 3.5 jobs 2020-03-26 15:12:24 +00:00
candidates Merge "Add Feilong Wang candidancy for Magnum PTL" 2020-03-31 20:13:18 +00:00
doc Switch to newer openstackdocstheme version 2020-06-10 16:59:45 +02:00
openstack_election Stop to use the __future__ module. 2020-07-24 13:44:46 +02:00
tools Stop to use the __future__ module. 2020-07-24 13:44:46 +02:00
.gitignore Add new combined election type 2019-05-28 15:43:35 +10:00
.gitreview OpenDev Migration Patch 2019-04-19 19:31:57 +00:00
.stestr.conf Switch to stestr 2018-07-05 13:31:26 +07:00
.yamllint Allow human readable yaml 2017-01-05 12:57:03 +11:00
bindep.txt bindep: Supply a bindep.txt file to avoid the 'global' set 2017-10-12 12:08:12 +11:00
configuration.yaml Set Victoria configuration 2020-02-26 18:18:30 +00:00
exceptions.txt Add Hao Wang to exceptions.txt 2018-02-12 19:36:24 +00:00
README.rst Update the README to describe the current process for LEADERLESS process 2020-04-15 10:13:30 +10:00
requirements.txt Small cleanups 2020-02-23 16:24:13 +01:00
setup.cfg Small cleanups 2020-02-23 16:24:13 +01:00
setup.py Switch to newer openstackdocstheme version 2020-06-10 16:59:45 +02:00
test-requirements.txt Switch to newer openstackdocstheme version 2020-06-10 16:59:45 +02:00
tox.ini Switch to newer openstackdocstheme version 2020-06-10 16:59:45 +02:00

This repository contains OpenStack Elections reference documents and tooling to run elections.

Election Process

PTL Elections

Selecting Election Dates

Things to keep in mind when selecting election dates:

  • At least 48 hours in between email deadline and poll start
  • Consider extra-atcs approval deadlines
  • Should start around R-4 for nominations period
  • Allow at least a week for nomination period

setup-election-config can be used to pick some obvous dates that need to be checked by the election officials and TC

Preparation

As early as possible but at least a month before election starts:

  • Edit elections details (timeline, cycle timeframe):
    • edit configuration.yaml
  • Prepare new election, e.g.:
    • tox -evenv -- create-directories
  • Commit to update website
  • Update Release Schedule

A couple of weeks before election starts:

  • Send PTL Election Season email
    • tox -e venv -- template-emails election_season

PTL Candidacy Round

When PTL Candidacy start:

  • Send PTL Nominations Kickoff email
    • tox -e venv -- template-emails nominations_kickoff

During the PTL Candidacy round:

  • Validate candidacy, e.g.:
    • tox -evenv -- check-all-candidacies, or
    • tox -evenv -- ci-check-all-candidate-files candidates/release/project/candidates, or
    • tox -evenv -- check-candidacy change_id
  • To +2 a candidate:
    • check commit link is indeed valid
    • check filename is email address
    • cursory check the candidacy statement
  • To +Workflow, checks the previous +2 details, find another commits using --limit 5 (optional)
  • Check candidate list and fix badly generated names through changes to the exception.txt file or requesting the candidate to update thier OSF member profile.

Once the email deadline is reached:

  • Ask the TC chair to tag the governance repository
  • Generate the electorate rolls. This generates the rolls for all project teams even if they aren't going to hold an election.
    • tox -evenv -- generate-rolls

A couple of days before the candidacy submission ends:

  • Render statistics and send Motivation call for PTL candidacy round, e.g.:
    • tox -evenv -- render-statistics
  • Send PTL Nominations Last Days email:
    • tox -e venv -- template-emails nominations_last_days

When PTL Candidacy submission ends:

  • Send PTL Nominations End email
    • tox -e venv -- template-emails end_nominations
  • When the tag is available, generate ATC rolls, e.g.:
    • tox -evenv -- generate-rolls
    • Compare ATC rolls with at least one other election official

PTL Election Round

When PTL Election begins:

  • Create CIVS page
  • Upload rolls
    • CIVS has a maximum number of electorate emails you can upload at a time without crashing, limit to 500 at a time
  • Send PTL Voting Kickoff email
    • tox -e venv -- template-emails voting_kickoff

A couple of days before the PTL Election ends:

  • Send PTL Voting Last Days email
    • tox -e venv -- template-emails voting_last_days

When PTL Election ends:

  • Close the election and update the results:
    • tox -evenv -- close-election --round ptl
    • edit doc/sources/pike/ptl.yaml and set election winners to True
    • NOTE: We no longer need document TC-APPOINTMENT or LEADERLESS as the update-governance step will communicate that to the TC and the process in that repo will set the project leader.
  • Commit the change and review the results
  • Send PTL Results email
    • This is doc/source/results/release/announce_ptl.rst generated by building the docs with tox -e docs after doc/source/results/release/ptl.yaml has been created and updated
  • Update governance repo:
    • tox -e venv update-governance -- --governance-repo ../governance/

TC Elections

Selecting Election Dates

Things to keep in mind when selecting election dates:

  • Needs to conclude by S-3 (3 Weeks prior to OpenStack Summit)
  • Allow for at least 48 hours between email deadline and polling beginning
  • Allow at least a week for nomination and campaign periods

setup-election-config can be used to pick some obvous dates that need to be checked by the election officials and TC

Preparation

As early as possible but at least a month before election starts:

  • Edit elections details (timeline, cycle timeframe):
    • edit configuration.yaml
  • Commit to update website
  • Update Release Schedule

A couple of weeks before election starts:

  • Send TC Election Season email
    • tox -e venv -- template-emails election_season

TC Candidacy Round

When TC Candidacy starts:

  • Send TC Nominations Kickoff email
    • tox -e venv -- template-emails nominations_kickoff

During the TC Candidacy round:

A couple of days before the candidacy submission ends:

  • Send TC Nominations Last Days email
    • tox -e venv -- template-emails nominations_last_days

When TC Candidacy submission ends:

  • Send TC End Nominations email
    • tox -e venv -- template-emails end_nominations

Once the email deadline is reached:

  • Ask the TC chair to tag the governance repository
  • Generate the electorate rolls.
    • tox -evenv -- generate-rolls

TC Campaigning

The TC election includes a period after the candidates are defined but before the election, for candidates to answer questions from the community. Open this with:

  • tox -e venv -- template-emails campaigning_kickoff

TC Election Round

Before TC Election begins:

  • Create CIVS page
    • Title the poll: $RELEASE Technical Committee Election Poll

    • Enable detailed ballot reporting

    • Send to other officials to verify

      • Check number of seats
      • Check closing date

When TC Election begins:

  • Upload rolls
    • CIVS has a maximum number of electorate emails you can upload at a time without crashing, limit to 500 at a time* Send TC Voting Kickoff email
    • tox -e venv -- template-emails voting_kickoff

A couple of days before the TC Election ends:

  • Send TC Voting Last Days email
    • tox -e venv -- template-emails voting_last_days

When TC Election ends:

  • Close the election
  • Run: tox -e venv -- close-election --round tc
    • edit doc/source/pike/tc.yaml setting the winners to True
    • Commit change and push review
  • Send TC Results email
    • This is doc/source/results/release/announce_tc.rst generated by building the docs with tox -e docs after doc/source/results/release/tc.yaml has been created and updated
  • Update reference/members in governance repository
    • Add new members
    • Remove chair and vice-chair from file
    • Commit change and push review
  • Update tc-election-summary.py with election statistics
  • Optionally send TC Election Statistics email