.. include:: /../getting_started/vars.rst
.. _section-Install-Upgrade:
Upgrade Overview
****************
.. _section-Install-Upgrade-Path:
Upgrade Path
============
This Migration Guide describes how to upgrade to any of the *RTI® Connext®* 6
and 7 releases from release 5.3.1 or later.
.. list-table::
:name: TableUpgradeOverview
:widths: 50
:header-rows: 0
* -
.. figure:: static/upgrade_over_lateral_700.png
:figwidth: 70 %
:alt: Upgrade Overview
:name: FigureUpgradeOver
:align: center
Consider Migration Issues Step-Wise
* -
1. For information on upgrading to 5.3.1 from any previous release,
see the :link_release_notes_s:`5.3.1 Core Libraries Release Notes <5.3.1>`.
2. See :ref:`section-index600` in this Migration Guide.
3. See :ref:`section-index601` in this Migration Guide.
4. See :ref:`section-index610` in this Migration Guide.
5. See :ref:`section-index611` in this Migration Guide.
6. See :ref:`section-index700` in this Migration Guide.
For example, if you are upgrading from 6.0.1 to 7.0.0, see the following sections:
:ref:`section-index601`, :ref:`section-index610`, :ref:`section-index611`,
and :ref:`section-index700`. Together, these sections provide important upgrade
considerations that apply when upgrading from 6.0.1 to 7.0.0.
Whether you will keep some of your legacy |CONNEXT| systems or migrate
entirely to a *Connext* 6 or 7 release, read this guide to see what settings
or other changes you may need to make before you upgrade all or part of your
system. The full set of changes for your release is described in the *What's New*
and *Core Libraries Release Notes* documents for your release:
* :link_whats_new_700:`What's New in 7.0.0 <>` and :link_release_notes_700:`Core Libraries Release Notes 7.0.0 <>`
* :link_connext_whats_new_611:`What's New in 6.1.1 <>` and :link_release_notes_611:`Core Libraries Release Notes 6.1.1 <>`
* :link_connext_whats_new_610:`What's New in 6.1.0 <>` and :link_release_notes_610:`Core Libraries Release Notes 6.1.0 <>`
* :link_connext_whats_new_601:`What's New in 6.0.1 <>` and :link_release_notes_601:`Core Libraries Release Notes 6.0.1 <>`
* :link_connext_whats_new_600:`What's New in 6.0.0 <>` and :link_release_notes_600:`Core Libraries Release Notes 6.0.0 <>`
This guide describes only those changes that may break old behavior.
.. _section-Install-Upgrade-Steps:
Upgrade Steps
=============
Whenever upgrading to a new, major release, you must regenerate the type-specific
code that was generated from your IDL, XML, or XSD definitions with the new version of
*rtiddsgen*, then recompile and re-link your applications with the new versions
of the |CONNEXT| libraries. The basic steps are as follows:
#. Make the changes required for your system, based on the compatibility issues
described in this guide:
* See the "Product-Specific Compatibility" section for your release, for issues
that affect your products.
* See the "General Compatibility" section for your release. This section is
particularly important if your release will coexist with older releases.
* See :ref:`section-regression-index` for any issues that may apply to you.
|br|
|br|
#. Regenerate code as described in :numref:`section-Product-gen-code-compatibility`.
|br|
|br|
#. Recompile your source as described in :numref:`section-Product-ABI`.
If you need help with your upgrade, contact RTI Support:
log into the `Customer Portal `_, send email to support@rti.com,
or call the telephone number provided for your region.
.. note::
If you had early access to a pre-release version of *Connext*, delete
(or move or rename) the ``rti_workspace/``
directory (e.g., ``rti_workspace/7.0.0``) before installing.
.. _section-gen-compile:
Regenerating and Recompiling
============================
.. _section-Product-gen-code-compatibility:
Generated code compatibility
----------------------------
For |CONNEXT| applications defining types in IDL, XML, or XSD, moving
between any two releases in this guide requires code regeneration and recompilation.
You will need to regenerate the code for your application
types using the *RTI Code Generator* shipped with your release. The regeneration
process is simple; you only need to run the new version of *Code Generator*
using the original input IDL file. For example:
.. code-block:: text
rtiddsgen -language C++11 -update typefiles your_previous_release_IDL.idl
You should see a message that says you are running *rtiddsgen* version 3.0.0
if you are upgrading to 6.0.0, *rtiddsgen* version 3.0.1 if you are upgrading
to 6.0.1, *rtiddsgen* version 3.1.0 if you are upgrading to 6.1.0,
*rtiddsgen* version 3.1.1 if you are upgrading to 6.1.1, or *rtiddsgen* version
4.0.0 if you are upgrading to 7.0.0.
This process will regenerate the header and source files, which can then be
compiled along with the rest of your application.
.. _section-Product-ABI:
Application Binary Interface
----------------------------
*RTI* |CONNEXT| does not provide Application Binary Interface (ABI)
compatibility with previous versions of |CONNEXT|. Therefore, an
application compiled using a previous version of |CONNEXT| must be
recompiled when moving to a new |CONNEXT| 6.x.x or 7.x.x version.
The |CONNEXT| core primarily consists of libraries and a set of header files.
In most cases, upgrading simply requires you to recompile your source using
the new header files and link your application with the new libraries.
In some cases, minor modifications to your application code might be required;
any such changes are noted in this Migration Guide.
After you make modifications to your application code, recompile your source
using the new header files and link the new libraries.