-
Notifications
You must be signed in to change notification settings - Fork 695
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
Update ownership and license #2943
Update ownership and license #2943
Conversation
Pull Request Test Coverage Report for Build 12762300226Details
💛 - Coveralls |
Qodana for .NETIt seems all right 👌 No new problems were found according to the checks applied 💡 Qodana analysis was run in the pull request mode: only the changed files were checked Contact Qodana teamContact us at qodana-support@jetbrains.com
|
Sorry to chip in. I just noticed that the Apache 2.0 license mentions was completely removed. I'm not a lawyer, but I don't think you can re-license the entire project like this without obtaining the consent of all the contributors. If there are contributors who do not agree to the new license, then you would have to maintain the original Apache 2.0 license for that code contributed under it. Upd: I also do not see on https://xceed.com/products/unit-testing/fluent-assertions/ which version this license applies to. I would expect that v7 and earlier are not affected, as you cannot claim the license for past releases according to Apache license, and that the new licensing applies only to v8 and above. However, it would be helpful if this were explicitly mentioned so others could avoid any hassle and confusion. |
Does this update mean, some has to pay now to use FluentAssertion? |
The Apache license for v7 already granted you a "perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license", they can't take it away retroactively. |
This is correct. v7 will remain free indefinitely and will still receive critical fixes. v8 will only require a license when you use it in non-commercial projects. |
@dennisdoomen can you please address the questions posed by @ScarletKuro? Specifically, do you have a CLA that grants you this authority, or have you obtained consent from all 222 contributors? |
Thank you all for raising these important questions. Fluent Assertions' transition to a dual-licensing model has been carefully planned in compliance with standard practices for open-source projects. The new commercial version (V8) represents a significant evolution of the library, incorporating improvements and features that were developed under the direction of Xceed and the original creators. These updates are governed by the licensing terms specified for this version, which differ from the Apache-licensed versions. Regarding your concern about contributor consent:
If you have further questions or concerns, feel free to reach out. Transparency and clarity are key, and we’re happy to provide more details. I've personally invested almost 15 years of my private time in this project, and I am really happy with this new development. Once again, v7 will remain free indefinitely and will still receive critical fixes. v8 will only requires a license when you use it in commercial projects. |
This does not seem so simple. There are companies contributing to FOSS projects that are then used in their enterprise packages provided to other enterprises. How does this licensing work then? It makes this situation very complicated, putting others in risk of violating the license. |
I don't get that scenario. FA is just a unit testing project that never gets shipped to anybody else in a package. Can you elaborate? |
One question about the new license agreement. I've seen a file in the commit Src/init.ps1, that will check the windows register. Don't you think that only for this reason the most of the developers will leave of use this library?, and that in 1 or 2 years this project will be finished?. |
You mean commercial projects. |
I understand that it depends on who runs the FA included components. FOSS doesn't guarantee that it will be the packager in every case. Whole FOSS projects can be privately packaged and used in enterprise environments, but this involves running FA in completely different environment (not any more in a free open source environment). |
Yes, sorry. That's what I meant. |
I think it would be fair to include this info in the https://fluentassertions.com/upgradingtov8 guide? Also, could you point me to some info about the pricing for commercial projects and how to obtain a commercial license? |
Which license is needed for commercial software running Tests with FA at a buildserver with every developer at a company can review the results? |
To mention the change of license? Yeah, make sense.
|
Thanks a lot! Well, it's not entirely cheap, especially for a team of 100+ devs. We'll stay on v7 now and long term either wait for a fork of v7, or migrate to Shouldly or another alternative, I'm afraid. Thanks a lot for your great work on FluentAssertions! |
Few questions:
|
I don't understand the pricing model, we have 100+ devs working on 100+ services. Half of those services are using FA meanwhile, all the devs have access to build servers that build those services using FA... I'm a little surprised this move doesn't switch to a new repo/package while sunsetting this FA repo in its current state at version 7 with the Apache 2.0 license. |
It is similar, but not as feature rich. I'm going to have to hand roll something similar to the AssertionScope and it will (initially anyways) not be as easy and out of the way in usage as it is with FA. |
What is interesting to see is how this license change is basically a rugpull. It has been made 2 days ago, shortly before the 8.0 release but after all changes to 8.0 have been made. All contributions made prior to the license change are licensed under the old Apache license but 8.0 is being framed as being under the new shitty commercial license. This is NOT the case. 8.0 is de facto licensed under Apache 2.0. You cannot retroactively change a license during a release AFTER changes have been made under the old license and then claim that the new version is licensed under the new license. This is why projects are doing dedicated releases when changing licenses to avoid such a mess. Doing such things is expected from amateurs. But not from a Microsoft MVP. |
@dennisdoomen , I had a ton of respect for you. We interacted in a few issues, I watched conference talks from you, I held you in pretty high regard and was always a fan of how But the way you handled this whole ordeal basically killed my trust in you, and consequently, on this repository. You are correct then with the bolded: I don't trust you anymore. You threw contributors under the bus, and you made this change in a very shady manner. As an architect, I've already made the recommendation of moving away from I don't have any problems with developers getting proper compensation for their work, but the path you took here is not acceptable. I hope you will reconsider your approach here, or in the future. Good luck. |
Hope you made a loooot of money selling the rights to your software (and evidently, your soul) to a company, since you also paid the price in reputational damage and are unlikely to make any more in the FOSS community. Good luck indeed. |
You understand jackshit about how FOSS works, and it shows. Wanting the license to be respected does not make users entitled brats. What a moronic comment. |
I think you need a lesson in reading comprehension. The core vibe in this thread is that it's shitty and potentially illegal to relicense contributions made under the Apache 2.0 License under a different one which is fundamentally incompatible with it. Actually read the important comments instead of focusing on the ones bitching, although I guess that doesn't make a good story to write your contrived nonsense soup where you strawman your way into looking all high and mighty. |
In My Opinion... flowchart TD
%% Nodes
Invalid("You have no<br>right to complain")
Valid("You have a right to<br>be disappointed and<br>provide polite feedback")
YouContribute{"You made<br>non-trivial<br>contributions?"}
YouSponsor{"You sponsor<br>with $$?"}
EmployerContribute{"Employer made<br>non-trivial<br>contributions?"}
EmployerSponsor{"Employer<br>sponsors<br>with $$?"}
%% Edge connections between nodes
YouContribute -- Yes--> Valid
YouSponsor -- Yes--> Valid
EmployerContribute -- Yes--> Valid
EmployerSponsor -- Yes--> Valid
YouContribute -- No --> YouSponsor
YouSponsor -- No --> EmployerContribute
EmployerContribute -- No --> EmployerSponsor
EmployerSponsor -- No --> Invalid
|
Maybe Shouldly - not as good but an alternative anyways. |
A question to all the folks talking about trust and shame: did you ever hear about the AppGet story? And if yes, how do you cope with staying in the Microsoft stack? Edit: sorry for the folks not coping well :( |
What exactly does AppGet have to do with FluentAssertions? Or are we now going whataboutism way? |
Good for you and thank you for many years of hard work. The people will soon realize, that the harm is very small at the end of the day. You can pay, stay on 7, use a fork or switch to an other framework. |
@matkoch Honestly I didn't even hear about this story, I was using chocolatey and was glad Microsoft made a pre installed apt. Reading about it now I feel for the author of AppGet, they definitely should've at least credit him like he deserves. But my opinion on Microsoft already isn't really about trusting them - some teams do a really good job, and some, well, do a taskbar that still doesn't work properly after 4 years since win11 came out (the only thing that's stopping me from switching to win10 are laptop drivers that are for win11). And about Fluent Assertions, the way I see it:
If they had announced the license change in next release, in a professional way, so that people could see on what terms they would be contributing to or hoping for beforehand, people wouldn't be as upset. If they had had anything extra to offer for the new version to justify the price, and if the price was proportionate to the library usefulness - they whole move would be more understandable. But we have this. |
Finally got an "answer" to my question about backporting changes to v7. In a completely different PR. Not to mention it already reads as pre-written response as it's repeated twice for two different people. Looks like there are two really happy contributors in that discussion. So yeah, in the end, contributors got technically scammed (however little or many changes were made by the contributors in v8). Now all they can do is contact xceed support, who are obviously very interested in getting these emails. Feels bad for poor folks who contributed for this "release". |
Wonder how much of a cut the contributors to this open source code are going to get now that their work is going to be sold without their prior consent. My guess is 0! It'd be one thing to take what was built here, and produce a new version on their own (i.e. just by those that are going to financially benefit). It's a whole other thing to not only use the same repository / NuGet package (something that should not be allowed, frankly), and instantly change it over to "by the way, you owe us money now." Scummy behavior. Moq pulled similar nonsense last year, and tons of folks jumped ship. They reverted their changes, but the damage was done. Same story here! Shouldly seems like a solid alternative, and there's no reason to believe something like this will ever be reverted back (due to contracts likely inked and whatnot). Remember folks: It's not bad for a developer to see something from a thing they've made. It's about the method in which it's being implemented. Pulling the rug out from under folks. Deliberately (underhandedly) Altering The Deal in the same repository / NuGet package without fanfare. Not compensating anyone else who's contributed to this code, for the buckets of cash they're about to charge. So anyone coming in here going "what they're allowed to make money" need to stop pretending that's all that's going on here. Thanks for the convenience, FluentAssertions, but terrible decisions like this make it quite easy to drop. As the owner insinuates here, yes indeed, the community no longer trusts you. |
Well could we fork from PR 2942, which still has the Apache license, and get all the features of V8, without the cost? |
@DavidSchuldenfrei AwesomeAssertions did exactly that |
@dennisdoomen, considering that AwesomeAssertions seems to have all the functionality of Fluent Assertions V8, without the cost, why would anyone pay for Fluent Assertions? |
V8 has just been released, and there is not much feedback on it yet. There could be regressions, as is common with new major versions. Any new fixes made by FA cannot be directly backported 1:1 to AwesomeAssertions. |
Congratulations @dennisdoomen you just killed the best library we had for unit testing. I was literally crying over every other assertions library in other languages since there is just nothing comparable to fluent assertions. Newer would I ever made my contributions if I had know they end up like this. In the hands of a company that tries to explain how much more value you get from paying for it. What the you you mean with: Better Support? The only support I needed came from the community! New features? The community was responsible of that and doing an extraordinary job! More Security? What the heck does that even mean? I am so mad. |
@whymatter please join the AwesomeAssertions project effort, that actually already includes your contribution. |
… the license change (#205) According to the license in fluentassertions/fluentassertions#2943, it is not allowed to "publish results from benchmarks or performance comparison tests (with other products) without advance written permission by Xceed", therefore, fix the version to the latest v7!
myCompany.Should().NotBeUsing<FluentAssertions>();
myCompany.Should().BeUsing<Shouldly>(); $130/seat/year for an assertions helper? Nope. Pinning to v7 across the estate until we can migrate to Shouldly. Apprantly Copilot is pretty helpful for that, and it costs about the same as FA :-) |
Heard good stories in several projects at my company, thousands of tests in half a day. The main issue generally isn |
Almost everything in v8 is Apache 2 licensed. That license was in effect until -rc2, with the only changes in the go-live commit being the license change and some trivialities. #2970 (comment) As noted above, AwesomeAssertions forked from v8.0.0-rc2, as it has every right to do so (IANAL). I wish AwesomeAssertions every success. This repo, not so much. I am immensely grateful for all the hard work from all contributors, but this move is morally unjustifiable and legally questionable. A real shame, in all senses. EDIT: I'm going to update all package imports to |
I did like this comment though :-) |
No description provided.