Skip to content

Commit

Permalink
Merge for 2.15.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
benmwebb committed May 20, 2021
2 parents 369679c + d23ddca commit 4d60c54
Show file tree
Hide file tree
Showing 2,142 changed files with 23,487 additions and 24,117 deletions.
47 changes: 47 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: CI
on: [push, pull_request]

env:
CXXFLAGS: "-fprofile-arcs -ftest-coverage"

jobs:
test:
name: "Python ${{ matrix.python-version }} / ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["2.7", "3.6"]
os: [ubuntu-18.04]
compiler: [gcc]
env:
CC: ${{ matrix.compiler }}
PY2: ${{ startsWith(matrix.python-version, 2) && 'on' || 'off' }}
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -qq libboost-all-dev swig libhdf5-serial-dev libeigen3-dev \
cmake libcgal-dev libcgal-qt5-dev \
libfftw3-dev libopencv-dev libgsl0-dev libann-dev \
libprotobuf-dev protobuf-compiler \
libopenmpi-dev
if [ "${{ env.PY2 }}" == "on" ]
then
sudo apt-get install -qq python-dev python-numpy python-protobuf \
python-nose python-pip python-biopython
export PIP=pip2
else
sudo apt-get install -qq python3-dev python3-numpy python3-protobuf \
python3-nose python3-pip python3-biopython
export PIP=pip3
fi
$PIP install codecov
- name: Set up git
run: ./setup_git.py
- name: Build IMP
run: |
mkdir build
cd build
cmake .. -DUSE_PYTHON2=${{ env.PY2 }} -DCMAKE_CXX_FLAGS="${{ env.CXXFLAGS }}" -DCGAL_DIR=/usr/lib/x86_64-linux-gnu/cmake/CGAL/
make -k -j 2
24 changes: 24 additions & 0 deletions .github/workflows/flake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: flake

on: [push, pull_request]

jobs:
flake:

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: [3.8]
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Test
run: |
pip install flake8
flake8 tools modules/parallel/pyext modules/test/pyext modules/mmcif/pyext
59 changes: 0 additions & 59 deletions .travis.yml

This file was deleted.

26 changes: 13 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.8.3)
cmake_minimum_required(VERSION 2.8.12)

project(IMP)

Expand All @@ -18,10 +18,10 @@ if(POLICY CMP0053)
cmake_policy(SET CMP0053 NEW)
endif(POLICY CMP0053)

include(${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/cmake_modules/IMPFindPython.cmake)
include(${CMAKE_SOURCE_DIR}/cmake_modules/IMPFindPython.cmake)
imp_find_python()

# Check Python version early so we can use Python >= 2.6 features in other
# Check Python version early so we can use Python >= 2.7 features in other
# build scripts
execute_process(COMMAND ${PYTHON_EXECUTABLE}
"tools/build/check_python_version.py"
Expand Down Expand Up @@ -57,9 +57,9 @@ if(POLICY CMP0056)
cmake_policy(SET CMP0056 NEW)
endif(POLICY CMP0056)

include(${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/cmake_modules/IMPExecuteProcess.cmake)
include(${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/cmake_modules/IMPAddTests.cmake)
include(${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/cmake_modules/CheckCompiles.cmake)
include(${CMAKE_SOURCE_DIR}/cmake_modules/IMPExecuteProcess.cmake)
include(${CMAKE_SOURCE_DIR}/cmake_modules/IMPAddTests.cmake)
include(${CMAKE_SOURCE_DIR}/cmake_modules/CheckCompiles.cmake)

imp_execute_process("check_common_problems" ${CMAKE_SOURCE_DIR}
COMMAND ${PYTHON_EXECUTABLE}
Expand All @@ -73,12 +73,12 @@ imp_execute_process("setup_cmake" ${CMAKE_SOURCE_DIR}
COMMAND ${PYTHON_EXECUTABLE}
${CMAKE_SOURCE_DIR}/tools/build/setup_cmake.py)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/cmake_modules)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake_modules)

enable_testing()

include(${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/cmake_modules/IMPFindC++11.cmake)
include(${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/cmake_modules/IMPFindCompilerFlags.cmake)
include(${CMAKE_SOURCE_DIR}/cmake_modules/IMPFindC++11.cmake)
include(${CMAKE_SOURCE_DIR}/cmake_modules/IMPFindCompilerFlags.cmake)

if(POLICY CMP0017)
cmake_policy(SET CMP0017 NEW)
Expand Down Expand Up @@ -268,11 +268,11 @@ else()
endif()

set(Boost_NO_BOOST_CMAKE ON)
find_package(Boost 1.41.0 COMPONENTS system filesystem thread program_options REQUIRED)
find_package(Boost 1.53.0 COMPONENTS system filesystem thread program_options REQUIRED)
if("${Boost_SYSTEM_LIBRARY_RELEASE}" MATCHES ".*NOTFOUND.*")
message(FATAL_ERROR "Boost is required to build IMP.")
endif()
find_package(Boost 1.41.0 QUIET COMPONENTS random regex graph)
find_package(Boost 1.53.0 QUIET COMPONENTS random regex graph)

if("${Boost_RANDOM_LIBRARY_RELEASE}" MATCHES ".*NOTFOUND.*")
set(Boost_RANDOM_LIBRARY_RELEASE "" CACHE INTERNAL "" FORCE)
Expand Down Expand Up @@ -451,7 +451,7 @@ file(WRITE ${CMAKE_BINARY_DIR}/IMPConfig.cmake
"set(IMP_DATA_DIR \"${CMAKE_BINARY_DIR}/data\" )\n"
"set(IMP_SWIG_DIR \"${CMAKE_BINARY_DIR}/swig\" )\n"
"set(RMF_SWIG_DIR \"${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/swig\" )\n"
"set(RMF_MODULES_DIR \"${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/cmake_modules\" )\n"
"set(RMF_MODULES_DIR \"${CMAKE_SOURCE_DIR}/cmake_modules\" )\n"
"set(RMF_INCLUDE_PATH \"${RMF_INCLUDE_PATH}\" )\n"
"set(IMP_USE_FILE \"\${IMP_MODULES_DIR}/UseIMP.cmake\" )\n")
# Installed locations
Expand Down Expand Up @@ -538,7 +538,7 @@ install(DIRECTORY ${dev_tools_dir}
OWNER_WRITE)

# Install cmake scripts and configuration
install(DIRECTORY ${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/cmake_modules/
install(DIRECTORY ${CMAKE_SOURCE_DIR}/cmake_modules/
${CMAKE_SOURCE_DIR}/tools/cmake/
${CMAKE_BINARY_DIR}/cmake/
DESTINATION ${CMAKE_INSTALL_CMAKEDIR})
Expand Down
7 changes: 7 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,12 @@ and
See the [IMP manual](https://integrativemodeling.org/nightly/doc/manual/developing.html)
for more detail.

Note that some parts of the code are actually maintained outside of the IMP
repository, notably [PMI](https://github.com/salilab/pmi),
[RMF](https://github.com/salilab/rmf) and
[python-ihm](https://github.com/ihmwg/python-ihm). Issues or pull requests for
these parts of the code should be opened in those repositories. (Changes to
those repositories are periodically pulled in to IMP by the IMP maintainers.)

To publish your protocol for applying IMP to a biological system, please
see the [IMP manual](https://integrativemodeling.org/nightly/doc/manual/biosystem.html).
37 changes: 36 additions & 1 deletion ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,41 @@
ChangeLog {#changelog}
=========

# 2.15.0 - 2021-06-02 # {#changelog_2_15_0}
- The [Homebrew](https://brew.sh/) Mac packages now support Apple Silicon.
- We no longer provide RPMs for CentOS 6, since it has reached end of life.
- Python 2.6 is no longer supported; Python 2.7 is the oldest version of
Python that works with IMP (although Python 3 is recommended).
- IMP now requires Boost 1.53 or later; support for Boost 1.41 has been dropped.
- IMP::em::FitRestraint::cast() has been removed. Use `get_from()` instead.
- The deprecated methods IMP::SingletonContainer::get_particle(),
IMP::PairContainer::get_particle_pair(),
IMP::TripletContainer::get_particle_triplet(), and
IMP::QuadContainer::get_particle_quad() have been removed. Use the
get_contents() method instead.
- The IMP::em::CoarseCC class is deprecated. Use similarly-named free
functions instead to calculate coarse cross correlation.
- A new numerically stable grid-based Bayesian scoring function,
IMP::em::FitRestraintBayesEM3D, has been added for cryo-EM data. Note that
this is still in development.
- The IMP::pmi::mmcif::ProtocolOutput constructor no longer takes a file
handle argument, and the IMP::pmi::mmcif::ProtocolOutput::flush() method
has been removed. Instead, use the python-ihm library to output mmCIF
(or BinaryCIF).
- IMP can now be built using external (system) copies of the RMF and/or
python-ihm libraries, instead of those bundled with IMP itself; use the
`IMP_USE_SYSTEM_RMF` or `IMP_USE_SYSTEM_IHM` CMake variables.
- MRC file handling has been extended; MRC files not aligned with the xyz
axes (mapc/mapr/maps not 1,2,3) are now automatically transposed rather than
raising an exception, and the origin is now set from the
nxstart/nystart/nzstart fields if present and the file origin is zero.
- New applications of IMP are now available:
- [Integrative model of the γTuSC-Spc110 complex](https://salilab.org/gtuscSpc110)
- [Integrative structure of the Smc5/6-Nse2/5/6 complex](https://integrativemodeling.org/systems/smc56_nse256)
- IMP's copies of the old Template Numerical Toolkit (TNT) and
JAMA/C++ library have been removed from IMP::algebra::internal.
Use equivalent functionality in the Eigen library instead.

# 2.14.0 - 2020-12-02 # {#changelog_2_14_0}
- All IMP.parallel worker classes are now subclasses of IMP.parallel.Worker;
the old class names still exist as aliases, but are deprecated.
Expand Down Expand Up @@ -462,7 +497,7 @@ ChangeLog {#changelog}
- Generation of documentation using `doxygen` has been refactored. It is now done on a per-module basis, via targets like `IMP.core-doc`. The main advantage is that changes to the doc for a module can be tested comparatively quickly, just by building that module's docs. On the down side, docs are no longer quite so heavily interconnected, so dependencies only work to things that the module actually depends on.
- The restraint and score state statistics functions were removed from IMP::Model. They had been broken for quite a while, with no one complaining. Statistics can be added back easily if requested.
- Added an IMP-specific fork of `git-flow`. It handles things like `README.md` files when you start and finish feature branches and provides a tool to nicely update IMP and display the change log. The main commands of use are `git imp feature start <feature_name>`, `git imp feature finish <feature_name>`, and `git imp update`. You may want to remove the `git-flow` lines from your `.git/config` file as you may accidentally type `git flow` instead of `git imp`. You need to run `setup_git.py` to set things up.
- [RMF](http://salilab.github.com/rmf) is now included as a git submodule rather than copied into the IMP repository. You should rerun `setup_git.py` to make sure submodule stuff is initialized.
- [RMF](https://github.com/salilab/rmf) is now included as a git submodule rather than copied into the IMP repository. You should rerun `setup_git.py` to make sure submodule stuff is initialized.


# For IMP 2.0 and earlier # {#changelog_2_0}
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ new shell.
Copyright and License information
=================================

IMP is Copyright 2007-2020 IMP Inventors. The IMP Inventors are
IMP is Copyright 2007-2021 IMP Inventors. The IMP Inventors are
Andrej Sali, Ben Webb, Daniel Russel, Keren Lasker, Dina Schneidman,
Javier Velázquez-Muriel, Friedrich Förster, Elina Tjioe, Hao Fan,
Seung Joong Kim, Yannick Spill, Riccardo Pellarin.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.14.0
2.15.0
28 changes: 28 additions & 0 deletions cmake_modules/CheckCompiles.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
include(CheckCXXSourceCompiles)
function(check_compiles name pkgname ucpkgname includes include_dir link_libs result)
#message(STATUS "Trying to compile ${pkgname} searching in ${include_dir} ${link_libs}")
set(CMAKE_REQUIRED_LIBRARIES ${link_libs})
set(CMAKE_REQUIRED_INCLUDES ${include_dir})
set(mybody "${includes}
int main(int,char*[]) {
${CHECK_COMPILES_BODY}
return 0;
}")
set(${pkgname})
check_cxx_source_compiles("${mybody}" "${pkgname}${name}")
if ("${${pkgname}${name}}" MATCHES "1")
#message(STATUS "Compiled ok")
set(${ucpkgname}_INCLUDE_PATH ${include_dir} CACHE INTERNAL "" FORCE)
foreach(l ${link_libs})
set(${ucpkgname}_LIBRARIES ${${ucpkgname}_LIBRARIES} ${l} CACHE INTERNAL "" FORCE)
endforeach()
file(WRITE "${CMAKE_BINARY_DIR}/build_info/${pkgname}" "ok=True
includepath=\"${${pkgname}_INCLUDE_PATH}\"
swigpath=\"${${pkgname}_SWIG_PATH}\"
libpath=\"${${pkgname}_LIB_PATH}\"
")
set(${result} "1" PARENT_SCOPE)
else()
set(${result} "0" PARENT_SCOPE)
endif()
endfunction(check_compiles)
Loading

0 comments on commit 4d60c54

Please sign in to comment.