Skip to content

DOCSP-41992 Upgrade versions #152

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Sep 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion snooty.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ toc_landing_pages = [
"/write",
"/indexes",
"/security",
"/data-formats"
"/data-formats",
"/upgrade"
]

sharedinclude_root = "https://raw.githubusercontent.com/10gen/docs-shared/main/"
Expand Down
1 change: 1 addition & 0 deletions source/index.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ MongoDB PHP Library
/data-formats
/compatibility
/whats-new
/upgrade
FAQ </faq>
/reference

Expand Down
99 changes: 99 additions & 0 deletions source/upgrade.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
.. _php-upgrade:

=======================
Upgrade Driver Versions
=======================

.. contents:: On this page
:local:
:backlinks: none
:depth: 1
:class: singlecol

.. facet::
:name: genre
:values: reference

.. meta::
:keywords: compatibility, backwards compatibility

Overview
--------

On this page, you can learn how to upgrade your driver to a new version. This
page also includes the changes you must make to your application when you
upgrade to a new version of the {+php-library+}.

How to Upgrade
--------------

Before you upgrade, perform the following actions:

- Ensure the new {+driver-short+} version is compatible with the {+mdb-server+} versions
your application connects to and the PHP version your
application compiles with. For version compatibility information, see the
:ref:`{+php-library+} Compatibility <php-compatibility>`
page.
- Address any breaking changes between the driver version
your application is using and your planned upgrade version in the
:ref:`Breaking Changes <php-breaking-changes>` section.

.. tip::

To ensure compatibility across {+mdb-server+} versions when
upgrading driver versions, use the :ref:`{+stable-api+} <php-stable-api>`.

Major and minor versions of the PHP extension and library are in sync. This
means you can run an upgrade command for the extension to also upgrade the PHP
library.

Patch versions (x.x.x) for the library and extension are not in sync. Run the
respective commands to update to the patch versions for the library or extension.

To upgrade the PHP extension, replace ``<version-number>`` with the version number
you want to upgrade to and run the following command in your application's
directory:

.. code-block:: bash

pecl upgrade mongodb-<version-number>

To upgrade the PHP library version, replace ``<version-number>`` with the
version number you want to upgrade to and run the following command in your
application's directory:

.. code-block:: bash

composer require mongodb/mongodb:<version-number>

Detailed installation instructions may be found in the
:php:`PHP.net documentation <manual/en/mongodb.installation.php>`.

.. _php-breaking-changes:

Breaking Changes
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of notes here:

  • We don't consider dropping support for a server version a breaking change, otherwise it would only be done in a major version. When we drop support for a server version, it has been out of official support for several years.
  • Deprecations are not considered breaking changes - rather is it a way to announce an upcoming breaking change that will be made in a future major version.
  • Upgrading the extension requirement or PHP requirements are also not breaking changes, as composer's dependency resolution will refuse to install a version of the library that isn't compatible with the installed extension version or the installed PHP version.

To summarise, this section should mention that we will make breaking changes only in a new major version, and we're also providing an upgrade file to go along with that version, along with deprecating any functionality to be removed. For example, we're currently working on version 2.0 of the extension, and the corresponding upgrade file lists everything that is removed. Note that this is a work in progress and should not yet be added to the docs.

We can list dropping support for MongoDB 3.6 in version 1.20 as a breaking change, but the other changes listed are not breaking changes in a traditional sense and should be removed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I concur with reserving the term "breaking changes" for the driver API and thus new major versions; however, we should make sure all driver docs are on the same page here.

Removing support for EOL server and PHP versions is something communicated in release notes, and DBX also has a policy of announcing server compatibility changes in advance.

Copy link
Collaborator Author

@lindseymoore lindseymoore Sep 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will remove all the deprecation notes other than the dropped support for MongoDB Server 3.6 for Version 1.20.

Once version 2.0 is released, we can add a note about upgrade files, as there are no other upgrade files for current versions out (the last one I see was for upgrading to 1.5 which is now the oldest relevant version according to compatibility table).

Let me know if this looks good, thanks!

----------------

A breaking change is a change of a convention or a behavior starting in a specific
version of the driver. This type of change may prevent your application from working
properly if not addressed before upgrading the driver.

The breaking changes in this section are categorized by the driver version that introduced
them. When upgrading driver versions, address all the breaking changes between the current
and upgrade versions.

For more information on release changes, see the release notes and associated
JIRA tickets for each release on `GitHub <https://github.com/mongodb/mongo-php-library/releases>`__.

Version 1.20 Breaking Changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This driver version introduces the following breaking changes:

- Drops support for {+mdb-server+} 3.6.

Version 1.19 and Earlier
~~~~~~~~~~~~~~~~~~~~~~~~

For driver versions 1.19 and earlier, see the release notes and associated
JIRA tickets for each release on `GitHub <https://github.com/mongodb/mongo-php-library/releases>`__.
Loading