Skip to main content
Skip table of contents

Backward Compatibility of Ice Versions

This page describes the guarantees and non-guarantees provided by Ice’s versioning scheme.

Major, Minor and Patch

An Ice release version has 3 components: major.minor.patch. For example, Ice 3.8.5.

A major release introduces a new major version, a minor release introduces a new minor version, and a patch release only introduces a new patch version.

Source-code compatibility

Ice maintains source-code compatibility between a patch release (e.g., 3.8.5) and the most recent minor release (e.g., 3.8.0), but does not guarantee source-code compatibility between minor releases (e.g., between 3.7 and 3.8).

The Upgrade Guide describes the significant API changes in this release that may impact source-code compatibility.

Binary compatibility

As for source-code compatibility, Ice maintains backward binary compatibility between a patch release and the most recent minor release, but does not guarantee binary compatibility between minor releases.

When upgrading to a new minor (or major) release, you always need to recompile your Slice files. You also need to upgrade your source code to use the latest Ice APIs.

On-the-wire compatibility

Ice always maintains "on the wire" compatibility with prior releases. A client using Ice version x can communicate with a server using Ice version y and vice versa.

Interface compatibility

Although Ice always maintains compatibility at the protocol level, changing Slice definitions can also lead to incompatibilities. As a result, Ice maintains interface compatibility between a patch release and the most recent minor release, but does not guarantee interface compatibility between minor releases.

This issue is particularly relevant if your application uses Ice services such as IceGrid or IceStorm, as a change to an interface in one of these services may adversely affect your application.

Interface changes in an Ice service can also impact compatibility with its administrative tools, which means it may not be possible to administer a service using a tool from a previous minor release (or vice-versa).

The Upgrade Guide describes interface changes made by Ice services.

Database compatibility

The IceGrid and IceStorm services store data persistently in LMDB databases.

Ice maintains database schema compatibility between a patch release and the most recent minor release, but does not guarantee database schema compatibility between minor releases.

For example, you can start an IceGrid registry 3.8.5 using a database created by IceGrid registry 3.8.0. But there is no blanket guarantee that you can start IceGrid registry 3.9 using a database created by IceGrid registry 3.8.5.

The Upgrade Guide describes database schema changes made by IceGrid and IceStorm.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.