Skip to content

SF-3767 Upgrade to .NET 10.0#3781

Open
pmachapman wants to merge 8 commits intomasterfrom
update/net10
Open

SF-3767 Upgrade to .NET 10.0#3781
pmachapman wants to merge 8 commits intomasterfrom
update/net10

Conversation

@pmachapman
Copy link
Copy Markdown
Collaborator

@pmachapman pmachapman commented Apr 7, 2026

This PR updates the projects, devcontainers, dependencies, and docker containers to .NET 10.


Open with Devin

This change is Reviewable

@pmachapman pmachapman added the will require testing PR should not be merged until testers confirm testing is complete label Apr 7, 2026
devin-ai-integration[bot]

This comment was marked as resolved.

@github-advanced-security
Copy link
Copy Markdown
Contributor

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 7, 2026

Codecov Report

❌ Patch coverage is 18.18182% with 54 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.23%. Comparing base (b691ada) to head (9cfb3cb).
⚠️ Report is 1 commits behind head on master.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
src/SIL.XForge.Scripture/Program.cs 0.00% 41 Missing ⚠️
...e.Scripture/Services/ApiDocumentationExtensions.cs 0.00% 4 Missing ⚠️
...ure/Services/MachineServiceCollectionExtensions.cs 25.00% 3 Missing ⚠️
...IL.XForge.Scripture/Services/ParatextSyncRunner.cs 0.00% 0 Missing and 3 partials ⚠️
.../SIL.XForge.Scripture/Services/SFProjectService.cs 66.66% 0 Missing and 2 partials ⚠️
src/SIL.XForge.Scripture/Startup.cs 66.66% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3781      +/-   ##
==========================================
- Coverage   81.27%   81.23%   -0.04%     
==========================================
  Files         622      622              
  Lines       39322    39307      -15     
  Branches     6415     6375      -40     
==========================================
- Hits        31958    31933      -25     
- Misses       6366     6387      +21     
+ Partials      998      987      -11     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@pmachapman pmachapman added the e2e Run e2e tests for this pull request label Apr 7, 2026
@pmachapman pmachapman changed the title Upgrade to .NET 10.0 SF-3767 Upgrade to .NET 10.0 Apr 7, 2026
@marksvc marksvc self-assigned this Apr 8, 2026
Copy link
Copy Markdown
Collaborator

@marksvc marksvc left a comment

Choose a reason for hiding this comment

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

@marksvc reviewed 53 files and all commit messages, and made 3 comments.
Reviewable status: all files reviewed, 3 unresolved discussions (waiting on pmachapman).


src/SIL.XForge.Scripture/Program.cs line 32 at r5 (raw file):

                    Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")
                    ?? Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT")
                    ?? "Production";

I've learned that it can be safer to fall back to the Development environment settings. Then we need to specifically request to use the Production ports, paths, remote URIs, DBs, etc. And if we don't specify, then we more safely write to the less important addresses. What do you think about that here?


src/SIL.XForge.Scripture/Program.cs line 44 at r5 (raw file):

                }

                config.AddEnvironmentVariables();

I think at least in Linux one would expect

  • the config file settings to be overridden by
  • the environment settings, which are overridden by
  • the commandline arguments.

Is there a reason the order in the code above appears to be

  • commandline, overridden by
  • config files, overridden by
  • environment variables.

?

I wouldn't want the arguments to dotnet run to be overridden by the config files.

Oh, I see that Devin discussed this some. Yeah, so if we put the config.AddCommandLine after config.AddEnvironmentVariables that may allow commandline arguments to override the others.

Hmm, Devin says it's rare to specify args, but I do on my workstation :). I specify some --node-options. (Though I think recently that has actually been overridden and not working. But ideally it would be working :)


src/SIL.XForge.Scripture/Startup.cs line 100 at r5 (raw file):

    private readonly HashSet<string> SpaPostRoutes = [];

    public Startup(IConfiguration configuration, IWebHostEnvironment env)

Devin pointed out that with Startup.cs changes, PackageReference Hangfire.Autofac can be removed from SIL.XForge.csproj.

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

Labels

e2e Run e2e tests for this pull request will require testing PR should not be merged until testers confirm testing is complete

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants