Skip to content

Add advisory audit for NVIDIA API deprecations [reduced-it] - #15867

Open
gerashegalov wants to merge 5 commits into
NVIDIA:mainfrom
gerashegalov:codex/nvidia-deprecation-audit
Open

Add advisory audit for NVIDIA API deprecations [reduced-it]#15867
gerashegalov wants to merge 5 commits into
NVIDIA:mainfrom
gerashegalov:codex/nvidia-deprecation-audit

Conversation

@gerashegalov

@gerashegalov gerashegalov commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Related to #15825.

Description

Deprecation annotations in NVIDIA-owned dependencies can land before cudf-spark can consume an
artifact containing the replacement API. With fatal Scala warnings, that ordering breaks unrelated
cudf-spark pull requests even though no compatible migration is available yet.

This change keeps deprecations from NVIDIA-owned cuDF Java, cudf-spark-jni, and
cudf-spark-private APIs visible as compiler information while retaining fatal handling for
third-party deprecations. Because cudf-spark-private does not have one artifact-specific namespace,
the policy covers its NVIDIA-owned package roots and an exact PartialAggUtils bridge symbol; an
adjacent Spark symbol remains fatal as a regression control.

The Maven pull-request workflow also gains an optional fan-in audit that downloads completed
matrix-job logs and reports compiler deprecations in the job summary and annotations. Findings or
incomplete log collection fail this optional check so contributors inspect it, while the report is
still uploaded and the build jobs remain authoritative. Log collection validates GitHub signed
redirects and never forwards the repository token to the signed download URL. Contributor
documentation now describes the staged cross-repository deprecation lifecycle. Both the compiler-
policy fixture checker and log audit run through Maven's existing Jython 2.7.3 dependency, so this
change does not add a host Python prerequisite; the existing resource-nesting check remains on
Python 3 for a dedicated follow-up port.

Validation performed:

  • mvn -N -Dbuildver=330 verify
  • mvn -N -f scala2.13/pom.xml -Dbuildver=350 verify
  • Jython 2.7.3 deprecation-policy fixtures using the actual Scala 2.12.21 and Scala 2.13.18 POM arguments
  • 18 audit unit tests under Jython 2.7.3 and 38 compatibility tests under Python 3
  • Jython audit fixtures: clean logs pass; NVIDIA deprecation findings fail the optional audit
  • Scala 2.12 and 2.13 Scalastyle, deprecation-policy, and with-resource nesting executions
  • git diff --check

Checklists

Documentation

  • Updated for new or modified user-facing features or behaviors
  • No user-facing change

Testing

  • Added or modified tests to cover new code paths
  • Covered by existing tests
    (Please provide the names of the existing tests in the PR description.)
  • Not required

Performance

  • Tests ran and results are added in the PR description
  • Issue filed with a link in the PR description
  • Not required

Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
@gerashegalov
gerashegalov requested a review from a team as a code owner September 1, 2026 17:28
@gerashegalov gerashegalov added the build Related to CI / CD or cleanly building label Sep 1, 2026
@gerashegalov gerashegalov self-assigned this Sep 1, 2026
@greptile-apps

greptile-apps Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR makes NVIDIA-owned Scala API deprecations advisory while retaining fatal handling for other deprecations, and adds an optional workflow job that aggregates compiler diagnostics from Maven matrix logs.

  • Adds synchronized Scala 2.12 and 2.13 compiler warning policies and fixture validation.
  • Adds a Jython-compatible GitHub Actions log collector, report generation, annotations, and unit tests.
  • Documents the staged cross-repository API deprecation process.
  • Adds the workflow fan-in audit and artifact upload.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains in the eligible follow-up review scope.

No blocking failure remains.

Important Files Changed

Filename Overview
.github/workflows/mvn-verify-check.yml Adds the actions permission and optional fan-in job that runs the audit after Maven build jobs and uploads its report.
pom.xml Adds the Jython audit executions, compiler-policy verification, and narrowly scoped advisory handling for NVIDIA-owned deprecations.
scala2.13/pom.xml Synchronizes the Scala 2.13 compiler policy and validation configuration with the generated Maven build view.
scripts/check_deprecation_policy.py Adds fixture compilation that verifies NVIDIA deprecations remain visible and nonfatal while neighboring and third-party deprecations remain fatal.
scripts/deprecation_audit.py Adds Jython-compatible workflow-log retrieval, compiler diagnostic parsing, annotations, summaries, and raw report generation.
scripts/tests/test_deprecation_audit.py Adds compatibility and behavioral coverage for parsing, download redirects, reporting, and audit exit status.
CONTRIBUTING.md Documents the cross-repository deprecation lifecycle and the advisory audit policy.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  Matrix[Maven build matrix jobs] --> Logs[Completed GitHub Actions job logs]
  Logs --> Audit[Jython deprecation audit]
  Audit --> Parse[Parse compiler diagnostics]
  Parse --> Summary[GitHub job summary and annotations]
  Parse --> Report[JSON report artifact]
  Parse --> Status{Findings or collection failures?}
  Status -->|Yes| Fail[Fail optional audit job]
  Status -->|No| Pass[Pass audit job]
Loading

Reviews (5): Last reviewed commit: "Keep deprecation audit on root POM" | Re-trigger Greptile

Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
Signed-off-by: Gera Shegalov <gshegalov@nvidia.com>
@gerashegalov

Copy link
Copy Markdown
Collaborator Author

build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Related to CI / CD or cleanly building

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants