Skip to content

Conversation

@feO2x
Copy link
Owner

@feO2x feO2x commented Jun 30, 2025

This pull request introduces several improvements to the .NET project, including enhanced build configuration, dependency management, and project structure organization. Key changes include enabling centralized package version management, adding support for locked dependency restoration, and restructuring the solution to better align with modern conventions.

Build and Configuration Improvements:

  • Updated .github/workflows/build-and-test.yml to include the /p:ContinuousIntegrationBuild=true parameter for dotnet restore and dotnet build commands, enabling deterministic builds in CI environments.
  • Modified Directory.Build.props to enable locked dependency restoration when ContinuousIntegrationBuild is true, ensuring reproducible builds.

Dependency Management:

  • Introduced Directory.Packages.props to centralize package version management, specifying versions for key dependencies such as FluentAssertions, Light.GuardClauses, and xunit.
  • Added packages.lock.json to the src/Light.TemporaryStreams directory to lock dependency versions, ensuring consistent resolution across environments.

Project Structure Enhancements:

  • Updated Light.TemporaryStreams.sln to reorganize project paths, moving source files to src/ and test files to tests/, improving clarity and maintainability. [1] [2]
  • Added Directory.Packages.props to the solution items in Light.TemporaryStreams.sln for better visibility of centralized package management.

feO2x added 4 commits June 30, 2025 23:19
Signed-off-by: Kenny Pflug <kenny.pflug@live.de>
Signed-off-by: Kenny Pflug <kenny.pflug@live.de>
Signed-off-by: Kenny Pflug <kenny.pflug@live.de>
Signed-off-by: Kenny Pflug <kenny.pflug@live.de>
@feO2x feO2x requested a review from Copilot June 30, 2025 22:22
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

This PR restructures the solution layout, centralizes package version management, and enforces reproducible builds in CI.

  • Centralize package versions by introducing Directory.Packages.props and removing inline version attributes.
  • Enable locked dependency restoration via Directory.Build.props and propagate ContinuousIntegrationBuild in the GitHub Actions workflow.
  • Move project files under src/ and tests/, add global.json for SDK pinning, and include centralized files in the solution.

Reviewed Changes

Copilot reviewed 9 out of 32 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/Light.TemporaryStreams.Tests/packages.lock.json Add lockfile to pin test dependencies
tests/Light.TemporaryStreams.Tests/Light.TemporaryStreams.Tests.csproj Remove inline versions, update project reference path to src/
src/Light.TemporaryStreams/packages.lock.json Add lockfile to pin library dependencies
src/Light.TemporaryStreams/Light.TemporaryStreams.csproj Remove inline version to use centralized package versions
global.json Pin .NET SDK to 8.0.411 with roll-forward disabled
Light.TemporaryStreams.sln Update project paths to src/ and tests/, add solution folders
Directory.Packages.props New central package version configuration
Directory.Build.props Enable lockfile restore and locked mode under CI
.github/workflows/build-and-test.yml Add /p:ContinuousIntegrationBuild=true, remove hardcoded SDK step
Comments suppressed due to low confidence (2)

.github/workflows/build-and-test.yml:16

  • The setup-dotnet step no longer specifies which SDK version to install. Add a with: dotnet-version: 8.0.x (or the new input syntax) so the action picks the correct SDK instead of failing or using an unexpected default.
        uses: actions/setup-dotnet@v4

.github/workflows/build-and-test.yml:29

  • Removing --no-restore from the test command will trigger a restore again, slowing CI. If the intent was to skip redundant restores, re-add --no-restore here.
        run: dotnet test ./Light.TemporaryStreams.sln --configuration Release --no-build --verbosity normal

@feO2x
Copy link
Owner Author

feO2x commented Jun 30, 2025

* Removing `--no-restore` from the test command will trigger a restore again, slowing CI. If the intent was to skip redundant restores, re-add `--no-restore` here.

--no-build implies no-restore, see https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test?tabs=dotnet-test-with-vstest

Signed-off-by: Kenny Pflug <kenny.pflug@live.de>
@feO2x feO2x self-assigned this Jun 30, 2025
@feO2x feO2x merged commit a3550b7 into main Jun 30, 2025
1 check passed
@feO2x feO2x deleted the project-layout-restructuring branch June 30, 2025 22:33
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