Introduction

Toolkit API

The OpenEye 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 four 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

PRELIMINARY API. This is a Preliminary API 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 2020, feature release for OpenEye Toolkits are delivered two times per year, in Spring and Fall. Intermediate bug fix releases are done to fix critical issues if necessary. Both types of releases will be available in all supported languages and on all supported platforms.

Packages are versioned as <year>.<release#>.<build#>. For example, 2020.0.0 represents the first build of the first released version in 2020.

Feature release

These releases provide support for new platforms and major and minor code fixes, as well as new features.

Bug-fix release

The bug-fix releases happen between features releases, if necessary. These releases provide crucial bug fixes but no new features or platform updates.

_images/ReleaseCycleImage.png

OpenEye Toolkits release cycle