Allow venvs to be built with disparate python requirements

Bug #1631992 reported by Jesse Pretorius
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack-Ansible
Fix Released
Medium
Kevin Carter

Bug Description

Rally does not have its requirements managed by the OpenStack global requirements process. Both it and tempest are likely to have requirements outside of the bounds of an OpenStack service's stable branch requirements.

In Ocata there is a higher likelihood that more and more services will have disparate requirements.

For this situation, the repo_build process completely breaks when trying to build a venv for the service because the process is forced to use the locally built requirements only... and we force the requirements down to a single set. In other words - we don't allow the repo to contain more than one wheel by the same name.

We need to change the process to allow more than one wheel of the same name to be built so that we can cater for disparate requirements.

Changed in openstack-ansible:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Jean-Philippe Evrard (jean-philippe-evrard) wrote :

The emergency state is now reduced, due to upstream fixes. This should still be considered as a priority though.

Changed in openstack-ansible:
importance: High → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to openstack-ansible (master)

Fix proposed to branch: master
Review: https://review.openstack.org/386759

Changed in openstack-ansible:
assignee: nobody → Kevin Carter (kevin-carter)
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to openstack-ansible-repo_build (master)

Fix proposed to branch: master
Review: https://review.openstack.org/386765

Changed in openstack-ansible:
assignee: Kevin Carter (kevin-carter) → Jesse Pretorius (jesse-pretorius)
Changed in openstack-ansible:
assignee: Jesse Pretorius (jesse-pretorius) → Kevin Carter (kevin-carter)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible-plugins (master)

Reviewed: https://review.openstack.org/391029
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible-plugins/commit/?id=7abcaf91972fe3d0e9af98f36b5ed479d1b696cc
Submitter: Jenkins
Branch: master

commit 7abcaf91972fe3d0e9af98f36b5ed479d1b696cc
Author: Kevin Carter <email address hidden>
Date: Thu Oct 27 00:37:10 2016 -0500

    Add the ability to ignore requirements from a given package

    Some packages simply do not play well with others. One such case is
    "tempest" where time and time again it's unbound requirements break
    everything. This change allows the package indexer to examine remote
    repos and exclude packages from the global package building list by
    using the metadata value ``ignorerequirements=True``. When a package is
    ignored it can still be built within in a venv or used by referencing
    the git repos however it will no longer be part of the global wheel
    building package list.

    Change-Id: Iacf15eea14a2cd9c98bbb59d99e2a1ea94bd0a5b
    Closes-Bug: #1631992
    Signed-off-by: Kevin Carter <email address hidden>

Changed in openstack-ansible:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible-repo_build (master)

Reviewed: https://review.openstack.org/386765
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible-repo_build/commit/?id=baab4e2e7c5d96a3cd52bcf2703b12f064f63b73
Submitter: Jenkins
Branch: master

commit baab4e2e7c5d96a3cd52bcf2703b12f064f63b73
Author: Kevin Carter <email address hidden>
Date: Fri Oct 14 15:23:07 2016 -0500

    Updates to support ignored packages and external indexes

    This change ensures that a venv create process can work when a
    dependency is crafted outside of the OpenStack global requirements
    system. The change keys off of the original package url setting the
    isolated perameter should "withindex=True" be found.

    The requirements.txt.j2 template file has been updated to allow
    packages to be ignored from wheel building should the
    `ignorerequirement=True` property be set within a given remote package.
    This ability is important as some packages, generally external testing
    repos, do not use requirement boundries and are known to break
    given enough time.

    Tagged tasks that MUST always be run have had tags set to "always".

    Change-Id: I5d11aca84dcb74c77f3d0e3f31ce6546458a3e84
    Closes-Bug: #1631992
    Signed-off-by: Kevin Carter <email address hidden>

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible (master)

Reviewed: https://review.openstack.org/386759
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible/commit/?id=f28ddbbe3134a7a4d3d4a71a0721428f86ad2e03
Submitter: Jenkins
Branch: master

commit f28ddbbe3134a7a4d3d4a71a0721428f86ad2e03
Author: Kevin Carter <email address hidden>
Date: Fri Oct 14 14:51:30 2016 -0500

    Updates to support ignored packages and external indexes

    Some OpenStack services, generally testing repos, do not strictly
    follow the requirements g-r sets. This change allows these services to
    build using the `withindex=True` and `ignorerequirements=True`
    properties. These properties will allow the package to fetch
    requirements as needed without potentially breaking a deployment due to
    unbound dependencies.

    Depends-On: I5d11aca84dcb74c77f3d0e3f31ce6546458a3e84
    Change-Id: I8651702656aa6d2861b45dc4b111187cfbac4719
    Partial-Bug: #1631992
    Signed-off-by: Kevin Carter <email address hidden>

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/openstack-ansible-plugins 15.0.0.0b1

This issue was fixed in the openstack/openstack-ansible-plugins 15.0.0.0b1 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/openstack-ansible-repo_build 15.0.0.0b1

This issue was fixed in the openstack/openstack-ansible-repo_build 15.0.0.0b1 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to openstack-ansible (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/446718

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to openstack-ansible-repo_build (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/446719

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to openstack-ansible-repo_build (stable/newton)

Reviewed: https://review.openstack.org/446719
Committed: https://git.openstack.org/cgit/openstack/openstack-ansible-repo_build/commit/?id=a9b1c49be56eb93167c71a5d764fbcc17cc2a976
Submitter: Jenkins
Branch: stable/newton

commit a9b1c49be56eb93167c71a5d764fbcc17cc2a976
Author: Kevin Carter <email address hidden>
Date: Fri Oct 14 15:23:07 2016 -0500

    Updates to support ignored packages and external indexes

    This change ensures that a venv create process can work when a
    dependency is crafted outside of the OpenStack global requirements
    system. The change keys off of the original package url setting the
    isolated perameter should "withindex=True" be found.

    The requirements.txt.j2 template file has been updated to allow
    packages to be ignored from wheel building should the
    `ignorerequirement=True` property be set within a given remote package.
    This ability is important as some packages, generally external testing
    repos, do not use requirement boundries and are known to break
    given enough time.

    Tagged tasks that MUST always be run have had tags set to "always".

    Change-Id: I5d11aca84dcb74c77f3d0e3f31ce6546458a3e84
    Closes-Bug: #1631992
    Signed-off-by: Kevin Carter <email address hidden>
    (cherry picked from commit baab4e2e7c5d96a3cd52bcf2703b12f064f63b73)

tags: added: in-stable-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on openstack-ansible (stable/newton)

Change abandoned by Kevin Carter (cloudnull) (<email address hidden>) on branch: stable/newton
Review: https://review.openstack.org/446718
Reason: abandoned as this was not needed.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/openstack-ansible-repo_build 14.2.0

This issue was fixed in the openstack/openstack-ansible-repo_build 14.2.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.