Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
- There is now some limited IMP-wide gathering of timing statistics. You can add `--statistics=filename` to the command line or use the IMP::base::show_timings() function to view of summary of where IMP has spent time. - Slack was being used inconsistently (and not always correctly) among the various containers and restraints. If you had heavily optimized the slack value for speed, you may want to revisit it. - class name OwnerPointer was switched to PointerMember, to denote more clearly a ref-counting pointer that is a class member - The dependency handling in IMP has been rewritten to simplify it and fix a bunch of bugs. There are now more checks of correctness, so behavior that might have silently worked (or not worked) before may now trigger errors. In particular, restraints/score states must have access to the IMP::kernel::Model to do much of anything, so either use constructors that take the model or call IMP::kernel::ModelObject::set_model(). Also, changing your set of inputs or outputs without calling IMP::kernel::ModelObject::set_has_dependencies(false) is now likely to trigger a check failure (it would just silently do the wrong thing before). - Decorators have been cleaned up to make them behave consistently regarding IMP::kernel::Particle vs IMP::kernel::ParticleIndexes. This change shouldn't break existing code, but decorators should move to the new macros IMP_DECORATOR_METHODS(), IMP_DECORATOR_SETUP_0() etc. - The IMP_GRAPH() and IMP_WEIGHTED_GRAPH() macros got an extra argument describing how to show the vertexes in the graph. They also now expose a method, eg IMP::kernel::show_as_graphviz() that writes the graph in graphviz format to an IMP::base::TextOutput. - Support and rules for deprecating code in IMP have been updated. There are new macros and instructions how to use them that should result in much better visibility about changes. See the C++ wiki for IMP for more information. And there is now an encoded policy of keeping deprecated things around for 1 release after deprecation. - IMP is now much more selective about when it invalidates the dependency graph. See [Dependencies](http://github.com/salilab/imp/wiki/Dependencies) for more information. This change should make evaluation of isolated restraints much faster in certain situations where they were unexpectedly slow before. - IMP::atom::Selection has been completely rewritten as it was very brittle. The set of particles returned may change in some cases, in some cases because it was buggy before, in some cases because of new bugs. - Reminder: the IMP_PROTECTED macros didn't work out well, and are now deprecated. If you had python implementations on top of IMP base classes that implement protected virtual methods, you may need to remove a leading `_` on the method name, if you get `Swig director pure virtual method called IMP::kernel::PairScore::do_get_inputs` messages. - The generated `cmake` files are no longer store in the repository. Instead `tools/build/setup_cmake.py` is run after checkouts and other git events that change the repository tree (assuming you have run `setup_git.py`). - Generation of documenation using `doxygen` has been refactored. It is now done on a per-module bases, 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 remove 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.