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

Fixes #3557: Mostly non-impacting minor changes to the csproj, a fix for nuget.config, and some design-time QoL stuff #3556

Merged

Conversation

dodexahedron
Copy link
Collaborator

@dodexahedron dodexahedron commented Jun 21, 2024

Fixes

Aside from that, mostly a few tweaks to the csproj files and other build-related stuff that don't really change anything but are a common base for a couple of branches I have open right now.

Well... Actually one does change/fix a minor thing - configuration conditions have the AnyCPU part removed, so all architectures get those properties, even if an explicit platform is given to the compiler.

This also brings in a couple of solution filters, which you can optionally use both as what you open in Visual Studio or what you target a build at, which don't change the .sln file, but just reduce what's actually loaded into the solution, if you use them. Very handy for making Visual Studio run a bit faster, if you're not wanting to load ALL the projects, and provides consistent templates for people to use, instead of relying on local non-tracked user preference files.

Also useful at build time, for release builds, to speed things up by not making MSBuild and nuget have to figure out everything for projects that aren't part of the build.

This also resolved all warnings in projects in the Analyzers folder.

Proposed Changes/Todos

  • Add NoSamples.slnf - Solution filter that only has the library, analyzers, and tests.
  • Add Analyzers.slnf - Solution filter that only has the analyzers.
  • Add Release.slnf - Solution filter containing only Terminal.Gui.csproj, UnitTests.csproj, and Terminal.Gui.Analyzers.Internal.csproj, for minimal build requirements.
  • Define instances of "Terminal.Gui" in the Terminal.Gui.csproj file as references to $(AssemblyName).
  • Remove the AnyCPU part of the build configuration conditions. Builds targeting other architectures would otherwise not get those properties.
  • Address a couple of warnings that are very safe to ignore.

Pull Request checklist:

  • I've named my PR in the form of "Fixes #issue. Terse description."
  • My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
  • My code follows the Terminal.Gui library design guidelines
  • I ran dotnet test before commit
  • I have made corresponding changes to the API documentation (using /// style comments)
  • My changes resolve a ton of warnings
  • I have checked my code and corrected any poor grammar or misspellings
  • I conducted basic QA to assure all features are working
    • On windows, anyway

Just tossing this up while I finish cherry-picking bits from a couple of branches that form a nice common base.

@dodexahedron dodexahedron self-assigned this Jun 21, 2024
@dodexahedron dodexahedron added work-in-progress build-and-deploy Issues regarding to building and deploying Terminal.Gui testing Issues related to testing v2 For discussions, issues, etc... relavant for v2 labels Jun 21, 2024
@dodexahedron
Copy link
Collaborator Author

Also, all or at least most of this stuff will be drop-in portable to v1, as well, if you want.

@dodexahedron dodexahedron added this to the V2 Alpha milestone Jun 21, 2024
@dodexahedron
Copy link
Collaborator Author

OK actually I will put in an issue, because there's one that touches the nuget.config file to fix bad sourcelink behavior for local command line builds.

@dodexahedron dodexahedron changed the title Tweaks: Non-impacting minor changes to the csproj and some design-time QoL stuff Tweaks: Mostly non-impacting minor changes to the csproj, a fix for nuget.config, and some design-time QoL stuff Jun 21, 2024
@dodexahedron dodexahedron changed the title Tweaks: Mostly non-impacting minor changes to the csproj, a fix for nuget.config, and some design-time QoL stuff Fixes #3557: Mostly non-impacting minor changes to the csproj, a fix for nuget.config, and some design-time QoL stuff Jun 21, 2024
@dodexahedron
Copy link
Collaborator Author

Think I'm done with this one.

Zero warnings in the build output for the analyzer projects, now, as I addressed several and suppressed others that were just noise due to intentional naming and such.

@dodexahedron dodexahedron marked this pull request as ready for review June 21, 2024 21:32
@dodexahedron dodexahedron requested a review from tig as a code owner June 21, 2024 21:32
@dodexahedron
Copy link
Collaborator Author

Yep. Ready to go.

Yes, there's more to be done to the project files, but that's in different branches and targeting more specific things and will be in different PRs.

Copy link
Collaborator

@tig tig left a comment

Choose a reason for hiding this comment

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

LGTM!

Terminal.Gui/Configuration/SettingsScope.cs Show resolved Hide resolved
The ReSharper additions, especially. If you keep caches local to the solution, that's a big one.
AllowUnsafe... was a duplicate and the comments were slightly off
Solution filter that is only what's required to build and test Terminal.Gui
This is a visual studio dependency map.
It lists the components needed to be able to build the solution.
It can be fed to the VS installer to ensure that, at minimum, the listed components (and their dependencies) are installed, so nobody has to guess what's needed.
@dodexahedron dodexahedron force-pushed the v2_dodex_solution_and_project_QoL_tweaks_1 branch from 9c6ff54 to 2e2170e Compare June 25, 2024 13:24
@dodexahedron
Copy link
Collaborator Author

dodexahedron commented Jun 25, 2024

Re-based on v2_develop as of a little while ago

@tig tig merged commit f24a0f8 into gui-cs:v2_develop Jun 26, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build-and-deploy Issues regarding to building and deploying Terminal.Gui testing Issues related to testing v2 For discussions, issues, etc... relavant for v2
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

2 participants