SERVER-122016: [v8.3] exclude first-party components from README.third_party.md and re-add WiredTiger vendored test library table (#50444)
GitOrigin-RevId: 0aca6ab9dbedf41daa5478fbea6592b212152ced
This commit is contained in:
parent
b59bd51a17
commit
58b8bb3260
@ -34,8 +34,6 @@ a notice will be included in
|
||||
| [fmt] | MIT | 11.2.0 | | ✗ |
|
||||
| [folly] | Apache-2.0 | 2023.12.25.00 | | ✗ |
|
||||
| [fuzztest] | BSD-3-Clause, Apache-2.0, HPND | 2025-07-28 | | |
|
||||
| [github.com/apache/arrow-nanoarrow] | Apache-2.0 | apache-arrow-nanoarrow-0.7.0 | | |
|
||||
| [github.com/apache/iceberg-cpp] | Apache-2.0 | v0.2.0-rc1 | | |
|
||||
| [googletest] | BSD-3-Clause | 1.17.0 | | |
|
||||
| [gperftools] | BSD-3-Clause | 2.9.1 | | ✗ |
|
||||
| [gRPC (C++)] | Apache-2.0 | 1.74.1 | | ✗ |
|
||||
@ -45,11 +43,9 @@ a notice will be included in
|
||||
| [JSON Schema Store] | Apache-2.0 | 6847cfc3a17a04a7664474212db50c627e1e3408 | | |
|
||||
| [JSON-Schema-Test-Suite] | MIT | 728066f9c5c258ba3b1804a22a5b998f2ec77ec0 | | |
|
||||
| [libdwarf] | LGPL-2.1-or-later, BSD-3-Clause, Public Domain | 2.1.0 | | |
|
||||
| [libmongocrypt] | Apache-2.0 | 1.15.0 | ✗ | ✗ |
|
||||
| [LibTomCrypt] | Unlicense | 1.18.2 | ✗ | ✗ |
|
||||
| [libunwind] | MIT | 1.8.1 | | ✗ |
|
||||
| [linenoise] | BSD-2-Clause | 6cdc775807e57b2c3fd64bd207814f8ee1fe35f3 | | ✗ |
|
||||
| [MongoDB C Driver] | Apache-2.0 | 1.28.1 | ✗ | ✗ |
|
||||
| [Mozilla Firefox ESR] | MPL-2.0 | 140.7.0esr | | ✗ |
|
||||
| [MurmurHash3] | Public Domain | a6bd3ce7be8ad147ea820a7cf6229a975c0c96bb | | ✗ |
|
||||
| [nlohmann/json] | MIT | 3.11.3 | ✗ | |
|
||||
@ -71,9 +67,8 @@ a notice will be included in
|
||||
| [timelib] | MIT | 2022.13 | | ✗ |
|
||||
| [Unicode Character Database] | Unicode-DFS-2016 | 8.0.0 | ✗ | ✗ |
|
||||
| [valgrind.h] | BSD-4-Clause | 093bef43d69236287ccc748591c9560a71181b0a | | ✗ |
|
||||
| [WiredTiger] | GPL-2.0-only OR GPL-3.0-only | 12.0.0 | ✗ | ✗ |
|
||||
| [yaml-cpp] | MIT | 0.6.3 | | ✗ |
|
||||
| [zlib] | Zlib | 1.3 | ✗ | ✗ |
|
||||
| [zlib] | Zlib | 1.3.2 | ✗ | ✗ |
|
||||
| [Zstandard (zstd)] | BSD-3-Clause OR GPL-2.0-only | 1.5.5 | ✗ | ✗ |
|
||||
|
||||
[Abseil Common Libraries (C++)]: https://github.com/abseil/abseil-cpp.git
|
||||
@ -86,7 +81,6 @@ a notice will be included in
|
||||
[JSON Schema Store]: https://github.com/schemastore/schemastore.git
|
||||
[JSON-Schema-Test-Suite]: https://github.com/json-schema-org/JSON-Schema-Test-Suite.git
|
||||
[LibTomCrypt]: https://github.com/libtom/libtomcrypt.git
|
||||
[MongoDB C Driver]: https://github.com/mongodb/mongo-c-driver.git
|
||||
[Mozilla Firefox ESR]: https://github.com/mozilla-firefox/firefox.git
|
||||
[MurmurHash3]: https://github.com/aappleby/smhasher/blob/a6bd3ce/
|
||||
[PCRE2 - Perl-Compatible Regular Expressions]: https://github.com/pcre2project/pcre2.git
|
||||
@ -96,7 +90,6 @@ a notice will be included in
|
||||
[SafeInt]: https://github.com/dcleblanc/safeint.git
|
||||
[Snowball Stemming Algorithms (libstemmer)]: http://github.com/snowballstem/snowball.git
|
||||
[Unicode Character Database]: https://www.unicode.org/Public/8.0.0/
|
||||
[WiredTiger]: https://github.com/wiredtiger/wiredtiger.git
|
||||
[Zstandard (zstd)]: https://github.com/facebook/zstd.git
|
||||
[benchmark]: https://github.com/google/benchmark.git
|
||||
[c-ares]: https://github.com/c-ares/c-ares.git
|
||||
@ -105,13 +98,10 @@ a notice will be included in
|
||||
[folly]: https://github.com/facebook/folly.git
|
||||
[fuzztest]: https://github.com/google/fuzztest.git
|
||||
[gRPC (C++)]: https://github.com/grpc/grpc.git
|
||||
[github.com/apache/arrow-nanoarrow]: pkg:github/apache/arrow-nanoarrow@apache-arrow-nanoarrow-0.7.0
|
||||
[github.com/apache/iceberg-cpp]: pkg:github/apache/iceberg-cpp@v0.2.0-rc1
|
||||
[googletest]: https://github.com/google/googletest.git
|
||||
[gperftools]: https://github.com/gperftools/gperftools.git
|
||||
[immer]: https://github.com/arximboldi/immer.git
|
||||
[libdwarf]: https://github.com/davea42/libdwarf-code.git
|
||||
[libmongocrypt]: https://github.com/mongodb/libmongocrypt.git
|
||||
[libunwind]: https://github.com/libunwind/libunwind.git
|
||||
[linenoise]: https://github.com/antirez/linenoise
|
||||
[nlohmann/json]: https://github.com/nlohmann/json.git
|
||||
@ -129,6 +119,22 @@ a notice will be included in
|
||||
[yaml-cpp]: https://github.com/jbeder/yaml-cpp.git
|
||||
[zlib]: https://zlib.net/fossils/
|
||||
|
||||
## WiredTiger Vendored Test Libraries
|
||||
|
||||
The following libraries are transitively included by WiredTiger,
|
||||
and are used by that component for testing. They don't appear in
|
||||
released binary artifacts.
|
||||
|
||||
| Name |
|
||||
| ------------------------------ |
|
||||
| pkg:pypi/concurrencytest@0.1.2 |
|
||||
| pkg:pypi/discover@0.4.0 |
|
||||
| pkg:pypi/extras@0.0.3 |
|
||||
| pkg:pypi/iso8601@2.1.0 |
|
||||
| pkg:pypi/python-subunit@1.4.4 |
|
||||
| pkg:pypi/testscenarios@0.4 |
|
||||
| pkg:pypi/testtools@2.7.1 |
|
||||
|
||||
## Dynamically Linked Libraries
|
||||
|
||||
Sometimes MongoDB needs to load libraries provided and managed by the
|
||||
|
||||
@ -2408,6 +2408,10 @@
|
||||
{
|
||||
"name": "import_script_path",
|
||||
"value": "src/third_party/libmongocrypt/import.sh"
|
||||
},
|
||||
{
|
||||
"name": "mdb_first_party",
|
||||
"value": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -2457,6 +2461,10 @@
|
||||
{
|
||||
"name": "import_script_path",
|
||||
"value": "src/third_party/libbson/import.sh"
|
||||
},
|
||||
{
|
||||
"name": "mdb_first_party",
|
||||
"value": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -2502,6 +2510,10 @@
|
||||
{
|
||||
"name": "emits_persisted_data",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "mdb_first_party",
|
||||
"value": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -3209,6 +3221,10 @@
|
||||
{
|
||||
"name": "emits_persisted_data",
|
||||
"value": "true"
|
||||
},
|
||||
{
|
||||
"name": "mdb_first_party",
|
||||
"value": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
74
sbom.json
74
sbom.json
@ -3,9 +3,9 @@
|
||||
"bomFormat": "CycloneDX",
|
||||
"specVersion": "1.5",
|
||||
"serialNumber": "urn:uuid:71d980f0-95c5-4dfa-8987-307eb8880ce2",
|
||||
"version": 4,
|
||||
"version": 5,
|
||||
"metadata": {
|
||||
"timestamp": "2026-03-16T06:12:10Z",
|
||||
"timestamp": "2026-03-25T17:21:56Z",
|
||||
"lifecycles": [
|
||||
{
|
||||
"phase": "pre-build"
|
||||
@ -563,8 +563,8 @@
|
||||
"supplier": {
|
||||
"name": "The Cyrus Project",
|
||||
"url": [
|
||||
"https://www.cyrusimap.org/sasl/",
|
||||
"https://www.cyrusimap.org/overview/who_is_cyrus.html"
|
||||
"https://www.cyrusimap.org/overview/who_is_cyrus.html",
|
||||
"https://www.cyrusimap.org/sasl/"
|
||||
]
|
||||
},
|
||||
"author": "The Cyrus Team",
|
||||
@ -1615,7 +1615,7 @@
|
||||
},
|
||||
{
|
||||
"type": "library",
|
||||
"bom-ref": "pkg:github/madler/zlib@1.3",
|
||||
"bom-ref": "pkg:github/madler/zlib@1.3.2",
|
||||
"supplier": {
|
||||
"name": "zlib",
|
||||
"url": [
|
||||
@ -1625,7 +1625,7 @@
|
||||
"author": "Jean-loup Gailly, Mark Adler",
|
||||
"group": "madler",
|
||||
"name": "zlib",
|
||||
"version": "1.3",
|
||||
"version": "1.3.2",
|
||||
"description": "zlib is a general purpose data compression library.",
|
||||
"scope": "required",
|
||||
"licenses": [
|
||||
@ -1636,8 +1636,8 @@
|
||||
}
|
||||
],
|
||||
"copyright": "Copyright \u00a9 1995-2024 Jean-loup Gailly and Mark Adler.",
|
||||
"cpe": "cpe:2.3:a:zlib:zlib:1.3:*:*:*:*:*:*:*",
|
||||
"purl": "pkg:github/madler/zlib@1.3",
|
||||
"cpe": "cpe:2.3:a:zlib:zlib:1.3.2:*:*:*:*:*:*:*",
|
||||
"purl": "pkg:github/madler/zlib@1.3.2",
|
||||
"externalReferences": [
|
||||
{
|
||||
"url": "https://zlib.net/fossils/",
|
||||
@ -1708,6 +1708,10 @@
|
||||
{
|
||||
"name": "import_script_path",
|
||||
"value": "src/third_party/libmongocrypt/import.sh"
|
||||
},
|
||||
{
|
||||
"name": "mdb_first_party",
|
||||
"value": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -1757,6 +1761,10 @@
|
||||
{
|
||||
"name": "import_script_path",
|
||||
"value": "src/third_party/libbson/import.sh"
|
||||
},
|
||||
{
|
||||
"name": "mdb_first_party",
|
||||
"value": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -2309,6 +2317,10 @@
|
||||
{
|
||||
"name": "emits_persisted_data",
|
||||
"value": "true"
|
||||
},
|
||||
{
|
||||
"name": "mdb_first_party",
|
||||
"value": "true"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -2393,38 +2405,6 @@
|
||||
"value": "false"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"bom-ref": "pkg:github/apache/arrow-nanoarrow@apache-arrow-nanoarrow-0.7.0?package-id=614f3463351947a8",
|
||||
"licenses": [
|
||||
{
|
||||
"license": {
|
||||
"id": "Apache-2.0"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "github.com/apache/arrow-nanoarrow",
|
||||
"purl": "pkg:github/apache/arrow-nanoarrow@apache-arrow-nanoarrow-0.7.0",
|
||||
"type": "library",
|
||||
"version": "apache-arrow-nanoarrow-0.7.0",
|
||||
"scope": "excluded",
|
||||
"properties": []
|
||||
},
|
||||
{
|
||||
"bom-ref": "pkg:github/apache/iceberg-cpp@v0.2.0-rc1?package-id=ce0b9d2c8402061a",
|
||||
"licenses": [
|
||||
{
|
||||
"license": {
|
||||
"id": "Apache-2.0"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "github.com/apache/iceberg-cpp",
|
||||
"purl": "pkg:github/apache/iceberg-cpp@v0.2.0-rc1",
|
||||
"type": "library",
|
||||
"version": "v0.2.0-rc1",
|
||||
"scope": "excluded",
|
||||
"properties": []
|
||||
}
|
||||
],
|
||||
"dependencies": [
|
||||
@ -2561,7 +2541,7 @@
|
||||
"dependsOn": []
|
||||
},
|
||||
{
|
||||
"ref": "pkg:github/madler/zlib@1.3",
|
||||
"ref": "pkg:github/madler/zlib@1.3.2",
|
||||
"dependsOn": []
|
||||
},
|
||||
{
|
||||
@ -2571,7 +2551,7 @@
|
||||
{
|
||||
"ref": "pkg:github/mongodb/mongo-c-driver@1.28.1",
|
||||
"dependsOn": [
|
||||
"pkg:github/madler/zlib@1.3"
|
||||
"pkg:github/madler/zlib@1.3.2"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -2609,7 +2589,7 @@
|
||||
"pkg:github/json-schema-org/json-schema-test-suite@728066f9c5c258ba3b1804a22a5b998f2ec77ec0",
|
||||
"pkg:github/libtom/libtomcrypt@v1.18.2",
|
||||
"pkg:github/libunwind/libunwind@v1.8.1",
|
||||
"pkg:github/madler/zlib@1.3",
|
||||
"pkg:github/madler/zlib@1.3.2",
|
||||
"pkg:github/mongodb/libmongocrypt@1.15.0",
|
||||
"pkg:github/nlohmann/json@v3.11.3",
|
||||
"pkg:github/nodejs/node@22.1.0?download_url=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fblob%2F8b45c5d26a829bcd3280401dbc1874bcd1302289%2Fsrc%2Fnode_i18n.cc%23L825%23src%2Fnode_i18n.cc%3AGetStringWidth#src/node_i18n.cc",
|
||||
@ -2682,14 +2662,6 @@
|
||||
{
|
||||
"ref": "pkg:pypi/ocspresponder@0.5.0",
|
||||
"dependsOn": []
|
||||
},
|
||||
{
|
||||
"ref": "pkg:github/apache/arrow-nanoarrow@apache-arrow-nanoarrow-0.7.0?package-id=614f3463351947a8",
|
||||
"dependsOn": []
|
||||
},
|
||||
{
|
||||
"ref": "pkg:github/apache/iceberg-cpp@v0.2.0-rc1?package-id=ce0b9d2c8402061a",
|
||||
"dependsOn": []
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -23,6 +23,14 @@ $component_chart
|
||||
|
||||
$component_links
|
||||
|
||||
## WiredTiger Vendored Test Libraries
|
||||
|
||||
The following libraries are transitively included by WiredTiger,
|
||||
and are used by that component for testing. They don't appear in
|
||||
released binary artifacts.
|
||||
|
||||
$wiredtiger_chart
|
||||
|
||||
## Dynamically Linked Libraries
|
||||
|
||||
Sometimes MongoDB needs to load libraries provided and managed by the
|
||||
|
||||
38
src/third_party/scripts/gen_thirdpartyreadme.py
vendored
38
src/third_party/scripts/gen_thirdpartyreadme.py
vendored
@ -2,6 +2,7 @@ import bisect
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import warnings
|
||||
|
||||
@ -26,9 +27,14 @@ def main():
|
||||
|
||||
component_links_string = sbom_to_component_links_string(sbom)
|
||||
|
||||
wiredtiger_chart = folders_to_wiredtiger_chart()
|
||||
right_pad_chart_values(wiredtiger_chart)
|
||||
wiredtiger_chart_string = chart_to_string(wiredtiger_chart)
|
||||
|
||||
template_data = {
|
||||
"component_chart": component_chart_string,
|
||||
"component_links": component_links_string,
|
||||
"wiredtiger_chart": wiredtiger_chart_string,
|
||||
}
|
||||
create_markdown_with_template(template_data)
|
||||
|
||||
@ -56,6 +62,8 @@ def sbom_to_component_chart(sbom: dict) -> list[list[str]]:
|
||||
component_chart = []
|
||||
|
||||
for component in components:
|
||||
if is_first_party(component):
|
||||
continue
|
||||
check_component_validity(component)
|
||||
name = component["name"]
|
||||
license_string = []
|
||||
@ -109,6 +117,8 @@ def sbom_to_component_links_string(sbom: dict) -> list[list[str]]:
|
||||
link_list = []
|
||||
|
||||
for component in components:
|
||||
if is_first_party(component):
|
||||
continue
|
||||
check_component_validity(component)
|
||||
info_link = get_component_info_link(component)
|
||||
bisect.insort(link_list, f"[{component['name'].replace('|', '')}]: {info_link}")
|
||||
@ -116,6 +126,34 @@ def sbom_to_component_links_string(sbom: dict) -> list[list[str]]:
|
||||
return "\n".join(link_list)
|
||||
|
||||
|
||||
WIREDTIGER_3RDPARTY_PATH = "src/third_party/wiredtiger/test/3rdparty"
|
||||
_WIREDTIGER_FOLDER_RE = re.compile(r"(.*-\d+\.\d+(\.\d+)?).*")
|
||||
|
||||
|
||||
def folders_to_wiredtiger_chart() -> list[list[str]]:
|
||||
wiredtiger_chart = [["Name"]]
|
||||
|
||||
try:
|
||||
folder_names = os.listdir(WIREDTIGER_3RDPARTY_PATH)
|
||||
except FileNotFoundError:
|
||||
logging.warning("Warning: %s does not exist. Skipping wiredtiger chart.", WIREDTIGER_3RDPARTY_PATH)
|
||||
return wiredtiger_chart
|
||||
|
||||
for folder in folder_names:
|
||||
m = _WIREDTIGER_FOLDER_RE.fullmatch(folder)
|
||||
if m:
|
||||
name, version = m.group(1).rsplit("-", 1)
|
||||
bisect.insort(wiredtiger_chart, [f"pkg:pypi/{name}@{version}"])
|
||||
|
||||
return wiredtiger_chart
|
||||
|
||||
def is_first_party(component: dict) -> bool:
|
||||
for prop in component.get("properties", []):
|
||||
if prop.get("name") == "mdb_first_party" and prop.get("value") == "true":
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def check_component_validity(component) -> None:
|
||||
for required_key in ["name", "version", "licenses"]:
|
||||
if required_key not in component:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user