Skip to content

Commit bffd7d5

Browse files
authored
DOCSP-45212 Compatibility (#97)
1 parent 8899aef commit bffd7d5

6 files changed

+404
-736
lines changed

Diff for: source/compatibility.txt

+123
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
.. _ruby-compatibility:
2+
3+
=============
4+
Compatibility
5+
=============
6+
7+
.. contents:: On this page
8+
:local:
9+
:backlinks: none
10+
:depth: 2
11+
:class: singlecol
12+
13+
.. facet::
14+
:name: genre
15+
:values: reference
16+
17+
.. meta::
18+
:keywords: backwards compatibility, versions, upgrade
19+
20+
MongoDB Compatibility
21+
---------------------
22+
23+
The following compatibility table specifies the recommended
24+
version(s) of the {+driver-long+} for use with a specific version of
25+
MongoDB. Except when indicated, the specified driver versions expose or
26+
take advantage of the features added in the corresponding server versions.
27+
28+
MongoDB server releases are generally backwards compatible. This means a
29+
particular driver version will generally work with newer server versions but might
30+
not utilize the new functionalities in those server versions.
31+
32+
The first column lists the driver versions.
33+
34+
.. sharedinclude:: dbx/lifecycle-schedule-callout.rst
35+
36+
.. include:: /includes/compatibility-table-legend-ruby.rst
37+
38+
.. include:: /includes/mongodb-compatibility-table-ruby.rst
39+
40+
The driver does not support older versions of MongoDB.
41+
42+
Language Compatibility
43+
----------------------
44+
45+
The following compatibility table specifies the versions of Ruby supported
46+
by the various versions of the {+driver-long+}.
47+
48+
The first column lists the driver versions.
49+
50+
.. include:: /includes/compatibility-table-legend-ruby.rst
51+
52+
.. include:: /includes/language-compatibility-table-ruby.rst
53+
54+
The driver does not support older versions of Ruby.
55+
56+
Rails/ActiveSupport Compatibility
57+
---------------------------------
58+
59+
The {+driver-short+} does not depend on ActiveSupport. However, if your
60+
application uses ActiveSupport or Ruby on Rails, you must load the driver's
61+
ActiveSupport compatibility code for behavior such as time serialization to be
62+
correct:
63+
64+
.. code-block:: ruby
65+
66+
require 'mongo'
67+
require 'mongo/active_support'
68+
69+
Applications using Mongoid 7.0.6 or newer do not need to explicitly load
70+
the driver's ActiveSupport code, since Mongoid automatically does so.
71+
72+
.. _tls-compatibility:
73+
74+
TLS/SSL Compatibility
75+
----------------------
76+
77+
The {+driver-short+} uses the protocols supported by the underlying Ruby
78+
``openssl`` extension. The ``openssl`` extension generally exposes
79+
the functionality available in the operating system's OpenSSL library.
80+
81+
Industry best practices, and some regulations, require the use of TLS 1.1
82+
or newer. Some operating systems or versions might not provide an OpenSSL version
83+
that supports these TLS versions.
84+
85+
If you use macOS older than 10.13 (High Sierra), you need to install Ruby from
86+
`rvm`_, `homebrew`_, `macports`_, or another similar source. See
87+
`Installing Ruby`_ for more options.
88+
89+
If you use Linux or other non-macOS Unix systems, you can check your OpenSSL version
90+
as follows:
91+
92+
.. code-block:: sh
93+
94+
openssl version
95+
96+
If the version number is less than 1.0.1, support for TLS 1.1 or newer is
97+
not available. Contact your operating system vendor for a solution or upgrade
98+
to a newer distribution.
99+
100+
You can check your TLS version by running the following command:
101+
102+
.. code-block:: sh
103+
104+
ruby -e "require 'net/http'; require 'json'; puts JSON.parse(Net::HTTP.get(URI('https://www.howsmyssl.com/a/check')))['tls_version']"
105+
106+
After running the command, you must see ``TLS 1.X`` where ``X`` is greater than
107+
or equal to ``1``.
108+
109+
To learn more about TLS versions and their security implications, see `Transport Layer Security Cheat Sheet
110+
<https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Security_Cheat_Sheet.html>`_.
111+
112+
.. _rvm: https://rvm.io/
113+
.. _homebrew: https://brew.sh/
114+
.. _macports: https://www.macports.org/
115+
.. _Installing Ruby: https://www.ruby-lang.org/en/documentation/installation
116+
117+
JRuby and TLS Connections
118+
-------------------------
119+
120+
Due to JRuby limitations:
121+
122+
- The driver does not support ECDSA server certificates.
123+
- The driver does not perform OCSP endpoint checking.

Diff for: source/includes/compatibility-table-legend-ruby.rst

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Compatibility Table Legend
2+
++++++++++++++++++++++++++
3+
4+
.. list-table::
5+
:header-rows: 1
6+
:stub-columns: 1
7+
:class: compatibility
8+
9+
* - Icon
10+
- Explanation
11+
12+
* - ✓
13+
- All features are supported.
14+
* - D
15+
- Support for the Driver version is deprecated.
16+
* - No mark
17+
- The Driver version is not tested with the MongoDB version.
+138
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
.. list-table::
2+
:header-rows: 1
3+
:stub-columns: 1
4+
:class: compatibility-large no-padding
5+
6+
* - Ruby Driver
7+
- Ruby 3.2
8+
- Ruby 3.1
9+
- Ruby 3.0
10+
- Ruby 2.7
11+
- Ruby 2.6
12+
- JRuby 9.4
13+
- JRuby 9.3
14+
- JRuby 9.2
15+
- JRuby 9.1
16+
17+
* - 2.20 to 2.21
18+
- |checkmark|
19+
- |checkmark|
20+
- |checkmark|
21+
- D
22+
-
23+
- |checkmark|
24+
- |checkmark|
25+
- D
26+
-
27+
28+
* - 2.19
29+
- |checkmark|
30+
- |checkmark|
31+
- |checkmark|
32+
- |checkmark|
33+
- D
34+
-
35+
- |checkmark|
36+
- |checkmark|
37+
-
38+
39+
* - 2.18
40+
- |checkmark|
41+
- |checkmark|
42+
- |checkmark|
43+
- |checkmark|
44+
- |checkmark|
45+
-
46+
- |checkmark|
47+
- |checkmark|
48+
-
49+
50+
* - 2.17
51+
-
52+
- |checkmark|
53+
- |checkmark|
54+
- |checkmark|
55+
- |checkmark|
56+
-
57+
-
58+
- |checkmark|
59+
-
60+
61+
* - 2.16
62+
-
63+
-
64+
- |checkmark|
65+
- |checkmark|
66+
- |checkmark|
67+
-
68+
-
69+
- |checkmark|
70+
-
71+
72+
* - 2.15
73+
-
74+
-
75+
- |checkmark|
76+
- |checkmark|
77+
- |checkmark|
78+
-
79+
-
80+
- |checkmark|
81+
-
82+
83+
* - 2.14
84+
-
85+
-
86+
-
87+
- |checkmark|
88+
- |checkmark|
89+
-
90+
-
91+
- |checkmark|
92+
-
93+
94+
* - 2.11 to 2.13
95+
-
96+
-
97+
-
98+
- |checkmark|
99+
- |checkmark|
100+
-
101+
-
102+
- |checkmark|
103+
-
104+
105+
* - 2.10
106+
-
107+
-
108+
-
109+
- |checkmark|
110+
- |checkmark|
111+
-
112+
-
113+
- |checkmark|
114+
- |checkmark|
115+
116+
* - 2.9
117+
-
118+
-
119+
-
120+
-
121+
- |checkmark|
122+
-
123+
-
124+
- |checkmark|
125+
- |checkmark|
126+
127+
* - 2.6 to 2.8
128+
-
129+
-
130+
-
131+
-
132+
- |checkmark|
133+
-
134+
-
135+
- |checkmark|
136+
- |checkmark|
137+
138+
.. include:: /includes/unicode-checkmark.rst

0 commit comments

Comments
 (0)