-
Notifications
You must be signed in to change notification settings - Fork 350
Remove Roslyn 4.3 workaround, bump to 4.3.1 #462
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
Conversation
@Nirmal4G Can you take a look at the build failure? I'd be fine just removing the caching, but I'd imagine you'd want to find a way to fix that and leave the caching in place instead, so let me know if you can help with this. Thank you! 🙂 |
...rators.Roslyn431.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn431.UnitTests.csproj
Show resolved
Hide resolved
@Sergio0694 if all the patch VS versions are out of their support date, then this seems fine. Will they have a message outputted that tells them to update VS? (Or is that something we can have the source generator emit on our end to aid in understanding beyond general failure?) |
@michael-hawker I did confirm with @333fred that all patch versions before the latest are effectively EOL, so yes that should be fine. Currently, people using a 17.3 version before 17.3.5 will get some error regarding analyzers failing to load due to some assembly reference with an incorrect version, which yeah isn't the best. Not sure we can emit a message, as the Roslyn assembly version in VS is still the same, so I don't think we can detect that version from our .targets (or even if we could, whether the extra complexity there would be worth it). Not entirely sure what the best approach is here. In theory since 17.4.3 and below (up to 17.3.0) are EOL we could pretty much just shrug? I can agree it's not the best UX for devs on those versions though... |
@Sergio0694 As I suspected, the renamed file was not committed. But having multiple project folders and files just to target multiple versions of the library without separate source files in them is a disaster waiting to happen. I knew this could happen and that's why I simplified Roslyn targeting with some MSBuild magic (at least for my private fork). |
ed51dc1
to
f397754
Compare
@Nirmal4G Yeah I had missed a file, it's fixed now. I disagree that it's a "disaster waiting to happen", I simply missed a file, the CI failed, we fixed it, now it's all good. Nothing bad happened, it's really not a big deal, so I'd like to keep this setup and avoid complicating things even further. This was a one-off anyway and I really don't expect to change those projects at all 🙂 |
@Sergio0694 Sure, no problem.
I personally don't like the current setup. It uses shared projects which are not VSCode friendly. It feels more like a hack and is very brittle. The whole point of separating the projects is to keep it But my patch (still a work in progress) removes the need for shared projects and is VSCode friendly. So, what makes it complicated? If we need the logic more focused, we can do so in a review. This patch also paves a simple path to implement Central package versioning and output paths. Is there any way we could still discuss this?
|
I'd recommend creating an issue/discussion pasting your last comment too, and we can talk about it there 🙂 |
Thanks, I have started a discussion. See #463. |
There's a ReadMe for NuGet Packages, right? We could do an update to ReadMe, call this in the blog post and we can update the release notes section in the package to point to breaking changes/migration docs. I'm sure in one way or another people will see one of these. |
I have made updates to this branch. For those who have not installed the .NET SDK 7 locally, until the patch for .NET SDK v6 and VS v17.3 comes around, they are stuck building with the wrong compiler. I have added a patch to build the repo locally with the existing setup. |
I'm not worried about local builds, especially because I'll be adding the .NET 7 target shortly anyway, so people will have to use that SDK locally too, which will include the fix for this issue already. For now it builds fine locally once you have VS 17.3.5 or greater, and it passes fine in the CI as well, that's all we need for the time being 🙂 |
This PR removes the Roslyn 4.4 workaround and bumps the 4.3 dependency to 4.3.1.
cc. @michael-hawker Any concerns with the release strategy here? I guess we just need to call this out in the blog post?