Skip to content

Feature flag: C/C++ overlay#3584

Merged
IdrissRio merged 7 commits intomainfrom
idrissrio/cpp/overlay
Mar 19, 2026
Merged

Feature flag: C/C++ overlay#3584
IdrissRio merged 7 commits intomainfrom
idrissrio/cpp/overlay

Conversation

@IdrissRio
Copy link
Contributor

@IdrissRio IdrissRio commented Mar 19, 2026

I'm not sure if this has to be filled in for this specific case. If the reviewer thinks it's useful/mandatory I'll be happy to do it.

Risk assessment

For internal use only. Please select the risk level of this change:

  • Low risk: Changes are fully under feature flags, or have been fully tested and validated in pre-production environments and are highly observable, or are documentation or test only.

Which use cases does this change impact?

Workflow types:

  • Advanced setup - Impacts users who have custom CodeQL workflows.
  • Managed - Impacts users with dynamic workflows (Default Setup, Code Quality, ...).

Products:

  • Code Scanning - The changes impact analyses when analysis-kinds: code-scanning.
  • Code Quality - The changes impact analyses when analysis-kinds: code-quality.
  • Other first-party - The changes impact other first-party analyses.
  • Third-party analyses - The changes affect the upload-sarif action.

Environments:

  • Dotcom - Impacts CodeQL workflows on github.com and/or GitHub Enterprise Cloud with Data Residency.
  • GHES - Impacts CodeQL workflows on GitHub Enterprise Server.
  • Testing/None - This change does not impact any CodeQL workflows in production.

How did/will you validate this change?

  • Test repository - This change will be tested on a test repository before merging.
  • Unit tests - I am depending on unit test coverage (i.e. tests in .test.ts files).
  • End-to-end tests - I am depending on PR checks (i.e. tests in pr-checks).

If something goes wrong after this change is released, what are the mitigation and rollback strategies?

  • Feature flags - All new or changed code paths can be fully disabled with corresponding feature flags.

How will you know if something goes wrong after this change is released?

  • Telemetry - I rely on existing telemetry or have made changes to the telemetry.
    • Dashboards - I will watch relevant dashboards for issues after the release. Consider whether this requires this change to be released at a particular time rather than as part of a regular release.
    • Alerts - New or existing monitors will trip if something goes wrong with this change.

Are there any special considerations for merging or releasing this change?

  • No special considerations - This change can be merged at any time.

Merge / deployment checklist

  • Confirm this change is backwards compatible with existing workflows.
  • Consider adding a changelog entry for this change.
  • Confirm the readme and docs have been updated if necessary.

@github-actions github-actions bot added the size/XS Should be very easy to review label Mar 19, 2026
@IdrissRio IdrissRio force-pushed the idrissrio/cpp/overlay branch 2 times, most recently from d40f546 to 3486de8 Compare March 19, 2026 11:18
@IdrissRio IdrissRio marked this pull request as ready for review March 19, 2026 11:44
@IdrissRio IdrissRio requested a review from a team as a code owner March 19, 2026 11:44
Copilot AI review requested due to automatic review settings March 19, 2026 11:44
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds C/C++ support gates for overlay analysis by introducing dedicated feature flags and a per-language minimum CodeQL CLI version, aligning overlay enablement with language-specific rollout control.

Changes:

  • Introduce CODEQL_OVERLAY_MINIMUM_VERSION_CPP (2.25.0) for overlay analysis.
  • Add C/C++ overlay analysis feature flags (general + code-scanning-only variants) with env-var overrides and minimum CLI version constraints.
  • Regenerate compiled lib/ outputs to reflect the TypeScript changes.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/overlay/index.ts Adds the per-language minimum CLI version constant for C/C++ overlay analysis.
src/feature-flags.ts Adds new C/C++ overlay feature flags and wires them into the feature flag configuration (env vars + minimum version).
lib/upload-sarif-action.js Generated output reflecting the TypeScript changes.
lib/upload-sarif-action-post.js Generated output reflecting the TypeScript changes.
lib/upload-lib.js Generated output reflecting the TypeScript changes.
lib/start-proxy-action.js Generated output reflecting the TypeScript changes.
lib/start-proxy-action-post.js Generated output reflecting the TypeScript changes.
lib/setup-codeql-action.js Generated output reflecting the TypeScript changes.
lib/resolve-environment-action.js Generated output reflecting the TypeScript changes.
lib/init-action.js Generated output reflecting the TypeScript changes.
lib/init-action-post.js Generated output reflecting the TypeScript changes.
lib/autobuild-action.js Generated output reflecting the TypeScript changes.
lib/analyze-action.js Generated output reflecting the TypeScript changes.
lib/analyze-action-post.js Generated output reflecting the TypeScript changes.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +238 to +242
[Feature.OverlayAnalysisCpp]: {
defaultValue: false,
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_CPP",
minimumVersion: CODEQL_OVERLAY_MINIMUM_VERSION_CPP,
},
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't think this is necessary.

@IdrissRio IdrissRio force-pushed the idrissrio/cpp/overlay branch from 52b3b10 to fb5dd8b Compare March 19, 2026 12:13
Copy link
Contributor

@henrymercer henrymercer left a comment

Choose a reason for hiding this comment

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

This looks good — two things before we merge:

  • We need to update the "No overlay analysis for language without per-language overlay feature flag" test to use a different language, perhaps Swift?
  • Could you add a changelog note? Something like "We are rolling out improved incremental analysis to C/C++ analyses that use build mode none. We expect this rollout to be complete by ___."?

@IdrissRio IdrissRio force-pushed the idrissrio/cpp/overlay branch from 1334e5c to 0d057cc Compare March 19, 2026 13:12
@IdrissRio
Copy link
Contributor Author

Thanks @henrymercer! I addressed the comments here 0d057cc and 074a0db

henrymercer
henrymercer previously approved these changes Mar 19, 2026
Co-authored-by: Henry Mercer <henrymercer@github.com>
henrymercer
henrymercer previously approved these changes Mar 19, 2026
@IdrissRio IdrissRio enabled auto-merge March 19, 2026 14:03
@IdrissRio IdrissRio added this pull request to the merge queue Mar 19, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to a conflict with the base branch Mar 19, 2026
@IdrissRio IdrissRio added this pull request to the merge queue Mar 19, 2026
Merged via the queue into main with commit 30c555a Mar 19, 2026
225 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XS Should be very easy to review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants