Opened 4 years ago

Closed 4 years ago

#5438 closed defect (fixed)

Build frequently breaks installing cxservices

Reported by: Tom Goddard Owned by: Zach Pearson
Priority: high Milestone:
Component: Build System Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

In recent months my developer builds often break with some problem building cxservices, error shown below. This is with a "make build-from-scratch" so a "make clean" was done in all the directories, yet apparently it did not clean up something that causes the build to fail.

Change History (6)

comment:1 by Tom Goddard, 4 years ago

/Applications/Xcode.app/Contents/Developer/usr/bin/make -C cxservices app-install
cd client && /Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/bin/python3.9 -I setup.py  bdist_wheel
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/cxservices
copying cxservices/configuration.py -> build/lib/cxservices
copying cxservices/rest.py -> build/lib/cxservices
copying cxservices/__init__.py -> build/lib/cxservices
copying cxservices/api_client.py -> build/lib/cxservices
creating build/lib/cxservices/models
copying cxservices/models/error.py -> build/lib/cxservices/models
copying cxservices/models/__init__.py -> build/lib/cxservices/models
copying cxservices/models/inline_response2001.py -> build/lib/cxservices/models
copying cxservices/models/inline_response200.py -> build/lib/cxservices/models
copying cxservices/models/inline_response201.py -> build/lib/cxservices/models
creating build/lib/cxservices/api
copying cxservices/api/__init__.py -> build/lib/cxservices/api
copying cxservices/api/default_api.py -> build/lib/cxservices/api
running egg_info
writing cxservices.egg-info/PKG-INFO
writing dependency_links to cxservices.egg-info/dependency_links.txt
writing requirements to cxservices.egg-info/requires.txt
writing top-level names to cxservices.egg-info/top_level.txt
reading manifest file 'cxservices.egg-info/SOURCES.txt'
writing manifest file 'cxservices.egg-info/SOURCES.txt'
installing to build/bdist.macosx-10.9-x86_64/wheel
running install
running install_lib
creating build/bdist.macosx-10.9-x86_64
creating build/bdist.macosx-10.9-x86_64/wheel
creating build/bdist.macosx-10.9-x86_64/wheel/cxservices
copying build/lib/cxservices/configuration.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices
copying build/lib/cxservices/rest.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices
copying build/lib/cxservices/__init__.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices
creating build/bdist.macosx-10.9-x86_64/wheel/cxservices/models
copying build/lib/cxservices/models/error.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices/models
copying build/lib/cxservices/models/__init__.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices/models
copying build/lib/cxservices/models/inline_response2001.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices/models
copying build/lib/cxservices/models/inline_response200.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices/models
copying build/lib/cxservices/models/inline_response201.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices/models
creating build/bdist.macosx-10.9-x86_64/wheel/cxservices/api
copying build/lib/cxservices/api/__init__.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices/api
copying build/lib/cxservices/api/default_api.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices/api
copying build/lib/cxservices/api_client.py -> build/bdist.macosx-10.9-x86_64/wheel/cxservices
running install_egg_info
Copying cxservices.egg-info to build/bdist.macosx-10.9-x86_64/wheel/cxservices-1.1-py3.9.egg-info
running install_scripts
creating build/bdist.macosx-10.9-x86_64/wheel/cxservices-1.1.dist-info/WHEEL
creating 'dist/cxservices-1.1-py3-none-any.whl' and adding 'build/bdist.macosx-10.9-x86_64/wheel' to it
adding 'cxservices/__init__.py'
adding 'cxservices/api_client.py'
adding 'cxservices/configuration.py'
adding 'cxservices/rest.py'
adding 'cxservices/api/__init__.py'
adding 'cxservices/api/default_api.py'
adding 'cxservices/models/__init__.py'
adding 'cxservices/models/error.py'
adding 'cxservices/models/inline_response200.py'
adding 'cxservices/models/inline_response2001.py'
adding 'cxservices/models/inline_response201.py'
adding 'cxservices-1.1.dist-info/METADATA'
adding 'cxservices-1.1.dist-info/WHEEL'
adding 'cxservices-1.1.dist-info/top_level.txt'
adding 'cxservices-1.1.dist-info/RECORD'
removing build/bdist.macosx-10.9-x86_64/wheel
/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/bin/python3.9 -I -m pip install --upgrade-strategy only-if-needed client/dist/*.whl
Processing ./client/dist/cxservices-1.0-py3-none-any.whl
Processing ./client/dist/cxservices-1.1-py3-none-any.whl
ERROR: Cannot install cxservices 1.0 (from /Users/goddard/ucsf/chimerax/prereqs/cxservices/client/dist/cxservices-1.0-py3-none-any.whl) and cxservices 1.1 (from /Users/goddard/ucsf/chimerax/prereqs/cxservices/client/dist/cxservices-1.1-py3-none-any.whl) because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested cxservices 1.0 (from /Users/goddard/ucsf/chimerax/prereqs/cxservices/client/dist/cxservices-1.0-py3-none-any.whl)
    The user requested cxservices 1.1 (from /Users/goddard/ucsf/chimerax/prereqs/cxservices/client/dist/cxservices-1.1-py3-none-any.whl)

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies
WARNING: You are using pip version 21.2.4; however, version 21.3 is available.
You should consider upgrading via the '/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/bin/python3.9 -m pip install --upgrade pip' command.
make[3]: *** [app-install] Error 1
make[2]: *** [cxservices.app-install] Error 2
make[1]: *** [install] Error 2
make: *** [build-from-scratch] Error 2

comment:2 by Tom Goddard, 4 years ago

cxservices/client/dist does have an old wheel that apparently was not removed by make clean

/Users/goddard/ucsf/chimerax/prereqs/cxservices/client/dist:
-rw-r--r-- 1 goddard staff 21533 Jul 21 20:14 cxservices-1.0-py3-none-any.whl
-rw-r--r-- 1 goddard staff 21922 Oct 19 17:40 cxservices-1.1-py3-none-any.whl

comment:3 by Zach Pearson, 4 years ago

Thanks for letting me know about this; I'll make sure that directory gets cleaned out.

in reply to:  4 ; comment:4 by goddard@…, 4 years ago

Removing the old dist/cxservices-1.0-py3-none-any.whl made my cxservices build work.

in reply to:  5 ; comment:5 by goddard@…, 4 years ago

I  guess this is not a frequent failure since the cxservices version probably rarely changes.  But since I build on 6 different machines I end up wasting too much time restarting the builds.

comment:6 by Zach Pearson, 4 years ago

Resolution: fixed
Status: assignedclosed

I made the distclean target that gets called by build-from-scratch run the distclean target in prereqs/cxservices in this commit. I think that should fix it, but please reopen this ticket if you find it's still broken.

Note: See TracTickets for help on using tickets.