b41a6dffb4
Change-Id: I7eeac788f390de8ced205ee5ba327aaaec060b5b |
||
---|---|---|
.zuul.d | ||
candidates | ||
doc | ||
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 |
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:
- Election Dates must be as per the TC charter 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
- 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
, ortox -evenv -- ci-check-all-candidate-files candidates/release/project/candidates
, ortox -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:
- Send email to eligible electorates to opt in to CIVS voting system using their Gerrit email address in https://civs1.civs.us/cgi-bin/opt_in.pl
- 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 toTrue
- 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 withtox -e docs
afterdoc/source/results/release/ptl.yaml
has been created and updated
- This is
- 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:
- Election Dates must be as per the TC charter which is "The election is held no earlier than 6 weeks and no later than 4 weeks prior to each cycle final release date (between ‘R-6’ and ‘R-4’ week)"
- 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:
- 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
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:
- Send email to eligible electorates to opt in to CIVS voting system using their Gerrit email address in https://civs1.civs.us/cgi-bin/opt_in.pl
- 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 toTrue
- Commit change and push review
- Send TC Results email
- This is
doc/source/results/release/announce_tc.rst
generated by building the docs withtox -e docs
afterdoc/source/results/release/tc.yaml
has been created and updated
- This is
- Update
reference/members
in governance repository- Add new members
- Remove
chair
andvice-chair
from file - Commit change and push review
- Update
tc-election-summary.py
with election statistics - Optionally send TC Election Statistics email