Toolkit API

Toolkits are programming libraries that provide computational building blocks for solving specific programming problems as well as general methods that can be customized to create innovative new tools and workflows. OpenEye Toolkits provide technologies to solve a wide range of cheminformatics and molecular modeling problems.

_images/toolkits.png

OpenEye Toolkits

OpenEye Toolkits are delivered as APIs for 4 supported languages: C++, Python, Java, and C#. The APIs are stable between versions and across platforms. This allows users to write toolkit programs that will be viable for many years. New toolkit releases often include bug fixes and performance improvements to core functionality. Users can recompile against newer versions of the toolkits to gain the benefits of the improvements to the core functionality.

In order to accelerate the delivery of new technologies, new programming APIs may be released as Preliminary APIs. A Preliminary API is a set of new functionality that has been fully tested but may have limited real-world use. In that case, it is valuable to collect feedback about the usability of the functionality before committing to a final, immutable API design. Preliminary APIs may change based on this user feedback; they will become stable after 1 or 2 release cycles. Preliminary APIs will sometimes be made available on a subset of supported languages and platforms.

_images/toolkits-API.png

Scheme of delivering OpenEye Toolkit API

Stable API

Toolkits that have been fully developed, documented, and tested are considered stable. The API definitions for these toolkits will be consistent across languages and platforms and will not change between toolkit releases.

Code written with earlier versions of the toolkit will compile and run with newer versions. This allows users to easily upgrade to newer versions without worrying about breaking legacy code.

Preliminary API

APIs that are still under development might be delivered and marked as preliminary. Providing early access means that the APIs can be improved based on user feedback before committing to a final API design. Preliminary APIs will sometimes be made available for a limited set of platforms and languages. They are marked as follows:

Attention

PIMAGE This is a Preliminary API until 2018.Oct and may be improved based on user feedback. It is currently available in C++ and Python.

The label will generally include the timeline for full release of the API and any platform or language limitations.

Release Cycle

Beginning in 2019, OpenEye Toolkits will be released either as a feature or as a bug-fix release. Both types of releases will be available in all supported languages and on all supported platforms. Toolkit packages are versioned based on the release date. For example, 2019.Apr.1 represents the first released version of the toolkits in April 2019.

Feature release
The feature releases will take place in April and October. These releases will provide support for new platforms and major and minor code fixes as well as new features.
Bug-fix release
The bug-fix releases will happen between features releases, if necessary. These releases will provide crucial bug fixes but no new features or platform updates.
_images/release-cycle-new.png

OpenEye Toolkits release cycle

Note

Until 2019, OpenEye Toolkits were released three times a year in February, June, and October.