diff --git a/playbooks/releasenotes/pre.yaml b/playbooks/releasenotes/pre.yaml index 9cc344eda..bbd1a5b14 100644 --- a/playbooks/releasenotes/pre.yaml +++ b/playbooks/releasenotes/pre.yaml @@ -4,7 +4,6 @@ bindep_profile: doc bindep_dir: "{{ zuul_work_dir }}" - role: ensure-sphinx - doc_building_packages: - - sphinx + doc_building_extra_packages: - reno - revoke-sudo diff --git a/roles/ensure-sphinx/README.rst b/roles/ensure-sphinx/README.rst index fff853275..262c9106c 100644 --- a/roles/ensure-sphinx/README.rst +++ b/roles/ensure-sphinx/README.rst @@ -12,9 +12,16 @@ All pip installs are done with a provided constraints file, if given. Optional path to a pip constraints file for installing python libraries. .. zuul:rolevar:: doc_building_packages - :default: ['sphinx'] + :default: ``list`` - List of python packages to install for building docs. + List of python packages to install for building docs. The default + package list is based on the python version in use. + +.. zuul:rolevar:: doc_building_extra_packages + :default: ``list`` + + List of python additional packages to install for building docs. + By default this list is empty. .. zuul:rolevar:: sphinx_python :default: python2 diff --git a/roles/ensure-sphinx/defaults/main.yaml b/roles/ensure-sphinx/defaults/main.yaml index 661a8dd51..83b224055 100644 --- a/roles/ensure-sphinx/defaults/main.yaml +++ b/roles/ensure-sphinx/defaults/main.yaml @@ -1,5 +1,5 @@ zuul_work_dir: "{{ zuul.project.src_dir }}" zuul_work_virtualenv: "{{ ansible_user_dir }}/.venv" sphinx_python: python2 -doc_building_packages: - - sphinx +doc_building_packages: "{{ _doc_building_packages | default([]) }}" +doc_building_extra_packages: [] diff --git a/roles/ensure-sphinx/tasks/main.yaml b/roles/ensure-sphinx/tasks/main.yaml index ca1392491..94c3cc2e3 100644 --- a/roles/ensure-sphinx/tasks/main.yaml +++ b/roles/ensure-sphinx/tasks/main.yaml @@ -1,3 +1,5 @@ +--- + # NOTE: gettext command is provided by gettext-base package, # so we need to check a command provided by gettext package. - name: Check for gettext installed @@ -33,15 +35,17 @@ done register: requirements_file +- name: Gather python version variables + include_vars: "{{ sphinx_python.split('.')[0] }}.yaml" + # TODO(dmsimard) Don't assume virtualenv is installed - name: Install base doc building packages pip: - name: "{{ item }}" + name: "{{ doc_building_packages | union(doc_building_extra_packages) }}" chdir: "{{ zuul_work_dir }}" virtualenv: "{{ zuul_work_virtualenv }}" virtualenv_python: "{{ sphinx_python }}" extra_args: "{{ upper_constraints | default(omit) }}" - with_items: "{{ doc_building_packages }}" # TODO(dmsimard) Don't assume virtualenv is installed - name: Install found doc requirements diff --git a/roles/ensure-sphinx/vars/python2.yaml b/roles/ensure-sphinx/vars/python2.yaml new file mode 100644 index 000000000..ab8dbc2cc --- /dev/null +++ b/roles/ensure-sphinx/vars/python2.yaml @@ -0,0 +1,2 @@ +_doc_building_packages: + - sphinx<2.0 diff --git a/roles/ensure-sphinx/vars/python3.yaml b/roles/ensure-sphinx/vars/python3.yaml new file mode 100644 index 000000000..ec2e3b182 --- /dev/null +++ b/roles/ensure-sphinx/vars/python3.yaml @@ -0,0 +1,2 @@ +_doc_building_packages: + - sphinx