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

[Umbrella] Rewamping the library #152

Open
6 tasks
ig-sinicyn opened this issue Aug 24, 2023 · 6 comments
Open
6 tasks

[Umbrella] Rewamping the library #152

ig-sinicyn opened this issue Aug 24, 2023 · 6 comments

Comments

@ig-sinicyn
Copy link
Contributor

ig-sinicyn commented Aug 24, 2023

I'm going to spend some time in order to revive the project and release a new major version.

The primary goals are the following (issues/PRs to be linked).

  • (Remove perftests library #153) Remove dead code (CodeJam.PerfTests). There's git history so we may revive it at any moment
  • (Rewrite Appveyor pipeline, change output directory #154) move all build artifacts (bin and obj dirs) into root .artifacts directory. The change is going to happen with .net 8 anyways, so I'll just speed it up :)
  • Update multitargeting subsystem. I'm going to make a new approach and use reusable MsBuild .targets / .props files. As a side bonus I do expect to have much more readable csproj files
  • (Rewrite Appveyor pipeline, change output directory #154) Update Appveyor pipelines. As it turns out the scripts may be simplified a lot. Also, I've managed to add target framework annotations to the test results (this helps a lot if build fails).
  • Remove unused dependencies (looks like we do not need ComponentModel.DataAnnotations dependency except for some enum helpers).
  • (Rewrite the publish nuget packages script #155) Add a new package publish scripts

As a preview, there's experimental repo with proofcode for points 2-4. Things to note:

FYI @andrewvk @NN--- . If needed, we can make a call and improve the roadmap.

@NN---
Copy link
Member

NN--- commented Aug 24, 2023

It seems like Theraot is not so maintained.
So there is some missing functionality thee, the coverage for new .NET features is not as good as it could be.
Tried to contact the maintainer but didn't have any luck.

@ig-sinicyn
Copy link
Contributor Author

Yeah, I've managed to remove dependency on Theraot from most target frameworks except for net35 and net40.
image

@NN---
Copy link
Member

NN--- commented Aug 24, 2023

Ah. Great.
There is a modern solution for new features using source generators for .NET Standard 2.0 and above.

@ig-sinicyn
Copy link
Contributor Author

There is a modern solution for new features using source generators for .NET Standard 2.0 and above.

Well, never heard of that^) Do you mean some package/project or it's more like an idea to be done?
If the latter, it's simpler to use source-only packages such as Nullable. Sadly, there's not so many usable ones.

As for source generators, I'd prefer to not use them unless absolutely mandatory. Source generators are hard to maintain and they are much more verbose than good old undead T4.

@NN---
Copy link
Member

NN--- commented Aug 25, 2023

https://www.meziantou.net/polyfills-in-dotnet-to-ease-multi-targeting.htm

Here the list.
Yeah T4 is nice but Source Generators are better integrated today.

@NN---
Copy link
Member

NN--- commented Dec 11, 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

No branches or pull requests

2 participants