54d0a77b94
When iterating over Gerrit E-mail addresses to find a matching OSF member Id, stop once one is found. That was the original intent, but a continue was used instead of a break within the conditional causing (perhaps very many) unnecessary additional queries against the member lookup API. Change-Id: I025170b726c2edd9dcb4996de99eb541b4e8abcf |
||
---|---|---|
.zuul.d | ||
candidates | ||
doc/source | ||
openstack_election | ||
tools | ||
.gitignore | ||
.gitreview | ||
.stestr.conf | ||
.yamllint | ||
bindep.txt | ||
configuration.yaml | ||
exceptions.txt | ||
README.rst | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
openstack/election
This repository contains OpenStack Elections reference documents and tooling to run elections.
Election officials 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
Preparation
A month before election starts:
- Edit elections details (timeline, cycle timeframe):
- edit configuration.yaml
- Prepare new election, e.g.:
- tox -evenv -- create-directories
- Update index.rst to include ptl.rst
- Commit to update website
- Update Release Schedule
A couple of weeks before election starts * Send 'PTL Election Season' email
PTL Candidacy Round
When PTL Candidacy start * Send 'PTL Nominations Kickoff' email
During the PTL Candidacy round: * Validate candidacy, e.g.: * tox -evenv -- check-all-candidacies, 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 (optionals)
- Check candidate list and fix badly generated names through changes to the exception.txt file
Once the email deadline is reached: * Ask the TC chair to tag the governance repository
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
When PTL Candidacy submission ends: * Send 'PTL Nominations End' email
When PreferredEmailDeadLine is reached: * Ask the TC chair to tag the governance repository with the tag defined in the configuration.yaml * 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 ( https://wiki.openstack.org/wiki/Election_Officiating_Guidelines#Running_the_election_itself ) * 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
A couple of days before the PTL Election ends: * Send 'PTL Voting Last Days' email
When PTL Election ends: * Close the election and udpate the results: * tox -evenv -- close-election ptl * edit doc/sources/pike/ptl.yaml to set election winners to True * Update index.rst to comment ptl.rst candidate list * Commit the change and review the results * Send 'PTL Results' email * 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 begininning
- Allow at least a week for nomination and campaign periods
Preparation
A month before election starts:
- Edit elections details (timeline, cycle timeframe):
- Edit configuration.yaml
- Update index.rst to include tc.rst instead of ptl.rst
- Commit to update website
- Update Release Schedule
A couple of weeks before election starts * Send 'TC Election Season' email
TC Candidacy Round
When TC Candidacy starts: * Send 'TC Nominations Kickoff' email
During the TC Candidacy round: * To +2 a candidate: * check candidate profile using https://www.openstack.org/community/members/ * check filename is email address * cursory check the candidacy statement * To +Workflow, check the previous +2 details
A couple of days before the candidacy submission ends: * Send 'TC Nominations Last Days' email
When TC Candidacy submission ends: * Send 'TC End Nominations' email
When PreferredEmailDeadLine is reached: * Generate ATC rolls, e.g.: * tox -evenv -- generate-rolls
TC Election Round
When PTL Election begins: * Create CIVS page * Upload rolls * Send 'TC Voting Kickoff' Email
A couple of days before the TC Election ends: * Send 'TC Voting Last Days' email
When TC Election ends: * close the election and update the results: * tox -e venv -- close-election tc * edit doc/source/pike/tc.yaml * Commit the change and review the results * Send 'TC Results' * Update tc-election-summary.py with election statistics * Send 'TC Election Statistics'