Repository navigation
MLE-32258: SBOM and Notice artifact generation during build - #634
SiddharthMaheshB wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Source-archive packaging lacks the newly required SBOM input, and the published inventory contains identities that do not match the build.
3 open issues
What changed in this PR
Adds SBOM and legal notice artifacts to MLCP’s existing Maven packaging step, placing them alongside the distribution ZIPs in deliverable/.
Changes:
- Commits a Black Duck-generated SPDX SBOM for MLCP 12.1.0.
- Copies the SBOM and existing notice to versioned output filenames and sets permissions to 644.
- Updates the project and shared XCC version properties to 12.2.
| File | Description |
|---|---|
SBOM.spdx.json |
Adds the dependency and license inventory used for the SBOM deliverable. |
pom.xml |
Adds artifact copies and permissions; updates build version properties. |
Review effort: Balanced
| "externalRefs": [ | ||
| { | ||
| "referenceCategory": "PACKAGE-MANAGER", | ||
| "referenceLocator": "pkg:maven/org.lucee/commons-logging-api@1.1.0", |
0cd33c7 to
a224601
Compare
| <outputDirectory>${file.separator}</outputDirectory> | ||
| </file> | ||
| <file> | ||
| <source>SBOM.spdx.json</source> |
There was a problem hiding this comment.
Please keep SBOM.spdx.json out of generated ZIP/JARs. This assembly entry puts it in the source ZIP; please remove this <file> entry. The standalone SBOM sidecar in deliverable/ can remain.
There was a problem hiding this comment.
Doing this would keep the SBOM out of the source ZIP, and since the mvn package command requires the SBOM file going forward, we will not be able to build the code from the source ZIP anymore. Is that fine?
There was a problem hiding this comment.
Addressed in force push
SameeraPriyathamTadikonda
left a comment
There was a problem hiding this comment.
Overall this looks good. Please address the inline comment requesting removal of SBOM.spdx.json from the generated source ZIP; the standalone sidecar can remain.
a224601 to
63688a4
Compare
| <exclude name="*apidocs.zip" /> | ||
| </fileset> | ||
| </copy> | ||
| <copy file="SBOM.spdx.json" |
There was a problem hiding this comment.
Because the source ZIP now omits SBOM.spdx.json, a build from that archive reaches this copy with no source file and fails (<copy> fails on a missing source by default). Please make this SBOM sidecar copy conditional for source-archive builds, or otherwise preserve that build path while keeping the SBOM out of the ZIP.


Summary (required):
MLCP builds did not produce an SBOM or a legal notice file in
deliverable/. This adds both to the existingmake_deliverablestep, somvn clean package -DskipTests=trueproduces them next to the zips. It also commits the Black Duck-generated SBOM (SBOM.spdx.json, 12.1.0). It affects the MLCP build and release artifacts.Type of Change (required):
Approach / Implementation Notes (optional):
make_deliverableantrun execution (package phase), after the zip copy,SBOM.spdx.jsonis copied todeliverable/mlcp-${project.version}.spdx.json.NOTICE.txtis copied todeliverable/Legal_Notice_File_for_Progress_MarkLogic_Content_Pump_${project.version}.txt.overwrite="true"and nofailonerroroverride, so a missing source fails the build. Antchmodthen sets mode 644 on both outputs.${project.version}, so they match the zips and pick up the dated version that the nightly sets withversions:set.SBOM.spdx.jsonmust be committed in the repo root next toNOTICE.txt. This is why it is in the same commit.Backward Incompatibility (optional):
None for users or the zip contents. The build now requires
SBOM.spdx.jsonin the repo root and fails at the package step if it is missing.Build Validation (required):
make checkinsuccessfulMLCP is built with Maven, not make. Validated with
mvn clean package -DskipTests=true(JDK 11, Maven 3.9.12); see Manual validation below.Tests Covered (required):
Manual validation
mvn clean package -DskipTests=trueproduced the two zips,mlcp-12.2.spdx.jsonandLegal_Notice_File_for_Progress_MarkLogic_Content_Pump_12.2.txt. Both new files are mode 644.cmpshows each output identical to its source, andpython3 -m json.toolaccepts the SBOM.mvn cleanremovesdeliverable/. With the SBOM missing, the build fails with "Could not find file .../SBOM.spdx.json to copy".Existing regression suites
New regression tests
Not applicable (Please explain)
Additional Notes (optional):
developbuild is 12.2, so the output is namedmlcp-12.2.spdx.json.References (optional):