Skip to content

Commit 9b7c5d3

Browse files
update docs
1 parent b390344 commit 9b7c5d3

File tree

6 files changed

+11
-120
lines changed

6 files changed

+11
-120
lines changed

.evergreen/config_generator/components/funcs/install_c_driver.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
# If updating mongoc_version_minimum to a new release (not pinning to an unreleased commit), also update:
1010
# - BSON_REQUIRED_VERSION and MONGOC_REQUIRED_VERSION in CMakeLists.txt
11-
# - the version of pkg:github/mongodb/mongo-c-driver in etc/purls.txt
1211
# - the default value of --c-driver-build-ref in etc/make_release.py
1312
# If pinning to an unreleased commit, create a "Blocked" JIRA ticket with
1413
# a "depends on" link to the appropriate C Driver version release ticket.

.evergreen/scripts/sbom.sh

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,14 @@ podman pull "${silkbomb:?}"
2525
silkbomb_augment_flags=(
2626
--repo mongodb/mongo-cxx-driver
2727
--branch "${branch_name:?}"
28-
--sbom-in /pwd/etc/cyclonedx.sbom.json
28+
--sbom-in /pwd/sbom.json
2929
--sbom-out /pwd/etc/augmented.sbom.json.new
3030

3131
# Any notable updates to the Augmented SBOM version should be done manually after careful inspection.
32-
# Otherwise, it should be equal to the SBOM Lite version, which should normally be `1`.
32+
# Otherwise, it should be equal to the existing SBOM version.
3333
--no-update-sbom-version
3434
)
3535

36-
# First validate the SBOM Lite.
37-
podman run -it --rm -v "$(pwd):/pwd" "${silkbomb:?}" \
38-
validate --purls /pwd/etc/purls.txt --sbom-in /pwd/etc/cyclonedx.sbom.json --exclude jira
39-
4036
# Allow the timestamp to be updated in the Augmented SBOM for update purposes.
4137
podman run -it --rm -v "$(pwd):/pwd" --env 'KONDUKTO_TOKEN' "${silkbomb:?}" augment "${silkbomb_augment_flags[@]:?}"
4238

.github/workflows/generate_sbom.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ jobs:
1919
contents: write # Required for commit
2020
pull-requests: write # Required for PR
2121
runs-on: ubuntu-latest
22+
env:
23+
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
2224
steps:
2325
- name: Checkout Repository
2426
uses: actions/checkout@v6
@@ -94,7 +96,7 @@ jobs:
9496
with:
9597
add-paths: sbom.json
9698
body-path: ${{runner.temp}}/pr_body.txt
97-
branch: cxx-sbom-update
99+
branch: cxx-sbom-update-${{ env.BRANCH_NAME }}
98100
commit-message: Update SBOM file(s)
99101
delete-branch: true
100-
title: CXX Update SBOM action
102+
title: CXX Update SBOM action - ${{ env.BRANCH_NAME }}

etc/purls.txt

Lines changed: 0 additions & 9 deletions
This file was deleted.

etc/releasing.md

Lines changed: 4 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,6 @@ Some release steps require one or more of the following secrets.
7575
GRS_CONFIG_USER1_USERNAME=<username>
7676
GRS_CONFIG_USER1_PASSWORD=<password>
7777
```
78-
- Snyk credentials.
79-
- Location: `~/.secrets/snyk-creds.txt`
80-
- Format:
81-
```bash
82-
SNYK_API_TOKEN=<token>
83-
```
8478
8579
## Pre-Release Steps
8680
@@ -118,22 +112,11 @@ All issues with an Impact level of "High" or greater must have a "MongoDB Final
118112
119113
All issues with an Impact level of "Medium" or greater which do not have a "MongoDB Final Status" of "Fix Committed" must document rationale for its current status in the "Notes" field.
120114
121-
### SBOM Lite
115+
### SBOM
122116
123117
Ensure the container engine (e.g. `podman` or `docker`) is authenticated with the DevProd-provided Amazon ECR instance.
124118
125-
Ensure the list of bundled dependencies in `etc/purls.txt` is up-to-date. If not, update `etc/purls.txt`.
126-
127-
If `etc/purls.txt` was updated, update the SBOM Lite document using the following command(s):
128-
129-
```bash
130-
# Ensure latest version of SilkBomb is being used.
131-
podman pull 901841024863.dkr.ecr.us-east-1.amazonaws.com/release-infrastructure/silkbomb:2.0
132-
133-
# Output: "... writing sbom to file"
134-
podman run -it --rm -v "$(pwd):/pwd" 901841024863.dkr.ecr.us-east-1.amazonaws.com/release-infrastructure/silkbomb:2.0 \
135-
update --refresh --no-update-sbom-version -p "/pwd/etc/purls.txt" -i "/pwd/etc/cyclonedx.sbom.json" -o "/pwd/etc/cyclonedx.sbom.json"
136-
```
119+
Ensure that any `CXX Update SBOM action - $BRANCH_NAME` PRs are merged for the release branch.
137120
138121
Run a patch build which executes the `sbom` task and download the "Augmented SBOM (Updated)" file as `etc/augmented.sbom.json`. Evergreen CLI may be used to schedule only the `sbom` task:
139122
@@ -154,12 +137,6 @@ Update `etc/third_party_vulnerabilities.md` with any updates to new or known vul
154137

155138
Download the "Augmented SBOM (Updated)" file from the latest EVG commit build in the `sbom` task and commit it into the repo as `etc/augmented.sbom.json` (even if the only notable change is the timestamp field).
156139

157-
### Check Snyk
158-
159-
Inspect the list of projects in the latest report for the `mongodb/mongo-cxx-driver` target in [Snyk](https://app.snyk.io/org/dev-prod/).
160-
161-
Deactivate any projects that will not be relevant in the upcoming release. Remove any projects that are not relevant to the current release.
162-
163140
### Check Jira
164141

165142
Inspect the list of tickets assigned to the version to be released on [Jira](https://jira.mongodb.com/projects/CXX?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased).
@@ -432,67 +409,7 @@ The new branch should be continuously tested on Evergreen. Update the "Display N
432409

433410
### Update SBOM serial number
434411

435-
Check out the release branch `releases/vX.Y`.
436-
437-
Update `etc/cyclonedx.sbom.json` with a new unique serial number for the next upcoming patch release (e.g. for `1.3.1` following the release of `1.3.0`):
438-
439-
```bash
440-
# Ensure latest version of SilkBomb is being used.
441-
podman pull 901841024863.dkr.ecr.us-east-1.amazonaws.com/release-infrastructure/silkbomb:2.0
442-
443-
# Output: "... writing sbom to file"
444-
podman run -it --rm -v "$(pwd):/pwd" 901841024863.dkr.ecr.us-east-1.amazonaws.com/release-infrastructure/silkbomb:2.0 \
445-
update --refresh --generate-new-serial-number -p "/pwd/etc/purls.txt" -i "/pwd/etc/cyclonedx.sbom.json" -o "/pwd/etc/cyclonedx.sbom.json"
446-
```
447-
448-
Update `etc/augmented.sbom.json` by running a patch build which executes the `sbom` task as described above in [SBOM Lite](#sbom-lite).
449-
450-
Commit and push these changes to the `releases/vX.Y` branch.
451-
452-
### Update Snyk
453-
454-
> [!IMPORTANT]
455-
> Run the Snyk commands in a fresh clone of the post-release repository to avoid existing build and release artifacts from affecting Snyk.
456-
457-
Checkout the new release tag.
458-
459-
Configure and build the CXX Driver (do not reuse an existing C Driver installation; use the auto-downloaded C Driver sources instead):
460-
461-
```bash
462-
cmake -S . -B build
463-
cmake --build build
464-
```
465-
466-
Then run:
467-
468-
```bash
469-
# Snyk credentials. Ask for these from a team member.
470-
. ~/.secrets/snyk-creds.txt
471-
472-
# The new release tag. Ensure this is correct!
473-
release_tag="rX.Y.Z"
474-
475-
# Authenticate with Snyk dev-prod organization.
476-
snyk auth "${SNYK_API_TOKEN:?}"
477-
478-
# Verify third party dependency sources listed in etc/purls.txt are detected by Snyk.
479-
# If not, see: https://support.snyk.io/hc/en-us/requests/new
480-
# Use --exclude=extras until CXX-3042 is resolved
481-
snyk_args=(
482-
--org=dev-prod
483-
--remote-repo-url=https://github.com/mongodb/mongo-cxx-driver/
484-
--target-reference="${release_tag:?}"
485-
--unmanaged
486-
--all-projects
487-
--exclude=extras
488-
)
489-
snyk test "${snyk_args[@]:?}" --print-deps
490-
491-
# Create a new Snyk target reference for the new release tag.
492-
snyk monitor "${snyk_args[@]:?}"
493-
```
494-
495-
Verify the new Snyk target reference is present in the [Snyk project targets list](https://app.snyk.io/org/dev-prod/projects?groupBy=targets&before&after&searchQuery=mongo-cxx-driver&sortBy=highest+severity&filters[Show]=&filters[Integrations]=cli&filters[CollectionIds]=) for `mongodb/mongo-cxx-driver`.
412+
A new SBOM serial number is automatically generated when an SBOM is generated on a new branch.
496413

497414
### Post-Release Changes
498415

@@ -512,21 +429,7 @@ For a patch release, in `etc/apidocmenu.md`, update the list of versions under "
512429

513430
In `README.md`, sync the "Driver Development Status" table with the updated table from `etc/apidocmenu.md`.
514431

515-
Update `etc/cyclonedx.sbom.json` with a new unique serial number for the next upcoming non-patch release (e.g. for `1.4.0` following the release of `1.3.0`):
516-
517-
```bash
518-
# Ensure latest version of SilkBomb is being used.
519-
podman pull 901841024863.dkr.ecr.us-east-1.amazonaws.com/release-infrastructure/silkbomb:2.0
520-
521-
# Output: "... writing sbom to file"
522-
podman run -it --rm -v "$(pwd):/pwd" 901841024863.dkr.ecr.us-east-1.amazonaws.com/release-infrastructure/silkbomb:2.0 \
523-
update --refresh --generate-new-serial-number -p "/pwd/etc/purls.txt" -i "/pwd/etc/cyclonedx.sbom.json" -o "/pwd/etc/cyclonedx.sbom.json"
524-
525-
git add etc/cyclonedx.sbom.json
526-
git commit -m "update SBOM serial number"
527-
```
528-
529-
Update `etc/augmented.sbom.json` by running a patch build which executes the `sbom` task as described above in [SBOM Lite](#sbom-lite).
432+
Update `etc/augmented.sbom.json` by running a patch build which executes the `sbom` task as described above in [SBOM](#sbom).
530433

531434
Commit these changes to the `post-release-changes` branch:
532435

etc/third_party_vulnerabilities.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ This section provides a template that may be used for actual vulnerability repor
1717

1818
- **Date Detected:** YYYY-MM-DD
1919
- **Severity:** Low, Medium, High, or Critical
20-
- **Detector:** Silk or Snyk
20+
- **Detector:** Endor Labs or Dependency-Track
2121
- **Description:** A short vulnerability description.
2222
- **Dependency:** Name and version of the 3rd party dependency.
2323
- **Upstream Status:** False Positive, Won't Fix, Fix Pending, or Fix Available. This is the fix status for the 3rd party dependency, not the CXX Driver. "Fix Available" should include the version and/or date when the fix was released, e.g. "Fix Available (1.2.3, 1970-01-01)".

0 commit comments

Comments
 (0)