Another open source project shifts to restrictive license: Fluent Assertions following Xceed partnership

Another open source project shifts to restrictive license: Fluent Assertions following Xceed partnership

Fluent Assertions, formerly an open source project under the Apache 2.0 license, now requires a paid license for commercial use.

The Fluent Assertions library, which adds extension methods to improve the clarity of .NET unit tests, was created by Dennis Doomen, a .NET consultant and architect. It has been downloaded more than 250 million times from Nuget, the standard .NET package repository. 

Earlier this week, Xceed, a company specialising in components for .NET, announced a “strategic partnership with Fluent Assertions.” The company said it would integrate the library into its development tools suite “while honoring open-source principles.” According to the post, this means continuing to honor free licenses for “open-source, non-commercial projects.” Previously, the Apache 2.0 license allowed use “no-charge, royalty-free” in both commercial and non-commercial projects, whether open source or not.

A day after the announcement, the license for the project on GitHub changed to the Xceed Community License Agreement, restricting use of the code to non-commercial use, and requiring a paid license from Xceed for any other use.

In June 2023, Doomen blogged about monetizing open-source development, stating that he understood “first-hand the impact and challenges of maintaining open source.” He invited developers to approach their managers or CTOs to request financial support for open-source projects “like Fluent Assertions, xUnit or Identity Server.”

It was perhaps odd that Doomen mentioned Identity Server, which became a commercial project in late 2020. xUnit, a unit test library for .NET, remains under the Apache 2.0 license.

The difficulties in the sustainability of open source projects are well understood, but the approach taken by Xceed and the suddenness of the change have not gone down well with the community. A commercial license for the just-released Fluent Assertions 8.0 costs $130 per developer per year.

“It’s not entirely cheap, especially for a team of 100+ devs. My colleague suggested a rename to AffluentAssertions,” remarked one user.

Doomen stated that the transition had been carefully planned, and the previous release, version 7, “will remain free indefinitely and will still receive critical fixes.” However, this statement is currently buried in a GitHub discussion and not referenced on the main product page.

A common question is whether Fluent Assertions is sufficiently critical to survive as a commercial project. It is well liked, but relatively easy to replace with native .NET functionality that comes for free.

Some developers also feel let down because “people have worked on this project for years, for free. And now, you are selling the product for your own sake.”

One solution? “Pin FluentAssertions to 7.x after licence change”