Sed doesn't exist on windows, whereas a python script can. Sed doesn't handle multiple line constraints.
Rob On 10 Nov 2016 12:00 AM, "Ihar Hrachyshka" <ihrac...@redhat.com> wrote: > > > On 8 Nov 2016, at 04:07, Tony Breeds <t...@bakeyournoodle.com> wrote: > > > > On Sat, Sep 03, 2016 at 07:33:42PM +0200, Andreas Jaeger wrote: > >> Reviewing all the constraints work, I see that repositories have created > >> some workaround around requirements install for one of these two legimit > >> reasons - most often using tools/tox_install.sh from tox.ini for it: > >> > >> 1) The repository is a dependency of another one and uses constraints, > >> so edit upper-constraints file and allow git install. > >> > >> Example: > >> http://git.openstack.org/cgit/openstack/ironic-lib/tree/ > tools/tox_install.sh > > > > We had a very brief discussion about this in Barcelona. The idea being > to > > create an "incubator" style script in openstack/requirements that can be > the > > canonical source and easily copied out to repos that need it. I'm not > > proposing auto syncing but it would be pretty easy to script. > > > > We need "all projects"[1] to support constraints real soon now. It > seems like > > the majority of projects that currently do not use constraints are > because > > they're also listed in constraints. > > > > I started looking at this today using [2] as the base in the > oslo.messaging > > repo The good thing about this is it doesn't "just work" I hit the > following > > problem: > > --- > > cmdargs: ['/home/stack/projects/openstack/openstack/oslo. > messaging/tools/tox_install.sh', 'https://git.openstack.org/ > cgit/openstack/requirements/plain/upper-constraints.txt', > '/home/stack/projects/openstack/openstack/oslo.messaging/.tox/dist/oslo. > messaging-5.12.1.dev10.zip'] > > <snip> > > Processing ./.tox/dist/oslo.messaging-5.12.1.dev10.zip > > Could not satisfy constraints for 'oslo.messaging': installation from > path or url cannot be constrained to a version > > --- > > > > This is because we use 'edit-constraints' to change > "oslo.messaging===5.12.0" to > > "-e file:///home/stack/projects/openstack/openstack/oslo. > messaging#egg=oslo.messaging"[3] > > > > Which doesn't match because we're installing from an sdist. > > > > For development installs like this what we really want is a way to say > > constrain all my requirements but allow this library to be unconstrained > don't > > we? That seems to me what we're saying in [3]. When I'm working > locally I do > > something like: > > > > --- > > pip install -c https://git.openstack.org/cgit/openstack/requirements/ > plain/upper-constraints.txt \ > > -r requirements.txt -r test-requirements.txt > > pip install . > > --- > > > > This is all leading me to think that we should just remove the > constraint on > > $library which can be done with something like: > > --- [4] > > #!/usr/bin/env bash > > > > # Client constraint file contains this client version pin that is in > conflict > > # with installing the client from source. We should remove the version > pin in > > # the constraints file before applying it for from-source installation. > > BRANCH_NAME=XXX > > CLIENT_NAME=XXX > > > > set -e > > > > CONSTRAINTS_FILE=$1 > > shift > > > > localfile="${VIRTUAL_ENV}/upper-constraints.txt" > > if [[ $CONSTRAINTS_FILE != http* ]]; then > > CONSTRAINTS_FILE=file://$CONSTRAINTS_FILE > > fi > > > > curl $CONSTRAINTS_FILE -k -o $localfile > > sed -i~ -e "/^${CLIENT_NAME}===/d" $localfile > > > > pip install -U -c$localfile $* > > --- > > > > Using openstack_requirements is the "right" thing to do and we could > still use > > edit-constraints $localfile -- $CLIENT_NAME "" > > do delete the entry but it seems like wasted work to me > > I believe sed is the way to go. There is not much we get from > edit-constraints at this point, and it untangles the script from > zuul-cloner that would be needed to fetch requirements repo. > > It seems like the way to go. Wanna propose a patch for a repo > (oslo.messaging) to iterate on it in gerrit? > > Ihar > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev