Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CSProj Update #5145

Merged

Conversation

C-SELLERS
Copy link
Contributor

@C-SELLERS C-SELLERS commented Jan 8, 2021

Description

Update all CSProj files to the new format

Includes:

  • Migration from packages.config to PackageReference -> Reduces work of managing packages to a single line per package in proj file.
  • Migration to project sdk Microsoft.NET.Sdk -> Moves us to .Net standard proj format, allowing us to target more frameworks in the future as well as cleans up project files significantly. This is the largest change by far as it impacts the entire structure of the proj files. Including removal of a lot of default settings to reduce clutter.
  • Compile globbing -> instead of relying on compile include statements all files in the project are by default compiled, to not compile we must use Compile Remove
  • Reduction of certain build settings into a overhead default that utilizes dynamic vars such as $(Configuration) to further reduce clutter.
  • Use $(NugetPackageRoot) variable instead of relative pathing for specific dll finds. -> With the change to packages, the storage is no longer in ./packages, so we needed to have a dynamic path variable to address this.
  • Test project now includes Microsoft.NET.Test.Sdk allowing for dotnet test as well as supporting testing in VS16 project (new version this PR moves us too)
  • Open some internal test classes to public for composer use (There was issues in linux testing regarding accessing these classes)

Related Issue

Closes #1686
Related to #452

Motivation and Context

To move forward with supporting dotnet core we need to update our project files to the new .net standards.

Requires Documentation Change

N/A

How Has This Been Tested?

  • dotnet build works
  • msbuild works
  • All regressions pass locally on Windows 10
  • Travis test set runs successfully in Docker container and on Ubuntu 20.04
  • C# and Py Live trading tested in cloud and locally*
  • C# and Py Backtesting tested in cloud and locally*
  • C# and Py Research tested in cloud and locally*
  • C# and Py Debugging tested in cloud and locally*

*locally refers to windows 10 environment and cloud refers to QuantConnect.com

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • Refactor (non-breaking change which improves implementation)
  • Performance (non-breaking change which improves performance. Please add associated performance test and results)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Non-functional change (xml comments/documentation/etc)

Checklist:

  • My code follows the code style of this project.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

@C-SELLERS C-SELLERS force-pushed the refactor-1686-csproj-format-update branch from 73d41f6 to e0a8258 Compare January 11, 2021 21:17
Copy link
Contributor Author

@C-SELLERS C-SELLERS left a comment

Choose a reason for hiding this comment

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

As it stands at this point in time, this PR can successfully build and run lean, as well as run all of our tests.

Tested environments:

  • Docker Container Mono based on foundation image
  • Windows 10 VS
  • Ubuntu 20.04 Mono

Copy link
Member

@Martin-Molinero Martin-Molinero left a comment

Choose a reason for hiding this comment

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

Nice! Leaving a few minor comments
Let's update the PR description with a summary of the changes and tests performed

@C-SELLERS C-SELLERS mentioned this pull request Jan 14, 2021
4 tasks
@C-SELLERS C-SELLERS force-pushed the refactor-1686-csproj-format-update branch from 35a3de2 to 35e33e5 Compare January 14, 2021 18:23
Copy link
Contributor Author

@C-SELLERS C-SELLERS left a comment

Choose a reason for hiding this comment

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

👍🏽 Reviews addressed, rebased onto master and included summary of changes in PR description

@jaredbroad jaredbroad merged commit a2a874e into QuantConnect:master Jan 14, 2021
@C-SELLERS C-SELLERS mentioned this pull request Jan 18, 2021
11 tasks
@StefanoRaggi StefanoRaggi mentioned this pull request Jan 26, 2021
9 tasks
@C-SELLERS C-SELLERS mentioned this pull request Jan 26, 2021
11 tasks
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.

Support new csproj format.
3 participants