Currently there are 2 leadership types "distributed" and the
Default/unspecified which we treat as the long established PTL model.
Projects that have selected to use the "distributed" model do not
require a PTL election and in fact projects under this model should
reject a PTL nomination as the correct process involves a change the
governance repo.
This change updates 'create-directories' to exclude those projects,
and also updates the ci checks to fail PTL nominations for "distributed"
projects.
Change-Id: Ib4a2ce1e4ee74e8e9a49975017e14172b4d1f576
Currently the create-directories tool can only be run once as if the
candidates/<election>/ directory exists it will abort.
If a project is approved by the TC after the directories are created but
before the election start that candidates directory needs to be created
by hand. Instead change create-directories to only create the
files/directories as needed so it can be run several times.
Change-Id: I62bba67447e2ed91138d6e099b45411cba72be36
If we run the tools (create-directories or check-all-candidacies) under
python3 they'll fail with silly errors (like[1]). This is because we
have a number of assumptions they we'll be running under python2 like:
- pickle.protocol: we done specify one so if we write a pickle file
from python3 we can't read it in python2.
- urllib and urlparse: those modules change paths in python 2 or 3 so
use the six helpers to get the bits we want.
- Explicitly write files in binary format
- Various str vs bytes issues
- dict().keys() returns dict_keys under python3 explictly cast that to
list()
After addressing these issues we can run the tools under either python2
or python3. To make this easy to check create explicit ven2 and venv3
test environments, leaving all other testenvs to use the system default.
[1] http://paste.openstack.org/show/593823/
Change-Id: I20334a52500847c810b486c9c8b108e75a5d6303