Skip to content

Conversation

T-Gro
Copy link
Member

@T-Gro T-Gro commented Oct 2, 2025

This PR transitions Roslyn dependencies from manual version management to automated updates via darc subscriptions, simplifying ongoing maintenance and improving reliability. The main changes include:

  • Migrating Roslyn package versions to be managed by darc auto-subscriptions.
  • Fixing API compatibility issues stemming from Roslyn updates.
  • Updating the test framework to eliminate hardcoded dependency versions.
  • Writing and running a script to prune direct package references that are already covered by transitive dependencies and not directly used.
  • Cleaning up Versions.props by removing unnecessary package version entries.

By ensuring that only necessary and directly-used packages are referenced, and letting darc handle version updates, this work reduces the likelihood of NuGet conflict errors and warnings caused by mismatched or redundant version specifications. The result is a more predictable build process, less manual intervention, and improved dependency hygiene for future updates.

@T-Gro T-Gro requested a review from a team as a code owner October 2, 2025 10:42
@T-Gro T-Gro added the NO_RELEASE_NOTES Label for pull requests which signals, that user opted-out of providing release notes label Oct 2, 2025
Copy link
Contributor

github-actions bot commented Oct 2, 2025

⚠️ Release notes required, but author opted out

Warning

Author opted out of release notes, check is disabled for this pull request.
cc @dotnet/fsharp-team-msft

@T-Gro T-Gro requested a review from Copilot October 6, 2025 14:16
Copy link

@Copilot 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

This PR modernizes dependency management by moving Roslyn and Visual Studio dependencies from manually managed versions to dependency auto-update flow control (darc). The change removes numerous hard-coded package references from project files and consolidates version management through centralized configuration files.

Key changes:

  • Removes manually managed package references from Visual Studio integration projects
  • Updates Versions.props with new version patterns and removes obsolete version variables
  • Adds dependency tracking entries in Version.Details.xml for automated updates
  • Updates test framework to dynamically read versions from Versions.props instead of using hard-coded values

Reviewed Changes

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

Show a summary per file
File Description
vsintegration/tests/UnitTests/VisualFSharp.UnitTests.fsproj Removes 20+ manually managed Visual Studio package references
vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj Removes most Visual Studio package references, adds System.ComponentModel.Composition reference, changes EditorFeatures package
vsintegration/src/FSharp.LanguageService/ProjectSitesAndFiles.fs Removes unused System.ComponentModel.Composition import
eng/Versions.props Updates version variables for VS packages, removes obsolete RoslynVersion group
eng/Version.Details.xml Adds dependency entries for Roslyn packages to enable darc management
tests/FSharp.Test.Utilities/TestFramework.fs Updates to read compiler versions from Versions.props dynamically

@T-Gro T-Gro changed the title Move Roslyn deps from manually managed to darc Automate Roslyn Dependency Management with Darc & Prune Direct References Oct 6, 2025
@T-Gro T-Gro requested a review from abonie October 6, 2025 14:20
@github-project-automation github-project-automation bot moved this from New to In Progress in F# Compiler and Tooling Oct 6, 2025
T-Gro added 2 commits October 6, 2025 20:04
Updated PackageReference for System.Collections.Immutable to exclude all assets.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
NO_RELEASE_NOTES Label for pull requests which signals, that user opted-out of providing release notes
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

2 participants