Skip to content

Conversation

@jeffcampbellmakesgames
Copy link

I have a few PR's I'd like to, this being the first one.

This PR includes:

  • A few auto-generated files and .gitignore from Rider when opening the Arch.Extended solution.
  • When originally opening the solution in Rider all projects appeared to be failing to compile. This was due to the default MsBuildVersion being lower than what is needed to successfully compile. I've modified the Rider setting to use the auto-detected MsBuildVersion to resolve this.
  • I've modified the runtime CSharp projects to include the SatelliteResourceLanguages XML tag to limit languages to English for Humanizer. When publishing these projects this prevents many extraneous assemblies from being included with the build output.

The result of these changes is that Rider can now successfully compile the solution and publishing these assemblies includes far-less file content.

image

@genaray
Copy link
Owner

genaray commented Mar 3, 2024

Thanks! :) Is the .idea folder really required? Normally it is recommended to not include IDE specific directorys ^^

@jeffcampbellmakesgames
Copy link
Author

jeffcampbellmakesgames commented Mar 3, 2024

Thanks! :) Is the .idea folder really required? Normally it is recommended to not include IDE specific directorys ^^

I wholeheartedly agree in most cases that IDE specific files should be avoided to include, particularly any temp or build files that are likely to be generated frequently or be per-machine centric. For that purpose, it might be good to update the root gitignore with this content to exclude these types of files that Jetbrains recommends.

Where this seems like an exception is that any user that opens this solution with Rider (on macOS or Windows) has the potential to have very different MSBuildVersion settings applied based on their global settings. The result of this locally for myself and presumably others is that the default settings Rider has will result in a solution that fails to compile. For a first-time developer attempting to modify or build these projects that would seem to perhaps give a false-impression the solution is out of date or not maintained well.

This is what the solution looks like on a fresh-open with that first commit deleted (no IDE files).
image

What these project files do is provide a better developer experience in working with this solution by ensuring explicit MsBuildVersion values that ensure the project is working.

An alternative solution could be to provide instructions to have each individual developer using Rider to apply these same settings locally (if experiencing this issue), but that seems like a worse outcome as its now extra work for each user to apply those same steps and maintain those files out of git (side branch, gitignored, stashed, etc...).

It seems like a much better developer experience would be to set at the repo level these types of settings so anyone using this IDE would be able to work with a solution/projects that could compile on a fresh open.

@genaray
Copy link
Owner

genaray commented Mar 6, 2024

Thank you and of course I can understand that! But if the problem is only the MSBuild version... you had set this in the other files, didn't you? So the .Idea folder is generally superfluous, or am I wrong?

If it's about the code style, you can also do without the .Idea folder and find another solution :)

jzapdot added 2 commits March 6, 2024 08:47
* Modified Csharp projects (non unit-tests) to include SatelliteResourceLanguages tag. This prevents tons of extranneous Humanizer assemblies and resource files from being included in the publishing output.
* Set MsBuildVersion to use latest version; this prevents compiler errors on a default Rider solution open.
@jeffcampbellmakesgames jeffcampbellmakesgames force-pushed the feat/rider_and_csharp_proj_tweaks branch from 0575f48 to c4ca546 Compare March 6, 2024 13:47
@jeffcampbellmakesgames
Copy link
Author

Thank you and of course I can understand that! But if the problem is only the MSBuild version... you had set this in the other files, didn't you? So the .Idea folder is generally superfluous, or am I wrong?

If it's about the code style, you can also do without the .Idea folder and find another solution :)

Ah you know what, I thought that the MsbuildVersion was set as a part of the .idea project files, but it's actually a part of the solution file. I've amended this PR to:

  • Exclude the .idea folder at the root of the repo in the gitignore. This was needed as the current patterns are not catching this folder.
  • Removed the .idea folder and content.

I'll rebase the other PR atop this one.

@genaray genaray merged commit a7222b6 into genaray:master Mar 12, 2024
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.

3 participants