|
| 1 | +.. _c2c-release-version-numbers: |
| 2 | + |
| 3 | +======================== |
| 4 | +``mongosync`` Versioning |
| 5 | +======================== |
| 6 | + |
| 7 | +.. default-domain:: mongodb |
| 8 | + |
| 9 | +.. contents:: On this page |
| 10 | + :local: |
| 11 | + :backlinks: none |
| 12 | + :depth: 2 |
| 13 | + :class: singlecol |
| 14 | + |
| 15 | + |
| 16 | +{+c2c-product-name+} uses `Semantic Versioning 2.0.0 |
| 17 | +<https://semver.org/>`__. Version numbers have the form ``X.Y.Z``, where |
| 18 | +``X`` is the major version, ``Y`` is the minor version, and ``Z`` is the |
| 19 | +patch version. |
| 20 | + |
| 21 | +MongoDB uses the following guidelines to determine when to increment the |
| 22 | +version number for {+c2c-product-name+}: |
| 23 | + |
| 24 | +- Major number: The release breaks backwards compatibility. |
| 25 | +- Minor number: The release includes significant new features that are |
| 26 | + backwards compatible. |
| 27 | +- Patch number: This release only includes small, backwards compatible |
| 28 | + changes. |
| 29 | + |
| 30 | + |
| 31 | +Currently Supported Versions |
| 32 | +---------------------------- |
| 33 | + |
| 34 | +If you are using an unsupported version of ``mongosync``, you may be |
| 35 | +asked to upgrade in order to receive support. |
| 36 | + |
| 37 | + |
| 38 | +MongoDB Server Version Compatibility and Support |
| 39 | +------------------------------------------------ |
| 40 | + |
| 41 | +{+c2c-product-name+} supports the following versions of MongoDB Server: |
| 42 | + |
| 43 | + |
| 44 | +.. list-table:: |
| 45 | + :header-rows: 1 |
| 46 | + :stub-columns: 1 |
| 47 | + |
| 48 | + * - ``mongosync`` Version |
| 49 | + - MongoDB Server Version |
| 50 | + |
| 51 | + * - 1.0.0 |
| 52 | + - 6.0.x |
| 53 | + |
| 54 | +Considerations |
| 55 | +-------------- |
| 56 | + |
| 57 | +{+c2c-product-name+} has the following version related considerations: |
| 58 | + |
| 59 | +Same Server Version |
| 60 | +~~~~~~~~~~~~~~~~~~~ |
| 61 | + |
| 62 | +{+c2c-product-name+} only supports syncing between the same version of |
| 63 | +MongoDB Server. All three :ref:`server version numbers |
| 64 | +<release-version-numbers>`, including the patch number, must be the |
| 65 | +same on both servers. |
| 66 | + |
| 67 | +Support Lifecycle |
| 68 | +~~~~~~~~~~~~~~~~~ |
| 69 | + |
| 70 | +- Major releases are supported for at least one year from the first |
| 71 | + release in that series. |
| 72 | +- If a version of {+c2c-product-name+} only works with an unsupported |
| 73 | + version of MongoDB Server, that version of {+c2c-product-name+} is |
| 74 | + also unsupported. |
| 75 | + |
| 76 | +Patch Releases |
| 77 | +~~~~~~~~~~~~~~ |
| 78 | + |
| 79 | +Only the latest version in each major release series receives new patch |
| 80 | +releases. For example, when version {+c2c-product-name+} 2.1.0 is |
| 81 | +released, version 2.0 would no longer receive patch releases. At the |
| 82 | +same time, version 1.3 would continue to receive patches until version |
| 83 | +1.4 was released. |
| 84 | + |
| 85 | +Upgrade and Downgrade |
| 86 | +~~~~~~~~~~~~~~~~~~~~~ |
| 87 | + |
| 88 | +To upgrade, or downgrade ``mongosync``: |
| 89 | + |
| 90 | +- Stop all currently running ``mongosync`` processes. |
| 91 | +- Drop all non-system databases in the destination cluster. |
| 92 | +- :ref:`Install <c2c-install>` new ``mongosync`` binaries. |
| 93 | +- :ref:`Start <c2c-api-start>` the ``mongosync`` processes using the new |
| 94 | + binaries. |
| 95 | + |
| 96 | +.. warning:: |
| 97 | + |
| 98 | + The new ``mongosync`` processes do not resume any work that may have |
| 99 | + been in progress. Syncing operations restart from the beginning when |
| 100 | + you start the new processes. |
| 101 | + |
| 102 | +Persistent Metadata |
| 103 | +~~~~~~~~~~~~~~~~~~~ |
| 104 | + |
| 105 | +During normal operation, ``mongosync`` creates metadata that is |
| 106 | +persisted to disk in the destination database. This metadata is not |
| 107 | +versioned and may change at any time. |
| 108 | + |
| 109 | +Log Messages |
| 110 | +~~~~~~~~~~~~ |
| 111 | + |
| 112 | +Log message formats are not versioned and may change at any time. This |
| 113 | +includes changes to the message text, as well as the presence, absence, |
| 114 | +or contents of other fields in the message. |
| 115 | + |
| 116 | +User scripts and applications should not rely on logging output. Scripts |
| 117 | +and applications should use the :ref:`monitoring API <c2c-api-progress>` |
| 118 | +to determine the current state of ``mongosync``. |
| 119 | + |
| 120 | +Examples |
| 121 | +-------- |
| 122 | + |
| 123 | +The following examples illustrate the kinds of changes that would result |
| 124 | +in each type of version number update. |
| 125 | + |
| 126 | +Major Releases |
| 127 | +~~~~~~~~~~~~~~ |
| 128 | + |
| 129 | +- Changes that make the new and old versions of ``mongosync`` produce |
| 130 | + different results on the destination cluster for the same set of |
| 131 | + inputs. Except: |
| 132 | + |
| 133 | + - Bug fixes for cases where the older version of ``mongosync`` fails |
| 134 | + to replicate data. |
| 135 | + - When the earlier behavior is explicitly documented as unsupported. |
| 136 | + |
| 137 | +- Changes to documented CLI parameters or configuration keys such that |
| 138 | + ``mongosync`` rejects formerly valid input. Except: |
| 139 | + |
| 140 | + - Bug fixes such as parsing or type errors. |
| 141 | + - Even though CLI parameters or configuration keys may be deprecated, |
| 142 | + the meaning of documented CLI parameters or configuration keys will |
| 143 | + never change. If needed, new parameters or keys will replace the |
| 144 | + older, deprecated entities. |
| 145 | + |
| 146 | +- Changes that break compatibility with a supported version of MongoDB |
| 147 | + Server. |
| 148 | +- Dropping a version of the REST API. ``mongosync`` may dropping all |
| 149 | + older endpoints in favor of a new version of the API. There will never |
| 150 | + be any other types of backwards incompatible changes in the REST API. |
| 151 | +- Removing support for a previously supported MongoDB Server feature if |
| 152 | + ``mongosync`` still supports a version of MongoDB Server that supports |
| 153 | + the feature. |
| 154 | +- If ``mongosync`` already supports a major version of MongoDB Server, |
| 155 | + changes that require new access privileges in order to continue |
| 156 | + supporting that version of MongoDB Server. |
| 157 | + |
| 158 | +Minor Releases |
| 159 | +~~~~~~~~~~~~~~ |
| 160 | + |
| 161 | +- Adding support for a previously incompatible MongoDB Server version. |
| 162 | +- Requiring new access privileges for a previously unsupported major |
| 163 | + release of MongoDB Server. |
| 164 | +- Adding support for previously unsupported collection types. |
| 165 | +- Adding support for previously unsupported index types. |
| 166 | +- Adding new endpoints, new fields, or new accepted inputs in the REST API. |
| 167 | +- Adding new documented CLI options. |
| 168 | +- Adding new configuration keys or accepted values. |
| 169 | + |
| 170 | +Patch Releases |
| 171 | +~~~~~~~~~~~~~~ |
| 172 | + |
| 173 | +- Backwards compatible bug fixes. |
| 174 | +- Performance regression fixes. |
| 175 | +- Performance improvements. |
| 176 | +- Changes to help text strings. |
| 177 | +- Changes to log text strings. |
| 178 | +- Changes to informational text in API responses, but not changes to |
| 179 | + enum-style string fields like "state". |
| 180 | +- Typo fixes. |
| 181 | + |
0 commit comments