BenMorris / NetArchTest

A fluent API for .Net that can enforce architectural rules in unit tests.
MIT License
1.36k stars 81 forks source link

Current project status #146

Closed pavel-gelver-fls closed 1 month ago

pavel-gelver-fls commented 1 month ago

Can you help me understand the current status of this project and what are its future prospects? On the one hand, I see that the last update was in 2021 and since then not a single change from @BenMorris, on the other hand, I see @NeVeSpl answering questions and having its own version of the library that continues and corrects Ben’s work, although there is no NuGet-package of it. I really want to use this particular library, since the existing alternatives are much worse IMO, but this is impossible in its current form, it will be impossible to convince colleagues to do this, since they will immediately notice that the project is "dead". So, will it live, and if in its current form this is impossible, then is it possible to transfer this project to someone, maybe some kind of foundation?

BenMorris commented 1 month ago

Hi Pavel,

The project is essentially feature complete and has been for some time, hence the lack of updates. With a project like this it can be tempting to continue stuffing features into it which can undermine the coherence and stability of code.

I wrote this back in 2018 because I really liked the ArchUnit library for Java and there wasn't an equivalent for the .Net ecosystem. In the first year or two there were a lot of excellent contributions from people who helped to improve the stability and performance of the library. However, you do reach a point with a small and specialised library like this where the edge cases are largely resolved. It just works.

The forked implementations are an inevitable part of any open source project. @NeVeSpl's contributions have been invaluable and greatly appreciated, but he also wanted to rewrite the library to introduce other features that he felt would add value.

Note that in recent years, a .Net port of ArchUnit has been released by TNG (the people who wrote the original ArchUnit library). However, bear in mind that they haven't released a new version on Nuget in more than a year now. Perhaps that version is "feature complete" too?

Ben.