Skip to content

Fix JavaScript custom bundle compilation - #459

Merged
mbaluda merged 6 commits into
mainfrom
fix/private-customization-imports
Oct 16, 2026
Merged

mbaluda merged 6 commits into
mainfrom
fix/private-customization-imports

Conversation

@mbaluda

@mbaluda mbaluda commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

What This PR Contributes

  • Adds a first-class Linux CI compatibility test for customized JavaScript libraries.
    • Adds scripts/test-custom-bundle.sh to bundle CAP and UI5 customization libraries into the locked codeql/javascript-all pack.
    • Creates one synthetic dependent query pack and compiles an import javascript smoke query with codeql pack create and no default compilation cache.
  • Fixes JavaScript query-pack compilation in customized CodeQL bundles.
    • Changes CAP and UI5 customization entry-point imports to private import so implementation modules are not re-exported through javascript.qll.
  • Removes the obsolete UI5 PatchDataFlow compatibility layer and uses the summary-model support now provided by the current CodeQL libraries.

Prevent customization modules injected into javascript.qll from re-exporting framework libraries and breaking recursive standard-library resolution.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 15, 2026 15:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The narrow import-visibility changes have no identified blocking issues, and targeted tests and custom-bundle compilation are reported passing.

0 open findings

What changed in this PR

Prevents CAP and UI5 customization names from being re-exported through javascript.qll, fixing custom-bundle module-resolution errors while preserving security-query behavior.

Changes:

  • Makes customization imports private and removes unnecessary aliases.
  • Documents why bundle-injected imports must remain private.
File Description
javascript/​frameworks/​ui5/​lib/​advanced_security/​javascript_sap_ui5_all/​Customizations.qll Makes five UI5 customization imports private and explains why.
javascript/​frameworks/​cap/​lib/​advanced_security/​javascript_sap_cap_all/​Customizations.qll Makes the CAP source customization import private and explains why.

🧠 Review effort: Balanced


💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Use the upstream summary-model support now available in the current CodeQL libraries.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 15, 2026 15:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Bundle compilation and preservation of customization discovery and summary-model flows still require CodeQL validation.

0 open findings

🧠 Review effort: Balanced

Add a Linux CI regression job that bundles CAP and UI5 customizations into javascript-all and compiles both dependent query packs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 15, 2026 16:05
@mbaluda mbaluda changed the title Use private imports for bundle customizations Fix JavaScript custom bundle compilation Oct 15, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Preserving UI5 summary-flow behavior after removing the compatibility layer still requires verification against the locked CodeQL library.

0 open findings

🧠 Review effort: Balanced

Prefer CodeQL's canonical package-cache path and retain resolver discovery as a fallback.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 15, 2026 16:21
mbaluda and others added 2 commits October 15, 2026 18:22
Name temporary regression artifacts after the JavaScript custom bundle rather than the library author.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Compile one synthetic query pack against the real customized JavaScript standard library and install only the required JavaScript dependencies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Successful CodeQL compilation and preservation of query behavior still require CI confirmation.

0 open findings

🧠 Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 15, 2026 16:29
@mbaluda
mbaluda requested a review from a team October 15, 2026 16:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Preserving UI5 summary-model flow after removing the patch still needs validation against the pinned CodeQL library.

0 open findings

🧠 Review effort: Balanced

@mbaluda
mbaluda merged commit 523024b into main Oct 16, 2026
19 checks passed
@mbaluda
mbaluda deleted the fix/private-customization-imports branch October 16, 2026 07:04
mbaluda added a commit that referenced this pull request Oct 16, 2026
This reverts commit 523024b.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants