Skip to content

Commit 78f82ef

Browse files
Merge pull request #2725 from jeff-allen-mongo/v6.3
Merge v6.2 into v6.3
2 parents 584896b + a7c40ee commit 78f82ef

File tree

1,047 files changed

+18193
-8973
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,047 files changed

+18193
-8973
lines changed

.github/pull_request_template.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1+
## DESCRIPTION
2+
3+
14
## STAGING
25

36

47
## JIRA
58

69

10+
## BUILD LOG
11+
12+
713
## Self-Review Checklist
814

915
- [ ] Is this free of any warnings or errors in the RST?

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,4 +182,4 @@ examples:
182182
curl -SfL https://raw.githubusercontent.com/mongodb/mongo-swift-driver/master/Examples/Docs/Sources/SyncExamples/main.swift -o ${DRIVERS_PATH}/swiftSync.swift
183183

184184
changelogs:
185-
python changelogs/generatechangelogs.py
185+
python3 changelogs/generatechangelogs.py

changelogs/generatechangelogs.py

Lines changed: 70 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import collections
22
import logging
33
import os
4-
import rstcloth.rstcloth as rstcloth
54
import yaml
65
from jira import JIRA
6+
from rstcloth import RstCloth
77

88
logger = logging.getLogger('generatechangelogs.py')
99

@@ -94,9 +94,9 @@ def get_issue_structure(config, issues, version):
9494
# format issue summary to remove backticks
9595
# (necessary for next-gen)
9696

97-
issue_summary = issue.fields.summary.encode("utf-8").replace('`', '')
97+
issue_summary = issue.fields.summary.replace('`', '')
9898

99-
issue_pair = (issue.key.encode("utf-8"), issue_summary)
99+
issue_pair = (issue.key, issue_summary)
100100

101101
if len(components) == 0:
102102
# if there isn't a component put this in the last grouping.
@@ -123,7 +123,7 @@ def get_issue_structure(config, issues, version):
123123
return headings
124124

125125

126-
def generate_changelog_rst(config, headings, fixVersion):
126+
def generate_changelog_rst(config, headings, fixVersion, outputFile):
127127
"""
128128
Generate the changelog rst from the groupings established in
129129
get_issue_structure()
@@ -135,90 +135,87 @@ def generate_changelog_rst(config, headings, fixVersion):
135135
for component in sub_headings:
136136
nested[component] = enclosing_level
137137

138-
# build the changelog content itself.
139-
r = rstcloth.RstCloth()
140-
level = 3
138+
with open (outputFile, 'w') as f:
139+
# build the changelog content itself.
140+
r = RstCloth(f)
141+
level = 3
141142

142-
r.ref_target("{0}-changelog".format(fixVersion))
143-
r.newline()
144-
r.heading(text="{0} Changelog".format(fixVersion), char='-')
145-
r.newline()
143+
r.ref_target("{0}-changelog".format(fixVersion))
144+
r.newline()
145+
r.heading(text="{0} Changelog".format(fixVersion), char='-')
146+
r.newline()
146147

147-
# process all of the issues by group.
148-
for heading, issues in headings.items():
149-
if heading in nested:
150-
# we deal with nested headings when we do their parent. skip here.
151-
continue
152-
else:
153-
if heading in config.get('nesting') and len(issues) == 0:
154-
# if a heading has subheadings, and all are empty, then we should skip it entirely.
155-
empty_sub_headings = 0
156-
for sub in config.get('nesting').get(heading):
157-
if len(headings[sub]) == 0:
158-
empty_sub_headings += 1
159-
if empty_sub_headings == len(config.get('nesting').get(heading)):
160-
continue
161-
elif len(issues) == 0:
162-
# skip empty headings.
148+
# process all of the issues by group.
149+
for heading, issues in headings.items():
150+
if heading in nested:
151+
# we deal with nested headings when we do their parent. skip here.
163152
continue
164-
165-
# format the heading.
166-
r.heading(text=heading, indent=0,
167-
char='~')
168-
r.newline()
169-
170-
if len(issues) == 1:
171-
r.content("{1} {0}".format(issues[0][1], r.role(
172-
"issue", issues[0][0])), wrap=False)
173153
else:
174-
for issue in issues:
175-
r.li("{1} {0}".format(issue[1], r.role(
176-
"issue", issue[0])), wrap=False)
177-
r.newline()
178-
179-
# repeat the above formatting with minor variations to do the nesting.
180-
if heading in config.get('nesting'):
181-
for sub in config.get('nesting').get(heading):
182-
if len(headings[sub]) == 0:
154+
if heading in config.get('nesting') and len(issues) == 0:
155+
# if a heading has subheadings, and all are empty, then we should skip it entirely.
156+
empty_sub_headings = 0
157+
for sub in config.get('nesting').get(heading):
158+
if len(headings[sub]) == 0:
159+
empty_sub_headings += 1
160+
if empty_sub_headings == len(config.get('nesting').get(heading)):
183161
continue
162+
elif len(issues) == 0:
163+
# skip empty headings.
164+
continue
184165

185-
r.heading(text=sub, indent=0,
186-
# char=giza.content.helper.character_levels[level+1])
187-
char='`')
188-
r.newline()
189-
190-
sub_issues = headings[sub]
191-
if len(sub_issues) == 0:
192-
r.content("{1} {0}".format(sub_issues[0][1].strip(), r.role(
193-
"issue", sub_issues[0][0])), wrap=False)
194-
else:
195-
for issue in sub_issues:
196-
r.li("{1} {0}".format(issue[1].strip(), r.role(
197-
"issue", issue[0])), wrap=False)
198-
r.newline()
199-
200-
return r
166+
# format the heading.
167+
r.heading(text=heading, indent=0,
168+
char='~')
169+
r.newline()
170+
171+
if len(issues) == 1:
172+
r.content("{1} {0}".format(issues[0][1], r.role(
173+
"issue", issues[0][0])))
174+
else:
175+
for issue in issues:
176+
r.li("{1} {0}".format(issue[1], r.role(
177+
"issue", issue[0])))
178+
r.newline()
179+
180+
# repeat the above formatting with minor variations to do the nesting.
181+
if heading in config.get('nesting'):
182+
for sub in config.get('nesting').get(heading):
183+
if len(headings[sub]) == 0:
184+
continue
185+
186+
r.heading(text=sub, indent=0,
187+
# char=giza.content.helper.character_levels[level+1])
188+
char='`')
189+
r.newline()
190+
191+
sub_issues = headings[sub]
192+
if len(sub_issues) == 0:
193+
r.content("{1} {0}".format(sub_issues[0][1].strip(), r.role(
194+
"issue", sub_issues[0][0])))
195+
else:
196+
for issue in sub_issues:
197+
r.li("{1} {0}".format(issue[1].strip(), r.role(
198+
"issue", issue[0])))
199+
r.newline()
201200

201+
print(
202+
"wrote changelog '{0}'. Commit this file independently.".format(outputFile))
202203

203-
def write_changelog_file(rst, fixVersion):
204204

205-
# Output the rst to source/includes/changelogs/releases
205+
def generate_output_filePath(fixVersion):
206206
sourceDir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
207207
fn = fixVersion + ".rst"
208208
outputDir = os.path.join(
209209
sourceDir, "source/includes/changelogs/releases", fn)
210-
rst.write(outputDir)
211-
logger.info(
212-
"wrote changelog '{0}'. Commit this file independently.".format(outputDir))
213-
214-
print(
215-
"wrote changelog '{0}'. Commit this file independently.".format(outputDir))
216-
217210

211+
return outputDir
218212

219213
def main():
220214
# Prompt user for the version to generate the changelog for:
221-
fixVersion = raw_input("Enter changelog version: ")
215+
fixVersion = input("Enter changelog version: ")
216+
217+
# Generate the outputfile
218+
outputFile = generate_output_filePath(fixVersion)
222219

223220
# Get list of JIRA issues to include in changelog
224221
issues = get_jira_issues(fixVersion)
@@ -230,10 +227,10 @@ def main():
230227
issue_headings = get_issue_structure(config, issues, fixVersion)
231228

232229
# Convert the issue headings into rst
233-
changelog_rst = generate_changelog_rst(config, issue_headings, fixVersion)
230+
changelog_rst = generate_changelog_rst(config, issue_headings, fixVersion, outputFile)
234231

235232
# Write the changelog to source/includes/changelogs/releases
236-
write_changelog_file(changelog_rst, fixVersion)
233+
# write_changelog_file(changelog_rst, fixVersion)
237234

238235
if __name__ == "__main__":
239236
main()
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
###### Requirements without Version Specifiers ######
2+
3+
cryptography
4+
jira
5+
PyJWT
6+
rstcloth

config/changelog_conf.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ groups:
55

66
"Security":
77
- Security
8+
- Queryable Encryption
9+
- Field Level Encryption
810
"Sharding":
911
- Sharding
1012
"Replication":

config/redirects

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2053,6 +2053,8 @@ raw: ${prefix}/${version}/applications/drivers -> ${base}/drivers/
20532053
[*-v5.3]: ${prefix}/${version}/core/queryable-encryption -> ${base}/${version}/core/security-client-side-encryption
20542054

20552055
# Release Notes redirects
2056+
[*-v6.1]: ${prefix}/${version}/release-notes/6.2 -> ${base}/${version}/release-notes
2057+
20562058
[*-v5.0]: ${prefix}/${version}/release-notes/6.0 -> ${base}/${version}/release-notes
20572059
[*-v5.0]: ${prefix}/${version}/release-notes/6.0-compatibility/ -> ${base}/${version}/release-notes
20582060
[*-v5.0]: ${prefix}/${version}/release-notes/6.0-changelog/ -> ${base}/${version}/release-notes
@@ -2090,3 +2092,6 @@ raw: ${prefix}/${version}/applications/drivers -> ${base}/drivers/
20902092
(v5.3-*]: ${prefix}/${version}/reference/method/quit -> ${base}/${version}/reference/method/js-native
20912093
(v5.3-*]: ${prefix}/${version}/reference/method/sleep -> ${base}/${version}/reference/method/js-native
20922094
(v5.3-*]: ${prefix}/${version}/reference/method/version -> ${base}/${version}/reference/method/js-native
2095+
2096+
(v4.2-*]: ${prefix}/${version}/reference/method/db.copyDatabase -> ${base}/database-tools/mongodump/#std-label-mongodump-example-copy-clone-database
2097+
(v4.2-*]: ${prefix}/${version}/reference/method/db.cloneDatabase -> ${base}/database-tools/mongodump/#std-label-mongodump-example-copy-clone-database

snooty.toml

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ toc_landing_pages = [
102102
"/indexes",
103103
"/introduction",
104104
"/mongo",
105+
"/reference",
105106
"/reference/aggregation",
106107
"/reference/bson-types",
107108
"/reference/change-events",
@@ -231,17 +232,24 @@ package-name-enterprise = "mongodb-enterprise"
231232
package-name = "mongodb"
232233
version = "6.3"
233234
latest-lts-version = "6.0"
234-
release = "6.0.1"
235-
version-dev = "6.0"
235+
last-supported-version = "5.0"
236+
release = "6.2.1"
237+
version-dev = "6.3"
236238
pgp-version = "{+version+}"
237239
rsa-key = "4B7C549A058F8B6B"
238240
pgp-fingerprint = "E162F504A20CDF15827F718D4B7C549A058F8B6B"
239241
pgp-fingerprint-fmt = "E162 F504 A20C DF15 827F 718D 4B7C 549A 058F 8B6B"
240242
pgp-short-fingerprint = "0x4B7C549A058F8B6B"
241243
windows-sha256 = "C777DF7816BB8C9A760FDEA782113949408B6F39D72BE29A2551FA51E2FE0473"
242244
source-available = ":github:`source available and free to use <mongodb/mongo>`"
245+
pcre-abbr = ":abbr:`PCRE (Perl Compatible Regular Expressions)`"
246+
pcre = "Perl Compatible Regular Expressions"
247+
# In Use Encryption Constants
243248
csfle = "Client-Side Field Level Encryption"
244249
csfle-abbrev = "CSFLE"
250+
in-use-doc = "document with encrypted fields"
251+
in-use-doc-title = "Document with Encrypted Fields"
252+
in-use-docs = "documents with encrypted fields"
245253
kms-long = "Key Management System"
246254
kms-abbr = ":abbr:`KMS ({+kms-long+})`"
247255
km-service-long = "Key Management Service"
@@ -253,8 +261,6 @@ dek-abbr-no-hover = "DEK"
253261
cmk-abbr-no-hover = "CMK"
254262
key-vault-long = "Key Vault collection"
255263
key-vault-long-title = "Key Vault Collection"
256-
java-driver-version = "4.6"
257-
java-driver-api = "https://mongodb.github.io/mongo-java-driver/{+java-driver-version+}/apidocs"
258264
aws-abbr = ":abbr:`AWS (Amazon Web Services)`"
259265
aws-iam-abbr = ":abbr:`IAM (Identity and Access Management)`"
260266
aws-arn-abbr = ":abbr:`ARN (Amazon Resource Name)`"
@@ -270,7 +276,8 @@ kmip-kms-no-hover = "KMIP-compliant key provider"
270276
kmip-kms = "{+kmip-hover+}-compliant key provider"
271277
kmip-kms-title = "KMIP-Compliant Key Provider"
272278
csfle-code-snippets-gen-keys = "https://github.com/mongodb/docs/tree/master/source/includes/quick-start/generate-master-key"
273-
libmongocrypt-version = "1.5"
279+
libmongocrypt-version = "1.7"
280+
mongodb-crypt-version = "1.6.1"
274281
sample-app-url-csfle = "https://github.com/mongodb-university/docs-in-use-encryption-examples/tree/main/csfle"
275282
sample-app-url-qe = "https://github.com/mongodb-university/docs-in-use-encryption-examples/tree/main/queryable-encryption"
276283
qe = "Queryable Encryption"
@@ -284,9 +291,19 @@ shared-library-package = "``crypt_shared``"
284291
efm = "``encryptedFieldsMap``"
285292
auto-encrypt-options = "autoEncryptionOpts"
286293
title-auto-encrypt-options = "AutoEncryptionOpts"
287-
pcre-abbr = ":abbr:`PCRE (Perl Compatible Regular Expressions)`"
288-
pcre = "Perl Compatible Regular Expressions"
289-
294+
# Driver Constants
295+
java-driver-full = "MongoDB Java driver"
296+
node-driver-full = "MongoDB Node.js driver"
297+
go-driver-full = "MongoDB Go driver"
298+
pymongo = "PyMongo"
299+
csharp-driver-full = "MongoDB C#/.NET driver"
300+
java-driver-version = "4.6"
301+
java-driver-api = "https://mongodb.github.io/mongo-java-driver/{+java-driver-version+}/apidocs"
302+
pymongo-api-docs = "https://pymongo.readthedocs.io/en/stable/api"
303+
node-libmongocrypt-binding-docs = "https://github.com/mongodb/libmongocrypt/tree/master/bindings"
304+
csharp-api-docs = "https://mongodb.github.io/mongo-csharp-driver/2.18/apidocs/html"
305+
java-api-docs = "https://mongodb.github.io/mongo-java-driver/4.7/apidocs"
306+
go-api-docs = "https://pkg.go.dev/go.mongodb.org/[email protected]"
290307

291308
[[banners]]
292309
targets = [

source/administration/analyzing-mongodb-performance.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _performance:
2+
13
===================
24
MongoDB Performance
35
===================

source/administration/backup-sharded-clusters.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _backup-restore-sharded-clusters:
2+
13
===================================
24
Backup and Restore Sharded Clusters
35
===================================

source/administration/change-streams-production-recommendations.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
1+
.. _change-streams-prod-recommendations:
22

33
=========================================
44
Change Streams Production Recommendations

source/administration/configuration-and-maintenance.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _config-maintenance:
2+
13
=============================
24
Configuration and Maintenance
35
=============================

source/administration/configuration.txt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,6 @@ Consider the following basic configuration:
8686
destination: file
8787
path: "/var/log/mongodb/mongod.log"
8888
logAppend: true
89-
storage:
90-
journal:
91-
enabled: true
9289

9390
For most standalone servers, this is a sufficient base
9491
configuration. It makes several assumptions, but consider the
@@ -168,11 +165,6 @@ following explanation:
168165
:binary:`~bin.mongod` does not overwrite an existing log file
169166
following the server start operation.
170167

171-
- :setting:`storage.journal.enabled` is ``true``, which enables
172-
:term:`journaling <journal>`. Journaling ensures single instance
173-
write-durability. 64-bit builds of :binary:`~bin.mongod` enable
174-
journaling by default. Thus, this setting may be redundant.
175-
176168
Given the default configuration, some of these values may be
177169
redundant. However, in many situations explicitly stating the
178170
configuration increases overall system intelligibility.
@@ -275,8 +267,8 @@ Sharding Configuration
275267

276268
Sharding requires :binary:`~bin.mongod` instances with different
277269
:binary:`~bin.mongod` configurations for the :ref:`config servers
278-
<sharded-cluster-config-server>` and the :doc:`shards
279-
</core/sharded-cluster-shards>`. The config servers store the cluster's
270+
<sharded-cluster-config-server>` and the :ref:`shards
271+
<shards-concepts>`. The config servers store the cluster's
280272
metadata, while the shards store the data.
281273

282274
To configure the config server :binary:`~bin.mongod` instances, in the
@@ -357,7 +349,7 @@ The :setting:`~storage.dbPath` value controls the location of the
357349
:binary:`~bin.mongod` instance's data directory. Ensure that each database
358350
has a distinct and well labeled data directory. The
359351
:setting:`~processManagement.pidFilePath` controls where :binary:`~bin.mongod` process
360-
places it's :term:`process id (PID) <PID>` file. As this tracks the specific
352+
places it's :term:`process ID (PID) <PID>` file. As this tracks the specific
361353
:binary:`~bin.mongod` file, it is crucial that file be unique and well
362354
labeled to make it easy to start and stop these processes.
363355

0 commit comments

Comments
 (0)