Metadata-Version: 1.1
Name: openstack-election
Version: 0.0.1.dev2571
Summary: OpenStack Election Documents
Home-page: https://governance.openstack.org/election/
Author: OpenStack Election Officials
Author-email: openstack-discuss@lists.openstack.org
License: UNKNOWN
Description: 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-atcs 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``, 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 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 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
          <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 ptl``
          * ``edit doc/sources/results/release/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:
        
        * 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 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/results/release/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
        
        
Platform: UNKNOWN
Classifier: Environment :: OpenStack
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
