RicoSuter / NSwag

The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.
http://NSwag.org
MIT License
6.61k stars 1.22k forks source link

Is NSwag officially dead? #4884

Open euroUK opened 1 month ago

euroUK commented 1 month ago

Sorry if it sounds a little bit sad, but can we now assume that project is officially dead?

There were breaking changes in v14 so half of generation schemas not working:

typesToOpenApi webApiToOpenApi

https://github.com/RicoSuter/NSwag/issues/4524

So there are several issues like https://github.com/RicoSuter/NSwag/issues/4731 or https://github.com/RicoSuter/NSwag/issues/4659 where users trying to migrate and get huge problems ike PC hanging since the start of the year.

There is issue https://github.com/RicoSuter/NSwag/issues/4404 from that but there is no responce from March.

In my company we had pipeline with typesToOpenApi because we have shared models in separate solution and right now I don't see any easy solutions to migrate to .Net 8.

For me now I'm going to write my own generator because there is no even timeline to fix those problems.

MoonStorm commented 1 month ago

It looks like it. The list of open issues keeps on growing, same as the pull requests nobody's looking at. The generator is filled with hundreds of options which amazingly don't solve basic problems (e.g. #3851). We've been running serialization workarounds for years. V13 already had plenty of issues before V14 came along to add even more salt to the wounds. Casing is now all over the place, unwanted or improper validations are still here to stay. It's all a big mess. In my opinion, a reboot of this project, definitely with better stewards, is definitely needed at this point.

SebastianStehle commented 1 month ago

I would say that Nswag is a little bit too complex.

But I am also tired about the complains in Open Source all the time. Rico has probably generated Millions in value already and there are very little commits from other developers and large Organizations.

lahma commented 1 month ago

Latest release is from March so I wouldn't jump to conclusions about project being dead. I think it's lovely that both @euroUK and @MoonStorm are complaining about issues and I fail to see any actual contributions from you. You surely are already getting your money's worth.

MoonStorm commented 1 month ago

Latest release is from March so I wouldn't jump to conclusions about project being dead. I think it's lovely that both @euroUK and @MoonStorm are complaining about issues and I fail to see any actual contributions from you. You surely are already getting your money's worth.

I'm sorry I couldn't find the time to understand and contribute to the project, but there are close to 100 contributions already waiting to be triaged and integrated into the code base. Many of them are years old already and the older they get, the more difficult it is to integrate them. This project needs better stewardship.

SebastianStehle commented 1 month ago

Fair point. I would also close everything before 2023. Nobody is ever going to close these issues anyway.

lahma commented 1 month ago

Please also consider the burden from the PRs. They are made with best intentions, but they require review (time away from your life) and also they come with a risk. There have been some regressions recently based on improvements that have had ill-effects on other areas - the possible combinations of usage scenarios is mind-blowing.

So when you ask to merge/propose a PR to close an issue the end result might be 10 more issues being opened because something else is now broken. By merging a well-intentioned PR you might spent time trying to fix and release a new version (hopefully) fixing regressions and not breaking anything more.

Of course there are "easy" ones that (at least) seem like no-brainers, but they take effort.

MoonStorm commented 1 month ago

That's very true. You do need time to approve/reject/adjust PRs. Many of them might target a very specific case that might not be in line with the path the project is supposed to be on. Reason why for example we have a million different options in the code generation, many of them overlapping on not solving basic issues.

But here lies the problem as well. You can't ask for contributions if you don't even have the people or the time to get them sorted. A project where you have the volunteers who offer their work but you don't have time to manage them is pretty much a dead project.

lahma commented 1 month ago

That's very true. You do need time to approve/reject/adjust PRs. Many of them might target a very specific case that might not be in line with the path the project is supposed to be on. Reason why for example we have a million different options in the code generation, many of them overlapping on not solving basic issues.

But here lies the problem as well. You can't ask for contributions if you don't even have the people or the time to get them sorted. A project where you have the volunteers who offer their work but you don't have time to manage them is pretty much a dead project.

Do you have plans on starting a similar project with management that fills your expectations? I think there would be plentiful of people consuming it and creating a backlog for you to work on (please make it free).

MoonStorm commented 1 month ago

No. But I hope somebody will soon. Even now I'm staring at a freshly new generated set of DTOs, where several of them were generated with a small case name, in C#, with the compiler obviously blowing up on such a simple coding style violation.

Lack of proper tests, lack of a solid foundation, where the quantity of features prevailed over quality. A project that was caught off guard by its popularity. Such a shame.

lahma commented 1 month ago

No. But I hope somebody will soon. Even now I'm staring at a freshly new generated set of DTOs, where several of them were generated with a small case name, in C#, with the compiler obviously blowing up on such a simple coding style violation.

Lack of proper tests, lack of a solid foundation, where the quantity of features prevailed over quality. A project that was caught off guard by its popularity. Such a shame.

Now I believe the audience would love to see how proper software should be built. Can you share some of your work?

MoonStorm commented 1 month ago

Ummm, I think we all know by now how "proper software" should be built. Or don't we? A quick google search: SOLID Principles, Design Patterns, TDD, Coding Styles, etc.

MoonStorm commented 1 month ago

I don't even see an editorconfig file in this project with the code rules properly defined!

MoonStorm commented 1 month ago

Oh I see, now you're.... "minimizing" my comments 🤣 Isn't it sad when even such a small amount of power get to people's head? Yup, these are definitely the right people in charge of this project. Good luck over there!

lahma commented 1 month ago

Oh I see, now you're.... "minimizing" my comments 🤣 Isn't it sad when even such a small amount of power get to people's head? Yup, these are definitely the right people in charge of this project. Good luck over there!

Just because your condescending attitude is not welcome here.

MoonStorm commented 1 month ago

Ah don't worry about that, don't really wanna be here. I wish this is gonna be restarted by more talented people who do have more time to care for it. The idea behind this project is brilliant, the implementation is simply sub-par for its popularity, as I said, reason for the neverending list of unsolved issues that keep on piling up.

lahma commented 1 month ago

Thank you for your input. Like you've discovered, it's hard to find the needed talented people. Me and you wouldn't clearly make the cut.

euroUK commented 1 month ago

@lahma Why so toxic?

I just wanted to decide to remove NSwag from toolchain completly or wait a little bit and may be things will be fixed.

The reasons I'm not contributing to Open Source are obvious - I'm working full time as software developer and I don't have enough free time to properly manage open source solutions. My code is enough for our company needs but you need to invest 3x more time to properly release it for everyone. I don't blame if Rico has no time, It would not take too much time to generate typesToOpenApi for our toolchain. I just don't want to reinvent the weel.

Moreover, the open source initiative appears to be dead because the only alive solutions are those supported or developed by large corporations.

jamesrwaugh commented 4 weeks ago

I think yes, unfortunately. NSwag was good but it's reached it's internal complexity limit and the open-to-closed issue count is not promising.

Nowadays Microsoft's Koita is an option.

https://github.com/microsoft/kiota

PooSham commented 1 week ago

New commits were made 2 weeks ago and version bumped to 14.0.8. Can we close this issue now or is there still a reason to believe the project is basically dead?

eolamisan commented 1 week ago

I would say it's still a problem because of the 1.8k open issues. 4 commits per month not going to solve the problem. (Even if each commit were to clear 10 issues.) It looks like with current velocity it would require years of effort just to go through the current backlog.

It seems to be the sad reality of many a popular OSS project lately, without financial backing. Also, it's not fair to expect Rico to work through 1.8 issues (even paid, let alone free). I would agree, Rico has generated millions in value, but here we are.

Code frequency image

https://github.com/RicoSuter/NSwag/graphs/commit-activity