Opened 14 months ago

Closed 5 months ago

#15897 closed defect (fixed)

Core include files not found

Reported by: Tristan Croll Owned by: Zach Pearson
Priority: normal Milestone: 1.10
Component: Build System Version:
Keywords: Cc: chimera-programmers
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.22631
ChimeraX Version: 1.9.dev202409060131 (2024-09-06 01:31:09 UTC)
Description
Getting a new compile error while trying to build the Clipper plugin for the current daily build:

c:\program files\chimerax-daily\bin\lib\site-packages\chimerax\atomic_lib\include\atomstruct\string_types.h(31): fatal error C1083: Cannot open include file: 'chutil/CString.h': No such file or directory

I'm guessing I need to declare a new build-time dependency, but I'm not clear on which one.

OpenGL version: 3.3.0 NVIDIA 555.85
OpenGL renderer: NVIDIA GeForce RTX 3070 Laptop GPU/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Python: 3.11.4
Locale: en_GB.cp1252
Qt version: PyQt6 6.7.1, Qt 6.7.1
Qt runtime version: 6.7.2
Qt platform: windows

Manufacturer: HP
Model: HP ZBook Studio 15.6 inch G8 Mobile Workstation PC
OS: Microsoft Windows 11 Pro (Build 22631)
Memory: 34,007,068,672
MaxProcessMemory: 137,438,953,344
CPU: 16 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
OSLanguage: en-GB

Installed Packages:
    alabaster: 1.0.0
    appdirs: 1.4.4
    asttokens: 2.4.1
    babel: 2.16.0
    beautifulsoup4: 4.12.3
    blockdiag: 3.0.0
    blosc2: 2.7.1
    build: 1.2.1
    certifi: 2024.8.30
    cftime: 1.6.4
    charset-normalizer: 3.3.2
    ChimeraX-AddCharge: 1.5.17
    ChimeraX-AddH: 2.2.6
    ChimeraX-AlignmentAlgorithms: 2.0.2
    ChimeraX-AlignmentHdrs: 3.5
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.14
    ChimeraX-AlphaFold: 1.0.1
    ChimeraX-AltlocExplorer: 1.1.1
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.58.7
    ChimeraX-AtomicLibrary: 14.1.6
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.4
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.4.7
    ChimeraX-BondRot: 2.0.4
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.13
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.3.4
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.4
    ChimeraX-ChangeChains: 1.1
    ChimeraX-CheckWaters: 1.4
    ChimeraX-ChemGroup: 2.0.1
    ChimeraX-Clashes: 2.3
    ChimeraX-ColorActions: 1.0.5
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.6
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.9.dev202409060131
    ChimeraX-CoreFormats: 1.2
    ChimeraX-coulombic: 1.4.4
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.3
    ChimeraX-DeepMutationalScan: 1.0
    ChimeraX-Dicom: 1.2.4
    ChimeraX-DiffPlot: 1.0
    ChimeraX-DistMonitor: 1.4.2
    ChimeraX-DockPrep: 1.1.3
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ESMFold: 1.0
    ChimeraX-FileHistory: 1.0.1
    ChimeraX-Foldseek: 1.0.1
    ChimeraX-FunctionKey: 1.0.1
    ChimeraX-Geometry: 1.3
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.4.1
    ChimeraX-Hbonds: 2.5
    ChimeraX-Help: 1.3
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.3
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-IUPAC: 1.0
    ChimeraX-Label: 1.1.11
    ChimeraX-ListInfo: 1.2.2
    ChimeraX-Log: 1.2
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.9.1
    ChimeraX-Map: 1.3
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0.1
    ChimeraX-MapFilter: 2.0.1
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1.1
    ChimeraX-Markers: 1.0.1
    ChimeraX-Mask: 1.0.2
    ChimeraX-MatchMaker: 2.1.6
    ChimeraX-MCopy: 1.0
    ChimeraX-MDcrds: 2.7.1
    ChimeraX-MedicalToolbar: 1.1
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.14.2
    ChimeraX-MMTF: 2.2
    ChimeraX-Modeller: 1.5.17
    ChimeraX-ModelPanel: 1.5
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0.3
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.2
    ChimeraX-MouseModes: 1.2
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nifti: 1.2
    ChimeraX-NMRSTAR: 1.0.2
    ChimeraX-NRRD: 1.2
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.13.5
    ChimeraX-OrthoPick: 1.0.1
    ChimeraX-PDB: 2.7.6
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.4
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1.2
    ChimeraX-PubChem: 2.2
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.4.5
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.3
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 4.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5.1
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0.2
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-Segmentations: 3.1.6
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.13
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.2.0
    ChimeraX-ShowSequences: 1.0.3
    ChimeraX-SideView: 1.0.1
    ChimeraX-Smiles: 2.1.2
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.18.1
    ChimeraX-STL: 1.0.1
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.2.1
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0.1
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.5
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-TaskManager: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.2.3
    ChimeraX-ToolshedUtils: 1.2.4
    ChimeraX-Topography: 1.0
    ChimeraX-ToQuest: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.40.1
    ChimeraX-uniprot: 2.3.1
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.4.4
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-vrml: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.2
    ChimeraX-WebServices: 1.1.4
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.2.2
    comtypes: 1.4.5
    contourpy: 1.3.0
    cxservices: 1.2.3
    cycler: 0.12.1
    Cython: 3.0.10
    debugpy: 1.8.5
    decorator: 5.1.1
    docutils: 0.21.2
    executing: 2.1.0
    filelock: 3.15.4
    fonttools: 4.53.1
    funcparserlib: 2.0.0a0
    glfw: 2.7.0
    grako: 3.16.5
    h5py: 3.11.0
    html2text: 2024.2.26
    idna: 3.8
    ihm: 1.3
    imagecodecs: 2024.6.1
    imagesize: 1.4.1
    ipykernel: 6.29.5
    ipython: 8.26.0
    ipywidgets: 8.1.5
    jedi: 0.19.1
    Jinja2: 3.1.4
    jupyter_client: 8.6.2
    jupyter_core: 5.7.2
    jupyterlab_widgets: 3.0.13
    kiwisolver: 1.4.7
    line_profiler: 4.1.3
    lxml: 5.2.2
    lz4: 4.3.3
    MarkupSafe: 2.1.5
    matplotlib: 3.9.2
    matplotlib-inline: 0.1.7
    msgpack: 1.0.8
    ndindex: 1.8
    nest-asyncio: 1.6.0
    netCDF4: 1.6.5
    networkx: 3.3
    nibabel: 5.2.0
    nptyping: 2.5.0
    numexpr: 2.10.1
    numpy: 1.26.4
    openvr: 1.26.701
    packaging: 23.2
    ParmEd: 4.2.2
    parso: 0.8.4
    pep517: 0.13.1
    pillow: 10.4.0
    pip: 24.2
    pkginfo: 1.11.1
    platformdirs: 4.2.2
    prompt_toolkit: 3.0.47
    psutil: 6.0.0
    pure_eval: 0.2.3
    py-cpuinfo: 9.0.0
    pycollada: 0.8
    pydicom: 2.4.4
    Pygments: 2.18.0
    pynmrstar: 3.3.4
    pynrrd: 1.0.0
    PyOpenGL: 3.1.7
    PyOpenGL-accelerate: 3.1.7
    pyopenxr: 1.0.3401
    pyparsing: 3.1.4
    pyproject_hooks: 1.1.0
    PyQt6-commercial: 6.7.1
    PyQt6-Qt6: 6.7.2
    PyQt6-WebEngine-commercial: 6.7.0
    PyQt6-WebEngine-Qt6: 6.7.2
    PyQt6-WebEngineSubwheel-Qt6: 6.7.2
    PyQt6_sip: 13.8.0
    python-dateutil: 2.9.0.post0
    pytz: 2024.1
    pywin32: 306
    pyzmq: 26.2.0
    qtconsole: 5.5.2
    QtPy: 2.4.1
    qtshim: 1.0
    RandomWords: 0.4.0
    requests: 2.32.3
    scipy: 1.14.0
    setuptools: 72.1.0
    sfftk-rw: 0.8.1
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    soupsieve: 2.6
    Sphinx: 8.0.2
    sphinx-autodoc-typehints: 2.2.3
    sphinxcontrib-applehelp: 2.0.0
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 2.0.0
    sphinxcontrib-htmlhelp: 2.1.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 2.0.0
    sphinxcontrib-serializinghtml: 2.0.0
    stack-data: 0.6.3
    superqt: 0.6.3
    tables: 3.10.1
    tcia_utils: 1.5.1
    tifffile: 2024.7.24
    tinyarray: 1.2.4
    tornado: 6.4.1
    traitlets: 5.14.3
    typing_extensions: 4.12.2
    tzdata: 2024.1
    urllib3: 2.2.2
    wcwidth: 0.2.13
    webcolors: 24.6.0
    wheel: 0.43.0
    wheel-filename: 1.4.1
    widgetsnbextension: 4.0.13
    WMI: 1.5.1

Change History (27)

comment:1 by pett, 14 months ago

Cc: chimera-programmers added
Component: UnassignedBuild System
Owner: set to Zach Pearson
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionCore include files not found

comment:2 by pett, 14 months ago

Milestone: 1.9

comment:3 by Zach Pearson, 14 months ago

It's probably not an error on your part. I can see on your GitHub that Clipper uses XML as its metadata format. I think XML bundle builder is supposed to include core header paths automatically. I'll download the daily build and try to build clipper and see what's happening.

comment:4 by Zach Pearson, 14 months ago

I looked at the daily build on Windows and I can see that the core include folders (where that missing header is) are there. Trying to build clipper on my mac, I get the same error as you. That's weird! Internal bundles for some reason don't have to declare the core as a build dependency, but even putting build=true next to the Core dependency in your bundle_info.xml doesn't work for me.

comment:5 by Tristan Croll, 14 months ago

Yeah, I tried putting build=true beside ChimeraX-Core as well. Sorry for
not mentioning that.

On Fri, Sep 6, 2024 at 7:58 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>

comment:6 by Zach Pearson, 14 months ago

I wrote an XML to TOML converter so that I could build our documentation on readthedocs without forcing teammates to convert their bundles. I can't guarantee its correctness for clipper, because I only wrote the minimum needed to correctly convert the bundles I needed. However, if you're willing to try it out, run

/c/program\ files/chimerax-daily/bin/chimerax.exe -m chimerax.bundle_builder -c bundle_info.xml > pyproject.toml

in the git repo for clipper. Then move your bundle_info.xml out of the repo temporarily or rename it to something else so it isn't picked up by the devel command, which still defaults to XML, and remove it from the dependencies of the wheel target in your makefile. I was able to build clipper with TOML bundle builder.

Some differences:

  • TOML bundle builder puts dynamic libraries in chimerax/<pkg>/lib instead of chimerax/<pkg>/
  • TOML bundle builder didn't pick up your docs DataDir or any of your extra-files
  • The converter will create a very overbroad TOML file to try to guarantee correct behavior, e.g. it will add a dependency's include and library paths to every extension even if they're not needed for one or more of them.

I would add clipper's bundle_info.xml to bundle builder's conversion test cases if you went this route.

comment:7 by Zach Pearson, 14 months ago

Oh, I just noticed I meant to say "the converter didn't pick up your docs..." rather than "TOML bundle builder didn't". TOML bundle builder can do everything XML bundle builder can do (and more, apparently, given that it builds your bundle). Still, I'm going to look and see why the XML one isn't including headers.

comment:8 by Zach Pearson, 14 months ago

Resolution: not a bug
Status: assignedclosed

You specify your core dependency with ~=1.8.0. ~= in PEP440 is the 'compatible release' specifier. See:

https://peps.python.org/pep-0440/#compatible-release

My understanding is that ~=1.8.0 means >=1.8.0, ==1.8.*, so your build fails as expected when you use the daily build, which has core version 1.9.dev<date>.

Your specifier should be ~=1.8, which would expand to >=1.8, == 1.*. The >=1.8 will override the ==1.*

I was able to build your bundle using XML bundle builder and <Dependency name="ChimeraX-Core" version="~=1.8"/>

comment:9 by Zach Pearson, 14 months ago

Greg let me know that you had a restrictive core dependency version to make it so that your bundle didn't show up as compatible with versions of ChimeraX newer than 1.8 on the Toolshed. If that's the case, you should bump your core dependency to ~=1.9.0 (and also your clipper version number).

comment:10 by Tristan Croll, 13 months ago

Ah - that's still a change in behaviour from previous versions (where it
would refuse to start the build if any of the dependency requirements were
unmet).

For what it's worth, trying to build in Windows using the .toml version
leads to a new failure:

library_utils.obj : error LNK2001: unresolved external symbol
__imp_GetUserNameA
src/lib\libccp4.dll : fatal error LNK1120: 1 unresolved externals

From https://stackoverflow.com/questions/4232365/getusername-under-win64 it
looks like it's not finding Windows' UserEnv.Lib - something missing in the
search path?


On Tue, Sep 10, 2024 at 12:49 AM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>

comment:11 by Tristan Croll, 13 months ago

After updating the ChimeraX-Core dependency in bundle_info.xml I still get
the same failure on chutil in both Windows and Linux RHEL build (Windows
ChimeraX build a few days old; Linux one today's). The Linux error message
echoes the full command:

subprocess.CalledProcessError: Command
'['/opt/rh/gcc-toolset-10/root/usr/bin/gcc', '-pipe', '-fPIC',
'-std=gnu99', '-fstack-protector-strong', '-DUSE_DYLD_GLOBAL_NAMESPACE',
'-std=gnu11', '-pthread', '-DDYNAMIC_ANNOTATIONS_ENABLED=1', '-DNDEBUG',
'-g', '-O3', '-Wall', '-D_FORTIFY=2', '-fstack-protector-strong', '-fPIC',
'-std=c++11', '-DCLIPPER_CX_EXPORTS', '-DCLIPPER_VERBOSE',
'-DDYNAMIC_LIBRARY=1', '-I/usr/libexec/UCSF-ChimeraX-daily/include',
'-I/usr/libexec/UCSF-ChimeraX-daily/lib/python3.11/site-packages/numpy/core/include',
'-Isrc/deps',
'-I/usr/libexec/UCSF-ChimeraX-daily/lib/python3.11/site-packages/chimerax/atomic_lib/include',
'-I/usr/libexec/UCSF-ChimeraX-daily/lib/python3.11/site-packages/chimerax/arrays/include',
'-I/usr/libexec/UCSF-ChimeraX-daily/include/python3.11', '-c',
'src/clipper_ext/xtal_mgr.cpp', '-o', 'src/clipper_ext/xtal_mgr.o']'
returned non-zero exit status 1.

`chutil` appears in the ChimeraX install tree as
`/usr/libexec/UCSF-ChimeraX-daily/lib/python3.11/site-packages/chimerax/core/include/chutil`,
but `...chimerax/core/include` isn't in the list of includes in the gcc
command. I've tried with and without `build="true"` in the ChimeraX-Core
dependency declaration - makes no difference.

On Wed, Sep 11, 2024 at 11:36 AM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>
>
>
>
>
>
>

comment:12 by pett, 13 months ago

Resolution: not a bug
Status: closedreopened

comment:13 by Zach Pearson, 13 months ago

It looks like 3 months ago we removed pkg_resources from bundle builder because it's due to be removed in Python 3.12. When we made that change, we started testing the version of the dependency, so we went from this code:

    def _get_bundle_dirs(self, logger, dep):
        from chimerax.core import toolshed
        from pkg_resources import Requirement, get_distribution

        req = Requirement.parse(dep)
        if not get_distribution(req):
            raise RuntimeError("unsatisfied dependency: %s" % dep)
        ts = toolshed.get_toolshed()
        bundle = ts.find_bundle(req.project_name, logger)

to this code:

    def _get_bundle_dirs(self, logger, dep):
        from chimerax.core import toolshed
        import importlib.metadata
        from packaging.requirements import Requirement

        req = Requirement(dep)
        d = importlib.metadata.distribution(req.name)
        if not req.specifier.contains(d.version, prereleases=True):
            raise RuntimeError("unsatisfied dependency: %s" % dep)
        ts = toolshed.get_toolshed()
        bundle = ts.find_bundle(req.name, logger)

"1.9.devXXXXXXXXXXXXXXXXXXXXXXX" isn't contained by "~=1.9.0" even with prereleases=True. I think that's because prereleases=True must apply to prerelease versions /higher/ than 1.9.0, wherease 1.9.0devXXXXXXXXXXXXXXXXXXXXXXXXXXX is considered lower than 1.9.0.

comment:14 by Tristan Croll, 13 months ago

Ah. Dumb of me - I should have picked that up. Would be better/less
confusing if it could still crash up-front due to the unmet dependency, I
think.

On Wed, 11 Sep 2024 at 19:45, ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>
>
>
>
>
>
>
>

comment:15 by Zach Pearson, 13 months ago

Owner: changed from Zach Pearson to Greg Couch
Status: reopenedassigned

I think you have to specify that you depend on "~=1.X.dev0" or higher when you're trying to build for a ChimeraX that hasn't been released yet, but I'm reassigning the ticket to Greg because he made the ticket and probably understands the version checking better than I do.

comment:16 by Zach Pearson, 13 months ago

Thanks for trying out TOML bundle builder, by the way! I need all the bug reports I can get.

comment:17 by Greg Couch, 13 months ago

To help with code:

$ python3
Python 3.8.17 (default, Aug 10 2023, 18:03:39) 
[GCC 8.5.0 20210514 (Red Hat 8.5.0-20)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from packaging.version import Version
>>> from packaging.specifiers import Specifier
>>> v18 = Version("1.8")
>>> v19dev = Version("1.9dev42")
>>> v19 = Version("1.9")
>>> v18 < v19dev
True
>>> v19dev < v19
True
>>> srelease = Specifier("~=1.9.0")
>>> spreview = Specifier("~=1.9dev0")
>>> srelease.contains(v19dev, prereleases=True)
False
>>> spreview.contains(v19dev, prereleases=True)
True
>>> 

comment:18 by Tristan Croll, 12 months ago

So I still think the core problem here is that bundle_builder no longer
checks for dependency version matching *before* launching into the build,
and just carries through until (a) something breaks due to library
incompatibility, or (b) it attempts to install the completed bundle and
*then* pip realises something's wrong. Just got the below error at the tail
end of an ISOLDE build against the Oct 19 ChimeraX daily. Used to be that
this sort of dependency incompatibility would lead to an immediate up-front
crash.

Distribution is in .\dist\ChimeraX_ISOLDE-1.9rc0-cp311-cp311-win_amd64.whl
Installing bundle
Executing: toolshed install
.\dist\ChimeraX_ISOLDE-1.9rc0-cp311-cp311-win_amd64.whl
Traceback (most recent call last):
  File "c:\Program
Files\ChimeraX-Daily\bin\Lib\site-packages\chimerax\toolshed_utils\__init__.py",
line 528, in _pip_install
    results = run_logged_pip(command, logger)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Program
Files\ChimeraX-Daily\bin\Lib\site-packages\chimerax\core\python_utils.py",
line 143, in run_logged_pip
    raise RuntimeError(s)
RuntimeError: ERROR: Cannot install ChimeraX-ISOLDE,
chimerax-atomic==1.58.7, chimerax-atomiclibrary==14.1.8 and
chimerax-isolde==1.9rc0 because these package versions have conflicting
dependencies.
ERROR: ResolutionImpossible: for help visit
https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

On Thu, Sep 12, 2024 at 11:02 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>

comment:19 by Zach Pearson, 12 months ago

Can you push your code to something like a develop branch on the ISOLDE repository so I can download and test it?

comment:20 by Greg Couch, 10 months ago

Milestone: 1.91.10

Ticket retargeted after milestone closed

comment:21 by Greg Couch, 6 months ago

Owner: changed from Greg Couch to Zach Pearson

comment:22 by Zach Pearson, 5 months ago

OK, I'm revisiting this ticket as we're closing in on a 1.10 release, and I just want to make sure we're still on the same page:

  • This new ~1.9dev0 specifier or whatever it is is fine
  • The core complaint is that bundle builder doesn't fail fast enough when dependencies are unmet

I'm going to address the second bullet point today, but let me know if you have more concerns or reopen this ticket if I close it before you get around to it.

comment:23 by Tristan Croll, 5 months ago

So in the bundle_builder.xml framework it seemed if the dependency versions
weren’t me it wouldn’t complain about *that*, but it would fail to provide
the associated include dirs. But since I’ve just (more-or-less) finished
migrating to pyproject.toml, it’s (a) no longer relevant to me and (b)
difficult for me to test. Don’t know if it’s likely to be a problem for
anyone else.

On Mon, 12 May 2025 at 20:23, ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>
>
>

comment:24 by Zach Pearson, 5 months ago

I'm using ISOLDE's master branch to test which appears to still have bundle_info.xml - I can just keep from updating. What branch are you working on / is it pushed? It might be good to ensure behavioral symmetry.

comment:25 by Tristan Croll, 5 months ago

Just merged and pushed into master today - but the version prior to all
that isn't going to be able to build against 1.10 because of the OpenMM
shift to PyPI (needed some extra work to find its lib and include dirs at
compile time). The Clipper plugin might be a better choice - I updated that
to toml on May 1, so as long as you haven't pulled after that it should be
fine to play with.

On Mon, May 12, 2025 at 8:39 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>

comment:26 by Zach Pearson, 5 months ago

Bundle builder now checks requirements at the beginning of a build, while it's parsing bundle_info.xml or pyproject.toml

I also made TOML builder monkey-patch get_lib and get_include into OpenMM so maybe you won't need pyproject.toml.in anymore.

comment:27 by Zach Pearson, 5 months ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.