OpenStack Elections repository
Go to file
Jeremy Stanley fe5fe24926 Add Wallaby election stats
Update the election stats data for Wallaby TC and Telemetry PTL
polls. Also add the missing train PTL poll stats.

Change-Id: I6a08a1109cb0fe0efd898ed9f9c8c54364fbff21
2020-10-14 16:33:18 +00:00
.zuul.d Drop Python 3.5 jobs 2020-03-26 15:12:24 +00:00
candidates Merge "Adding Erno Kuvaja candidacy for TC" 2020-09-29 23:08:46 +00:00
doc Add Wallaby election stats 2020-10-14 16:33:18 +00:00
openstack_election Merge "Add extra-ATCs from sigs-repos into the electorate" 2020-10-13 03:58:34 +00:00
tools Add Wallaby election stats 2020-10-14 16:33:18 +00: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 up config for Wallaby elections 2020-09-14 23:09: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 Use unittest.mock instead of mock 2020-09-15 17:44:21 +00:00
tox.ini Remove install unnecessary packages 2020-09-15 09:45:09 +08: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