In order to make the governance updates consistent with how empty
IRC nicks were indicated in projects.yaml previously, replace empty
values with the string "No nick supplied" instead.
Change-Id: I67cf2586f300dc65a23c80fef7d142bbe00eaafb
When no candidate is supplied for a PTL position, replace the PTL
entry for that project with a placeholder pending subsequent
governance changes in which the TC will set appointments.
Change-Id: I24ab692425f57d53669bc69094e72e744c868a25
The intent for the get_irc() function is to return an empty string
when no nick is found, but the API tends to provide a null (None)
value explicitly. When this happens, convert it to the empty string
too.
Change-Id: I9b62b1d722136246d1987a1a45ca771bdc02579c
Remove some string/binary conversion calls from the governance
update script which were only relevant for Python 2.7. We run these
under tox with a default Python 3.x interpreter now.
Change-Id: Icd2c8614d2bd5b9b2a1624afdfc6e6a1512346f9
Brown bag fix for an oversight, add the [tc] subject tag on the
combined_nominations_last_days E-mail announcement template.
Change-Id: I95ecb094abbb26efc6ab40885550e47aaf62f617
This is a bit of a mashup from the individual TC and PTL election
templates for the nominations_last_days event.
Change-Id: I1ff77ccceb3fc19015c237a53dfe97dc9127eeda
When running TC and PTL elections concurrently, include instructions
and information about candidacy and electorate requirements for
both in the kickoff event E-mail.
Change-Id: I6bc3116053c676eb579c607c515c2eaee9ca9785
In the E-mail templates for opening the election season, incorporate
information with the start date and time for nominations.
Change-Id: I51f9f6d6432668f9b8223d3d54f598098c33754b
Our election results announcement templates had headers for To and
Subject, but the bulk of our E-mail templates had neither. Update
the existing ones to reflect the transition from the openstack-dev
ML to openstack-discuss, and add appropriate headers to all other
templates lacking them.
Change-Id: Ic606143e1deb7d669f09e26cdfbe0a2bce103ad3
We haven't had "programs" since the 2014-12-02 OpenStack project
structure reform specification was approved by the OpenStack TC.
Update the terminology in our templates accordingly.
Change-Id: I3082f6c9d8d1d1ae0a26853589d8b54810c6e260
When running TC and PTL elections concurrently, note that in the
open season message along with including the note about PTL
elections with no candidates.
Change-Id: I3a5674061f27c87b9d3006bcd24e3166488742bb
Instead of silently doing nothing when asked to render a message for
an event with no available template, return nonzero and provide an
explanation.
Change-Id: I8b86ad1d90f8e83f0d37cade73a94be041b07ae7
When supplying -p/--projects to the owners script for a custom
projects list, assume this means not to apply the default legacy
projects list. If -l/--legacy is also supplied, the indicated custom
legacy projects are still incorporated into the results.
Change-Id: I383317c8fdac3f6d8cfa2972326ff9fb9f64ab39
Passing -m or --nonmember (-n is already taken) to the owners script
will cause it to include contributors who aren't OSF members when
creating electoral rolls.
Change-Id: Ia79ad0bc09b14b37f3288d018c680f9283f4a510
This type is for when TC and PTL elections must overlap. There is a
built in assumption that each "phase" of an election:
- Nominations
- Campaigning
- Election
are completely synchronous
NOTE: This change leaves the template-emails broken, as I do not add new
functions for combined_$email. This is because I'd like to
If64c075b4a799574bc51ccd13019d472ee9a4b0e merge first, and I'd also like
to avoid to many rebases
Change-Id: Id39c50e71dc91bea8034ce443287463094e2f37f
The CI jobs will fail outside of election time due to name mismatches,
but we don't need to run an election candidate CI job when there is no
active election.
Change-Id: I5b8d37d1c66fd96564741aa0aa69cc840ad39950
Update the URLs in various templates and generated content to
consistently use https:// instead of a mix of that and http://, and
while we're at it set the homepage for the Python package of this
repo to the election site rather than the OpenStack Foundation site.
Change-Id: I4fa53076ed9bcdf1545d9c4aa5e80dc5dad95210
The future_release expansion variable was being incorrectly set to
the name of the end release from the electorate contribution
timeframe. Its intended use however was redundant with the release
variable. Remove future_release entirely and just use release in
those templates.
Change-Id: I7df3592112d543b52b06c99bfbc05107bfde45f8
We currently have 2 CLI interfaces for generating change owners.
- owners ; and
- generate-rolls
And we maintain a shim to translate between calling arguments. In
I45d6c4d4fd454ae426883006db1e58dbd373bbdf (Support custom local
projects and legacy projects) we added --legacy and --projects to
owners. This change adds those options to the shim.
Change-Id: Ib38f26744e279f1271679ce1d075ad5a4e3ddb27
It turns out that structure of the TC and PTL elections is very similar
and therefore the template choices are basically the same. Remove the
overly complex sub-parser and always use the election_type from the YAML
configuration.
Also many of the fmt_args where shared, or harmless to share between
each election type. pull the similar items out and only adds the items
specific to each election type
Change-Id: Ifcc8a376e7d8d9a79ae7a9191cb2452f8cfbae43
While removing the duplication standardize on 'leaderless' as a term to
descibe projects without a defined leader (either a single candidate or
an election). Also standardize on 'election' rather than 'poll'
num_projects_without_candidates and projects_no_candidates are
functionally identical so use a new 'leaderless_count' count instead
projects_polling and list_of_elections are functionally identical so
pick the latter as it aligns with the new terminology
Change-Id: I7aa96e2acb3eca496dda55ded2faddbb09bdbbd1
This consumes (and modifies) render-statistics. Factoring this out will
be done at the end of the series
Change-Id: I878de8288f1ac047d844085f05261a6d3b1daac1
This slightly more complex than expected as we need to tie the template
to the config so we don't try to get_event() for TC events and fail.
This has been done in the least invasive way possible, we'll tidy things
up at the end of the series
Change-Id: Ib3c25072590507f347ee5ab3f3865eb4c991a34b
Add --legacy and --projects options to the owners CLI, which make it
possible to specify local alternatives for the legacy.yaml and
projects.yaml files. This enables easily running the tool for
unofficial/non-OpenStack elections which use the same Gerrit and
similar rules for determining their electorates other than the
actual repository lists.
Change-Id: I45d6c4d4fd454ae426883006db1e58dbd373bbdf
Now that we don't support Python 2.7 with this tooling, we can drop
the explicit encoding in invitee names. Without this change, they're
recorded as explicit byte sequences instead of normal UTF-8 strings.
Change-Id: I9e0220dbdb241ab6bd464fd5cdfcaf5f3e2a6399