election
election copied to clipboard
OpenStack Elections repository. Mirror of code maintained at opendev.org.
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 <https://governance.openstack.org/tc/reference/charter.html>_ 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-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
checked by the election officials and TC. Once these dates are confirmed/merged
election officials can create a change against the releases repo <https://opendev.org/openstack/releases>_
to include these dates in the development schedule. A helper tool tox -evenv -- update-releases-calendar
will generate this change, but needs to be verified before publishing
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.txtfile or requesting the candidate to update their 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 AC rolls, e.g.:
tox -evenv -- generate-rolls- Compare AC rolls with at least one other election official
PTL Election Round
Before PTL Election begins:
-
Send email to the mailing list or eligible electorates to opt in to CIVS voting system using their Gerrit email address in https://civs1.civs.us/cgi-bin/opt_in.pl
tox -e venv -- template-emails voting_optin_civs
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
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 ptledit doc/sources/results/release/ptl.yamland set election winners totrue- NOTE: We no longer need document TC-APPOINTMENT or LEADERLESS as the
update-governancestep 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.rstgenerated by building the docs withtox -e docsafterdoc/source/results/release/ptl.yamlhas 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 <https://governance.openstack.org/tc/reference/charter.html>_ 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 the mailing list to opt in to CIVS voting system using their Gerrit email address in https://civs1.civs.us/cgi-bin/opt_in.pl
tox -e venv -- template-emails voting_optin_civs
-
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 tcedit doc/source/results/release/tc.yamlsetting the winners totrue- Commit change and push review
-
Send TC Results email
- This is
doc/source/results/release/announce_tc.rstgenerated by building the docs withtox -e docsafterdoc/source/results/release/tc.yamlhas been created and updated
- This is
-
Update
reference/membersin governance repository- Add new members
- Remove
chairandvice-chairfrom file - Commit change and push review
-
Update
tc-election-summary.pywith election statistics -
Optionally send TC Election Statistics email