Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 28, 2026

Adds crossgen2 composite ReadyToRun benchmark variants to the Single File scenarios.

Changes

  • Two new modes in build/singlefile-scenarios.yml:

    • R2RComposite-Windows: win-x64 RID, Windows-gated
    • R2RComposite-Linux: linux-x64 RID, Linux-gated
  • Build properties: PublishReadyToRun=true, PublishReadyToRunComposite=true, PublishSingleFile=true, RuntimeIdentifier=<rid>

  • Crank properties: mode=R2RComposite, rid=<rid>

  • OS gating: --application.options.requiredOperatingSystem <windows|linux>

Impact

Adds 4 new benchmark configurations (Json Platform + Plaintext × 2 RIDs) to the existing pipeline matrix. Existing modes unchanged.

Note: Does not set PublishReadyToRunUseCrossgen2=true explicitly—relies on modern SDK defaults.

Original prompt

Add new Single File benchmark modes for crossgen2 composite ReadyToRun publish.

Background:
The Single File benchmarks are scheduled via the Azure Pipelines template build/singlefile-scenarios.yml, which defines a list of scenarios and modes and then cross-products them when publishing crank jobs.

Goal:
Add a scenario variant (implemented as two new modes) corresponding to running dotnet publish with:

  • -c Release
  • -r <RID>
  • -p:PublishReadyToRun=true
  • -p:PublishReadyToRunComposite=true

Because the RID is OS-specific, implement Option A:

  • Add two new modes:
    • Windows: RID win-x64, gated with --application.options.requiredOperatingSystem windows
    • Linux: RID linux-x64, gated with --application.options.requiredOperatingSystem linux

Important constraints:

  • Limit to PublishReadyToRun=true (do not explicitly set PublishReadyToRunUseCrossgen2=true). Rely on modern SDK defaults implying crossgen2.
  • Use buildArguments MSBuild properties to pass the RID via /p:RuntimeIdentifier=<rid> (equivalent to dotnet publish -r <rid> in this template style).
  • Ensure these new modes apply to both existing Single File scenarios (Json Platform and Plaintext) automatically via the existing nested iteration.
  • Add optional --property rid=<rid> and set --property mode=R2RComposite (or similar) consistent with existing template properties.

Files to change:

  • build/singlefile-scenarios.yml

Acceptance criteria:

  • The YAML remains valid.
  • Two new modes appear in the published tasks matrix (Windows and Linux) and are OS-gated.
  • Existing modes and behavior remain unchanged.

This pull request was created from Copilot chat.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@sebastienros sebastienros marked this pull request as ready for review January 28, 2026 16:20
@sebastienros sebastienros merged commit 87c93b1 into main Jan 28, 2026
2 checks passed
Copilot AI changed the title [WIP] Add new Single File benchmark modes for crossgen2 Add R2R Composite Single File benchmark modes Jan 28, 2026
Copilot AI requested a review from sebastienros January 28, 2026 16:21
Copilot stopped work on behalf of sebastienros due to an error January 28, 2026 16:21
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.

2 participants