Opened 5 years ago

Closed 5 years ago

#4170 closed defect (fixed)

Remove unnecessary PyPi packages during build

Reported by: Tom Goddard Owned by: Tom Goddard
Priority: moderate Milestone:
Component: Build System Version:
Keywords: Cc: Eric Pettersen, Greg Couch
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The prereqs/pips make install target installs about 40 packages listed in build_requirements.txt. This list is supposed to be packages that are required during the build process. A separate app_requirements.txt lists the PyPi packages that are distributed in the application. But build_requirements.txt lists about 40 PyPi packages and only 3 seem to actually be needed for the build (grako for compiling atomspec parser, Cython for compiling core serialize.pyx, and Sphinx for building documentation).

Would save some build time and reduce confusion to eliminate all the unneeded packages from build_requirements.txt.

I tested by using an empty build_requirements.txt then doing a full build adding the needed packages to get the build to work on macOS. There is one other package numpy needed in apps/ChimeraX/Makefile to get the date and version numbers for Windows icon file meta data that tries to import chimerax.core with Python instead of the ChimeraX app. I believe all imports of chimerax should use the app because otherwise the dependent shared libraries may not be found since the app directory hierarchy and RPATH are not correct.

Change History (3)

comment:1 by Tom Goddard, 5 years ago

Also app_requirements.txt appears to include packages not needed by the app, for instance to build documentation and those should be removed to help reduce the 1 Gbyte size of the distributed application.

comment:2 by Tom Goddard, 5 years ago

Fixed the ChimeraX app Makefile to not import chimerax.core using generic Python, instead get buildinfo.py by just exec'ing that file.

comment:3 by Tom Goddard, 5 years ago

Resolution: fixed
Status: assignedclosed

Reduced build_requirements.txt to Cython, grako, Sphinx. Tested on macOS and Windows.

Note: See TracTickets for help on using tickets.