Skip to content

Migrate to SLNX#7

Merged
xperiandri merged 2 commits into
mainfrom
slnx
May 23, 2026
Merged

Migrate to SLNX#7
xperiandri merged 2 commits into
mainfrom
slnx

Conversation

@xperiandri
Copy link
Copy Markdown
Collaborator

@xperiandri xperiandri commented May 22, 2026

Proposed Changes

Maintenance update covering two areas:

  1. Solution file migration – migrated from the legacy .sln format to the new .slnx (XML-based) solution format introduced in Visual Studio 2022+, and updated .slnf to point to the new file.

  2. Tooling & CI updates – bumped the .NET SDK in global.json from 8.0.403 to 10.0.300, updated the devcontainer dotnet feature from 8.0 to 10.0, removed now-redundant dotnet-version: 8.x entries from all CI workflows (superseded by global-json-file), and updated all GitHub Actions to their latest major versions (actions/checkout v4→v6, actions/setup-dotnet v4→v5, actions/configure-pages v4→v6, actions/upload-pages-artifact v4→v5, actions/deploy-pages v4→v5).

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

None of the above apply — this is a pure tooling/infrastructure maintenance change with no impact on library behaviour or public API.

Checklist

  • Build and tests pass locally
  • I have added tests that prove my fix is effective or that my feature works (if appropriate)
  • I have added necessary documentation (if appropriate)

Further comments

All changes are non-functional. The .slnx format is fully supported by Visual Studio 17.10+ and dotnet CLI. CI workflows now rely solely on global-json-file: global.json for SDK resolution, keeping the version source of truth in a single place.

@xperiandri xperiandri requested a review from Copilot May 22, 2026 21:18
@xperiandri xperiandri changed the title Migrate to SLN Migrate to SLNX May 22, 2026
Copy link
Copy Markdown

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

Maintenance-focused PR that migrates the solution to Visual Studio’s XML-based .slnx format and updates repo tooling/CI to use newer .NET SDK and GitHub Actions versions, keeping SDK selection centralized via global.json.

Changes:

  • Added FSharp.Control.R3.slnx and updated FSharp.Control.R3.slnf to target it.
  • Updated global.json to .NET SDK 10.0.300 and adjusted CI/devcontainer configuration accordingly.
  • Updated GitHub Actions workflows to newer major versions and removed redundant dotnet-version: 8.x where global-json-file is used.

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/FSharp.Control.R3.Tests/FSharp.Control.R3.Tests.fsproj Minor project file formatting/closing tag change.
global.json Bumps the pinned SDK version to 10.0.300.
FSharp.Control.R3.slnx Adds the new XML-based solution file listing projects and solution items.
FSharp.Control.R3.slnf Switches solution filter to point at the .slnx file.
build/build.fsproj Minor project file formatting/closing tag change.
.github/workflows/publish_release.yml Updates Actions versions; relies on global-json-file for SDK.
.github/workflows/publish_ci.yml Updates Actions versions; relies on global-json-file for SDK.
.github/workflows/fsdocs-gh-pages.yml Updates Actions versions; still installs an additional 6.x SDK alongside global-json-file.
.github/workflows/build.yml Updates Actions versions; relies on global-json-file for SDK.
.devcontainer/devcontainer.json Updates devcontainer .NET feature version to 10.0.
Comments suppressed due to low confidence (1)

.github/workflows/fsdocs-gh-pages.yml:37

  • PR description mentions CI workflows now rely solely on global-json-file for SDK resolution, but this workflow still installs an additional SDK via dotnet-version: 6.x. If this is intentional (e.g., docs tooling requires .NET 6), consider updating the PR description to reflect the exception.
      - name: Setup necessary dotnet SDKs
        uses: actions/setup-dotnet@v5
        with:
          global-json-file: global.json
          dotnet-version: |
            6.x

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread global.json
Copy link
Copy Markdown

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

Copilot reviewed 9 out of 11 changed files in this pull request and generated 4 comments.

Comments suppressed due to low confidence (1)

.github/workflows/fsdocs-gh-pages.yml:37

  • ./build.sh builddocs executes the build project which targets net8.0, but this job currently installs SDKs from global.json (10.0.x) plus 6.x. Without also installing 8.x, the net8.0 build tool/tests are likely to fail at runtime due to missing .NET 8 shared framework. Add 8.x to the installed versions (or retarget build/test projects).
      - name: Setup necessary dotnet SDKs
        uses: actions/setup-dotnet@v5
        with:
          global-json-file: global.json
          dotnet-version: |
            6.x

Comment on lines 21 to 25
- name: Setup necessary dotnet SDKs
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
dotnet-version: |
8.x

Comment on lines 23 to 27
- name: Setup necessary dotnet SDKs
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
dotnet-version: |
8.x

Comment on lines +19 to 24
- uses: actions/checkout@v6
- name: Setup necessary dotnet SDKs
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
dotnet-version: |
8.x

Comment thread FSharp.Control.R3.slnf
Comment on lines 2 to 4
"solution": {
"path": "FSharp.Control.R3.sln",
"path": "FSharp.Control.R3.slnx",
"projects": [
@xperiandri xperiandri merged commit 8d03a6b into main May 23, 2026
7 checks passed
@xperiandri xperiandri deleted the slnx branch May 23, 2026 00:11
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