diff --git a/README.rst b/README.rst index f84868a..85b49e0 100644 --- a/README.rst +++ b/README.rst @@ -1,103 +1,17 @@ -airship/election -================ +Airship Elections +================= -This repository contains Airship Elections reference documents -and tooling to run elections. +The Airship election repository provides a platform for election officials to +organize Airship elections as well as publicize historical election results, +election rules, and election procedures. We manage this repository in +accordance with the rules outlined in our `governance`_. -Election officials process --------------------------- +We encourage voicing questions about upcoming elections and the election +process in our `Slack workspace`_ or on our `mailing lists`_. -The Airship election process is currently run manually by the election -officials. We are considering to move to automated steps once the process is -stabilized. +You can learn more about Airship on the `Airship wiki`_. -TS Elections -============ - -Selecting Election Dates ------------------------- - -Things to keep in mind when selecting election dates: - -* Allow for at least 48 hours between email deadline and polling beginning -* Allow at least a week for nomination period - -Preparation ------------ - -As early as possible but at least a month before election starts: - -* Edit elections details (timeline, cycle timeframe): - - * Commit to update website - * Update Release Schedule - -Preferably 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 is a contributor or has otherwise demonstrated commitment to Airship - * check filename is email address - * cursory check the candidacy statement - * check the affiliation information is in commit message - -* 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 - - -Once the email deadline is reached: - -* Ask the TC secretary to tag the governance repository -* Generate the electorate rolls - -TC Election Round ------------------ - -When TC Election begins: - -* Create CIVS page - - * Enable detailed ballot reporting - -* 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 -* Choose the winners based on the available seats accumulating the affiliation - requirement being no more than 2 members affiliated to the same company -* Send 'TC Results' email -* Update reference/members in governance repository - - * Add new members to airship/governance/src/branch/master/reference/tc/members - * Commit change & push review - -* [Optional] Send 'TC Election Statistics' - -Working Committee Elections -=========================== - -TBD +.. _Airship wiki: https://wiki.openstack.org/wiki/Airship +.. _governance: https://opendev.org/airship/governance +.. _mailing lists: http://lists.airshipit.org/cgi-bin/mailman/listinfo +.. _Slack workspace: http://airshipit.org/slack diff --git a/doc/source/conf.py b/doc/source/conf.py index 015b09a..dee324d 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -55,9 +55,9 @@ author = 'The Airship Authors' # built documents. # # The short X.Y version. -version = '0.0.1' +#version = '0.0.1' # The full version, including alpha/beta/rc tags. -release = '0.0.1' +#release = '0.0.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -120,6 +120,8 @@ html_theme_options = { } html_logo = 'img/airship.logo.white.svg' +html_show_sourcelink = False +html_show_sphinx = False # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] diff --git a/doc/source/index.rst b/doc/source/index.rst index 5d36005..b6fca03 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -1,194 +1,21 @@ -================= -Airship Elections -================= +============================= +Welcome to Airship Elections! +============================= - -+-----------------+-----------------------------+----------------------------+ -| Events | Start Date | End Date | -+=================+=============================+============================+ -| TC Nominations | June 18, 2019 19:00 UTC | June 25, 2019 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| TC Campaign | June 25, 2019 19:00 UTC | July 2, 2019 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| TC Election | July 2, 2019 19:00 UTC | July 9, 2019 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| WC Nominations | July 16, 2019 19:00 UTC | July 30, 2019 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| WC Campaign | July 30, 2019 19:00 UTC | August 6, 2019 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| WC Election | August 6, 2019 19:00 UTC | August 13, 2019 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| WC Nominations* | October 9, 2019 19:00 UTC | October 16, 2019 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| WC Campaign* | October 16, 2019 19:00 UTC | October 23, 2019 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| WC Election* | October 23, 2019 19:00 UTC | October 30, 2019 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| WC Nominations* | January 6, 2020 19:00 UTC | January 20, 2020 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| TC Nominations* | January 6, 2020 19:00 UTC | January 13, 2020 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| TC Campaign* | January 13, 2020 19:00 UTC | January 20, 2020 19:00 UTC | -+-----------------+-----------------------------+----------------------------+ -| TC Election* | January 22, 2020 16:00 UTC | January 29, 2020 16:00 UTC | -+-----------------+-----------------------------+----------------------------+ - -\* Denotes a special election for a vacant seat. - -See `Election system`_, `TC details`_ and `WC details`_. - - -Previous Elections -================== +.. include:: ../../README.rst .. toctree:: - :maxdepth: 1 + :caption: Airship Elections + :hidden: + :maxdepth: 2 - results/2019/tc - results/2019/wc - results/2020/tc - results/2020/wc + procedures + results/index +.. toctree:: + :caption: Airship Documentation + :hidden: -Election Officials -================== - -* Matt McEuen (mattmceuen), madgin at madgin dot net -* Chris Hoge (hogepodge), chris at openstack dot org -* Alan Meadows (alanmeadows), alan.meadows at gmail dot com -* Rodolfo Pacheco (jezogwza), jezogwza at gmail dot com - -For any questions, please contact officials by mail or over IRC at -#airshpit Freenode channel. - - -.. _Election system: - -Election System -=============== - -Elections will be held using CIVS and a Condorcet algorithm -(Schulze/Beatpath/CSSD variant). Any tie will be broken using -`Governance_TieBreaking`_. - - -.. _TC details: - -Technical Committee election -============================ - -Elected Positions ------------------ - -Under the rules of the Airship `Governance`_, we need to elect 5 TC seats for this -election. Seats are valid for one-year terms. - -* Technical Committee member - 5 positions. - - -Electorate ----------- - -The electorate for this election are the individuals who earned the Contributor -status some time in the past 12 months prior to the nomination period starts as -defined by the Airship `Governance`_ document. - - -Candidates ----------- - -Anyone who has demonstrated a commitment to Airship (community building, -communications, or has had code merged to the Airship project repositories) -within the last 12 months is eligible to run for the Technical Committee, -as specified in the Airship `Governance`_ document. - -Nominees propose their candidacy by submitting a text file to the -airship/election repository. The file must be placed in -candidates//TC/. -The commit message for the patch must contain the candidate's current -affiliation (company name or 'independent'). -The candidacy is then confirmed by elections officials through gerrit. -See `How to submit a candidacy`_ documentation below. - - -.. _WC details: - -Working Committee election -========================== - -Under the rules of the Airship `Governance`_, we need to elect 5 Working Committee -seats for this election. Seats are valid for one-year terms. - -* Technical Committee member - 5 positions. - - -Electorate ----------- - -The electorate for this election the Core Reviewers on the Airship projects at the -time of the election. - - -Candidates ----------- - -Any Contributor can propose their candidacy. - -Nominees propose their candidacy by submitting a text file to the -airship/election repository. The file must be placed in -candidates//WC/. -The commit message for the patch must contain the candidate's current -affiliation (company name or 'independent'). -The candidacy is then confirmed by elections officials through gerrit. -See `How to submit a candidacy`_ documentation below. - - -.. _How to submit a candidacy: - -How to submit a candidacy -========================= - -Each candidate must nominate themselves for each elected position, and are -encouraged to submit their own candidacy to gerrit, although where -appropriate, others may submit a candidacy for those who have already -self-nominated by other means. - -If you are not already familiar with the Airship/OpenStack development workflow, -see this more detailed documentation: -https://docs.openstack.org/infra/manual/developers.html - -Candidacies now need to be submitted as a text file to the airship/election -repository. Here are the required steps: - -* Clone the election repository: - git clone https://opendev.org/airship/election.git ; cd election -* Create a new file - candidates/// - containing the candidate statement. -* Commit the candidacy: - git add candidates///; - git commit -* In the text editor add a title and specify your affiliation like: - - Adding candidacy for role - - Affiliation: -* Save the text and exit the text editor -* Submit your candidacy: git review - -For example Dana Developer (ddev on IRC) would compose a platform in a file -named "candidates/2019/TC/dana\@inconnu.org" to submit a TC candidacy -for the 2019 election. - -After the candidacy is submitted to gerrit, verification and approval will -be performed by elections officials, followed by an update to the approved -candidate list. - -.. seealso:: - - See the `Election Officiating Guidelines`_ page in the wiki for details on the - election process. - -.. _Election Officiating Guidelines: https://wiki.openstack.org/wiki/Election_Officiating_Guidelines -.. _Governance_TieBreaking: https://wiki.openstack.org/wiki/Governance/TieBreaking -.. _Governance: https://opendev.org/airship/governance/src/branch/master/README.md + Airship Documentation + Airship Governance + Airship Elections diff --git a/doc/source/procedures.rst b/doc/source/procedures.rst new file mode 100644 index 0000000..0ee730e --- /dev/null +++ b/doc/source/procedures.rst @@ -0,0 +1,140 @@ +=================== +Election Procedures +=================== + +Elections are held using the `Condorcet Internet Voting Service (CIVS)`_ with +the Schulze/Beathpath/CSSD algorithm. In the event of a tie, the winner will be +decided following the `Airship Governance Tie Breaking rules`_. + +Preparing for an Election +========================= + +The organizers of an election select election dates that correspond to the end +of a term; however, exceptions can be made. The voting period must begin at +least forty-eight hours after the conclusion of the nomination period, and the +nomination period must be at least one week in duration. + +Election details (i.e. timeline, cycle) should be distributed via the mailing +list a week before the election begins and updated on this site at least a +month before the election begins. + +Orchestrating the Nomination Period +=================================== + +When the candidacy round begins, notify the mailing list and monitor the +election repository for incoming nominations. Merge nominations that: + +* Meet the candidate criteria +* Are titled correctly (i.e. the filename is the candidate's email address) +* Contain an affiliation in the commit message + +When a nomination does not meet the above criteria and the nomination period +has passed, reject it with a -2. + +After the nomination period, tag the governance repository and begin the +election process. + +Orchestrating the Election Period +================================= + +Begin the election by creating a `Condorcet Internet Voting Service (CIVS)`_ +poll with detailed ballot reporting and the Schulze/Beathpath/CSSD algorithm. +Distribute the poll to the electorate and announce the beginning of the +election on the mailing list. + +At the end of the election, close the poll and choose the winners based on the +results, number of available seats, and the affiliation requirements of the +election. Announce the winners over the mailing list, update this repository, +and update the Airship wiki page with the new member names. + +Technical Committee Elections +============================= + +Each June, a Technical Committee election selects five candidates to serve on +the Technical Committee for the following year, no more than two of which may +be employed by the same company. The Working Committee organizes each Technical +Committee election. + +Electorate +---------- + +The electorate for Technical Committee elections includes individuals who +earned contributor status as defined by Airship `Governance`_ some time in the +twelve months prior to the nomination period. + +Candidates +---------- + +Anyone who has demonstrated a commitment to Airship (community building, +communications, or has had code merged to the Airship project repositories) +within the last twelve months is eligible to run for the Technical Committee. + +Working Committee Elections +=========================== + +Each July, a Working Committee election selects five candidates to serve on +the Working Committee for the following year, no more than two of which may +be employed by the same company. The Technical Committee organizes each Working +Committee election. + +Electorate +---------- + +The electorate for the Working Committee elections includes all Airship core +reviewers. + +Candidates +---------- + +Any contributor as defined by Airship `Governance`_ can propose their candidacy +for the working committee. + +.. _Submit Your Candidacy: + +Submit Your Candidacy +===================== + +Each candidate must nominate themselves for each elected position, and are +encouraged to submit their own candidacy to gerrit, although where appropriate, +others may submit a candidacy for those who have already self-nominated by +other means. + +If you are not already familiar with the Airship/OpenStack development +workflow, see this more detailed documentation: +https://docs.openstack.org/infra/manual/developers.html + +Candidacies now need to be submitted as a text file to the airship/election +repository. Here are the required steps: + +* Clone the election repository: + git clone https://opendev.org/airship/election.git ; cd election +* Create a new file + candidates/// containing the + candidate statement. +* Commit the candidacy: + git add candidates///; git + commit +* In the text editor add a title and specify your affiliation like: + + Adding candidacy for role + + Affiliation: +* Save the text and exit the text editor Submit your candidacy: git review + +For example Dana Developer (ddev on IRC) would compose a platform in a file +named "candidates/2019/TC/dana\@inconnu.org" to submit a TC candidacy for the +2019 election. + +After the candidacy is submitted to gerrit, verification and approval will be +performed by elections officials, followed by an update to the approved +candidate list. + +.. seealso:: + + See the `OpenStack Election Officiating Guidelines`_ page in the wiki for + details on the election process. + +.. _Condorcet Internet Voting Service (CIVS): https://civs.cs.cornell.edu/ +.. _Governance: https://opendev.org/airship/governance +.. _Airship Governance Tie Breaking rules: https://opendev.org/airship/governance#user-content-tie-breaking +.. _OpenStack Election Officiating Guidelines: https://wiki.openstack.org/wiki/Election_Officiating_Guidelines diff --git a/doc/source/results/index.rst b/doc/source/results/index.rst new file mode 100644 index 0000000..62fb528 --- /dev/null +++ b/doc/source/results/index.rst @@ -0,0 +1,8 @@ +Historical Election Results +=========================== + +.. toctree:: + :hidden: + :glob: + + */*