sire icon indicating copy to clipboard operation
sire copied to clipboard

Fix issue #304 and #305

Open lohedges opened this issue 11 months ago • 2 comments

This PR closes #304 by adding support for negative residue numbers. The existing tests appear to be unaffected by this change, but we might need to handle parser-specific issues as they arise. While I have added the ability to load and set negative residue numbers for the GroTop parser, I've not done this for any others. It also closes #305 by re-reducing triclinic box vectors prior to setting them via the OpenMM C++ API to avoid rounding issues due to loss of precision when reading from fixed-width format AMBER files. Finally, this closes #306 by using the alternative approach to fix the conda quotes issue from the feature_cmap branch.

  • I confirm that I have merged the latest version of devel into this branch before issuing this pull request (e.g. by running git pull origin devel): [y]
  • I confirm that I have added a changelog entry to the changelog (we will add a link to this PR as part of the review): [y]
  • I confirm that I have permission to release this code under the GPL3 license: [y]

lohedges avatar Mar 21 '25 12:03 lohedges

Looks like gemmi is causing CI failures on all platforms:

 [ 97%] Building CXX object Convert/SireGemmi/CMakeFiles/SireGemmi.dir/_SireGemmi.main.cpp.o
cd $SRC_DIR/build/conda_build_wrapper/Convert/SireGemmi && $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-c++ -DBOOST_NO_CXX98_FUNCTION_BASE -DBOOST_PYTHON_DYN_LINK -DBOOST_PYTHON_NO_LIB -DGEMMI_SHARED -DQT_CORE_LIB -DQT_NO_DEBUG -DSireGemmi_EXPORTS -I$PREFIX/pkgs/sire-2025.1.0/include/Sire -I$SRC_DIR/build/conda_build_wrapper -I$SRC_DIR/wrapper -I$PREFIX/Library/include -I$PREFIX/include/python3.10 -isystem $PREFIX/include -isystem $PREFIX/include/qt -isystem $PREFIX/include/qt/QtCore -isystem $PREFIX/./mkspecs/linux-g++ -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/sire-2025.1.0.dev -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix  -std=c++17 -DSIRE_HAS_CPP_17 -DSIRE_HAS_CPP_14 -DSIRE_HAS_CPP_1Y -DSIRE_HAS_CPP_11 -Wall -Wno-attributes -pipe -DSIRE_ALWAYS_INLINE=inline -Wno-strict-aliasing -DSIRE_VISIBILITY_AVAILABLE -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp-simd -mavx -DSIRE_USE_AVX  -std=c++17 -DSIRE_HAS_CPP_17 -DSIRE_HAS_CPP_14 -DSIRE_HAS_CPP_1Y -DSIRE_HAS_CPP_11 -O3 -ffast-math -fomit-frame-pointer   -w -fPIC -fPIC -MD -MT Convert/SireGemmi/CMakeFiles/SireGemmi.dir/_SireGemmi.main.cpp.o -MF CMakeFiles/SireGemmi.dir/_SireGemmi.main.cpp.o.d -o CMakeFiles/SireGemmi.dir/_SireGemmi.main.cpp.o -c $SRC_DIR/wrapper/Convert/SireGemmi/_SireGemmi.main.cpp
[ 97%] Building CXX object Convert/SireGemmi/CMakeFiles/SireGemmi.dir/sire_gemmi.cpp.o
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/work/wrapper/Convert/SireGemmi/sire_gemmi.cpp: In function 'gemmi::Structure SireGemmi::sire_to_gemmi(const SireSystem::System&, const SireBase::PropertyMap&)':
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/work/wrapper/Convert/SireGemmi/sire_gemmi.cpp:769:63: error: no matching function for call to 'gemmi::Model::Model(std::string)'
  769 |         gemmi::Model model(system.name().value().toStdString());
      |                                                               ^
In file included from /home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/gemmi/modify.hpp:10,
                 from /home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/work/wrapper/Convert/SireGemmi/sire_gemmi.cpp:5:
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/gemmi/model.hpp:718:12: note: candidate: 'gemmi::Model::Model(int)'
  718 |   explicit Model(int num_) noexcept : num(num_) {}
      |            ^~~~~
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/gemmi/model.hpp:718:22: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'int'
  718 |   explicit Model(int num_) noexcept : num(num_) {}
      |                  ~~~~^~~~
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/gemmi/model.hpp:717:3: note: candidate: 'gemmi::Model::Model()'
  717 |   Model() = default;
      |   ^~~~~
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/gemmi/model.hpp:717:3: note:   candidate expects 0 arguments, 1 provided
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/gemmi/model.hpp:712:8: note: candidate: 'gemmi::Model::Model(const gemmi::Model&)'
  712 | struct Model {
      |        ^~~~~
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/gemmi/model.hpp:712:8: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'const gemmi::Model&'
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/gemmi/model.hpp:712:8: note: candidate: 'gemmi::Model::Model(gemmi::Model&&)'
/home/runner/miniconda3/envs/sire_build/conda-bld/sire_1742558769195/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold/include/gemmi/model.hpp:712:8: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'gemmi::Model&&'
gmake[2]: *** [Convert/SireGemmi/CMakeFiles/SireGemmi.dir/build.make:93: Convert/SireGemmi/CMakeFiles/SireGemmi.dir/sire_gemmi.cpp.o] Error 1

lohedges avatar Mar 21 '25 13:03 lohedges

Presumably there are some breaking changes with version 0.7, although that did appear to come out over 3 months ago :man_shrugging:

lohedges avatar Mar 21 '25 14:03 lohedges