CoC-compatible Community Builds

First time poster.

This is bad for the entire community. No actual reasons given for the removal except these projects violated CoC. No information was given on what parts of the CoC were violated and or examples showing the violations.

This information should be made public on a decision like this.

Scalaz has over 700 usages on Maven Central, over 600 repositories on Github mention it with projects like Monocle at the top of the list.

This is just a poor decision based purely on personal differences and past confrontations. No technical grounds whatsoever.

This is setting the precedence for the future of Scala. It will only be detrimental.

15 Likes

There we have it, someone or many people on scalaz have been causing problems. I side with their decision on this, i think just in the future they can just come right out and say it and not mention dep graph or technical impact or anything.

Not okay. Also makes me side even more with @adriaanm as it is not the way to resolve problems.

6 Likes

I guess I’ll wade in…

Something that needs to be state up-front here is that the community build process is under no obligation to do anything. People have thrown around terms like “unethical” or “passive aggressive” or “bad faith”. The community build serves one primary purpose: a massive set of regression tests for the Scala language itself. Its secondary purpose is to provide a mechanism by which a quorum of the broader ecosystem dependency graph can move forward uniformly and in a timely manner to cross-build on new Scala releases. There is no contract, implied or otherwise, that your project or your favorite project will be included, will ever be included, or once included will remain included. So if you want to sling mud, recognize that you’re doing it on very subjective grounds that were ultimately built on good-will to begin with.

Attacking Adriaan is the equivalent of yelling at the company who sponsors free food at a conference just because they are no longer giving you nachos. They’re allowed to do whatever they want. They owe you, me, and the rest of us absolutely nothing.

Another thing that needs to be understood is that inclusion in the community build is not free. Even ignoring the CI compute costs, it drains a very meaningful amount of effort from Seth and others to simply keep things current and up to date. If you aren’t involved in maintaining projects in the Scala ecosystem (and particularly if you aren’t involved in maintaining more than one such project), you probably don’t realize exactly how much time and effort Seth pours into chasing down bugs and build problems in the community build projects. The efficacy of this time and effort is entirely dependent on bidirectional collaboration with project maintainers, and it’s definitely not something that happens on its own. Also Seth is a human being, and frankly if the commit message on the scalaz removal had been “removed projects that I don’t feel like updating anymore”, he would have been well within his rights to do so.

In a sense, the CoC is simply a proxy for “has a community which is willing to engage with Seth in a civil fashion”. Certainly many members of the scalaz community are willing to do such, and have done such consistently over time. I salute all of you! It is beyond argument at this point though that certain very vocal and prominent members of the scalaz community most definitely do not fall into this category. If that’s the reason for the removal, then it is an ample one.

Attacking this decision on purely technical grounds is a fair impulse but it ignores the fact that there are some very real subjective, human elements to all of this. Elements which very much can and should be part of the decision making process surrounding any member of the community build. Do not ignore these elements. Particularly don’t ignore them if you’re going to bring up things such as “contributions of the 2 most skilled women” as major counter-arguments to the removal. That is certainly a very subjective, human element to this removal. If you’re going to raise it as a point, you need to recognize as valid the numerous non-technical reasons which likely led us to this place.

But nonetheless, there are technical points certainly worth raising here. A common complaint is that scalaz is a (still) a very widely deployed project. I think that’s pretty fair, and I myself work on a codebase which has been using scalaz for nearly a decade and is likely to continue doing so for quite some time. What’s notable though is the fact that the removal of scalaz from the dbuild graph actually had relatively little impact on the build as a whole. Nothing depends on ZIO in the public ecosystem, and comparatively little depends directly on scalaz at this point (beyond what looks like a large number of compatibility submodules). This is telling, because it means that scalaz no longer occupies a central position in the future of the Scala ecosystem, as it is not a foundational dependency of the current versions of most other things in the build. This speaks to what the future is likely to look like, and also the present reality of the ecosystem.

Of course, non-ecosystem (i.e. commercial) projects tend to lag significantly behind the broader ecosystem in several ways and for many reasons, and so I expect scalaz will continue to be a very important foundational project (particularly for older codebases) for the immediate and likely midterm future. This doesn’t necessarily imply value to the community build though, since commercial projects also tend to lag behind on Scala versions, and really their versions of everything. There’s comparatively limited value in the community build catering to the needs of these projects when doing so comes at a cost.

The final point would be whether or not scalaz and zio are uniquely positioned to stress corner cases in the compiler in ways that other projects are not. I’m unfamiliar with zio’s codebase, but I am intimately familiar with scalaz’s and how it interacts with the compiler and its various corner cases over the years, and honestly I doubt that it’s exercising anything that other projects aren’t already hitting. Scalaz used to be really the state of the art in pushing the Scala compiler (at least among non-Shapless projects), but it really isn’t that anymore. Arguably Scalaz 8 fits that description, but mainline stable scalaz (7.2 and arguably 7.3) most definitely do not. And why would they? Because of the central position that scalaz used to hold within the ecosystem, it remains fairly shackled to compatibility with older techniques, older APIs (such as Unapply), older ideas (such as scalaz.effect.IO), and such. That’s not scalaz’s fault, it’s just what happens when a framework ages. There’s nothing particularly novel in scalaz 7.x anymore (because all the major ideas have become ubiquitous in other projects!), and thus from a purely regression testing standpoint, it is almost certainly redundant with other things.

One way to look at this: if scalaz were not previously a member of the community build, would it be a serious candidate to be added today? The answer to this is likely “no”, even on purely technical grounds.

ZIO possibly has a much stronger claim here. I simply cannot speak to it.

Summing it all up… Presence in the community build is not a right. It is not free (for Lightbend) on several dimensions. As with all things, it is a value tradeoff with a lot of subjective and objective factors. It appears the value tradeoff is no longer worth it to Adriaan, Seth, and others. Whether that is due to the CoC (or lack thereof), past/present community issues, technical position within the ecosystem, or even just a synthesis of all of the above doesn’t really matter, and those of us on the outside are not in a position to judge.

69 Likes

Well said @djspiewak. Also we know from Adriaan’s comments it was in part due to scalaz members continued hostility that the project was removed which is completely understandable.

@SethTisue and @adriaanm thanks for all your hard work in maintaining Scala! It is a wonderful ecosystem that I’m glad to be able to use everyday. :grinning:

10 Likes

I’ve created an account here just to fave this :grinning:

7 Likes

First time poster here.

This action feels to me arbitrary. If there are private interactions behind this, reacting to them in this very public way is toxic for the whole community, as this thread evidences.

I love Scala and feel thankful to all the people putting their hard work in the ecosystem. But when I read about this happening, the feeling of being part of the Scala world changes from pride into shame.

@Sciss I find your comment directing one time posters to Reddit or Twitter offensive. Why do you think one time posters’ voices have no place here?

9 Likes

At our company our customer support team does not have to talk with anyone who is mistreating them. They can simply hang up. It is awesome. It is how you deal with toxic people. You just simply stop. It is absolutely beneficial for the whole community. :peace_symbol:

5 Likes

“And all the one time posters can return to Reddit and Twitter” - Sciss

The idea that the measure of usefulness of one’s opinion can be quantified in the number of “posts” to a discussion board speaks volumes of the culture being cultivated within the community, especially if posts like that actually count towards said measure.

I have never posted previously. I have never needed to, everything was fine; and I felt that decisions were being made on technical merit, and also that those in decision making positions made the effort to elaborate on the decision making process for the good of the community.

There has obviously been some nasty politics in the past. I don’t know the players, nor do I support any side. I am not (currently) a Scalaz user. I have contributed actual personal time towards maintenance and features of many projects within the Scala ecosystem, including those maintained by Typesafe/Lightbend/Scala Centre etc. I am invested in the Scala ecosystem. Its future affects me, and incidents like these are concerning - not necessarily the removal of Scalaz if warranted, but the push-back on a courteous request for clarification, and seeming lack of general transparency.

The idea that I should open a Reddit account (yes I am not a member) to be involved in the discussion in itself is laughable.

8 Likes

Dear @djspiewak:

I fully agree with the core points of your lengthy response.

Before this conversation began, that was my first impression of it and all I knew about it. However, much as I respect this decision, I do not fully understand it, and regret it a bit. Removing a project, Scalaz, that some books cite as advanced Scala, surely devalues the community build a bit. And lowering coverage, even of a tiny section of the set of public libraries, is not a good move for a regression test suite.

I would also add, in a completely hypothetical manner, that if a library maintainers acted, wrote, or spoke in an uncourteous or unfriendly manner to those who volunteer the effort to the community build, then they no longer deserve their good will.

To sum up: I fully agree Adriaan and Seth owe explanations to no one but their employer. I just cannot see it as a good move.

One more thing: it may be useful, to avoid confusion, if the Github project of the so-called community-build would state on its README, clearly enough, who owns, runs and maintains that community build, on whose behalf, and for what.

6 Likes

Daniel, thank you so much for your message. This truly means a lot to me and the team. You’ve captured the trade offs and the reasoning perfectly – I only wish I had done the same right away.

21 Likes

Thanks Daniel for this thoughtful post.
For Lightbend Scala team it is part of the 9-to-5.

6 Likes

Your points are all reasonable.

I personally wish I had time to contribute to what is by far my most favorite language.

I do not have the time to pay attention to the politics. Its difficult enough to keep up with technology. Without getting too much into my personal life making time for lunch can be difficult with 5 people messaging you at once during the work week.

I was browsing the internet just relaxing and came across this. I don’t personally use Scalaz and stick to core Scala for many reasons for internal projects, mostly technical, and especially debt.

But I do pay attention to the community build, as do many other Scala developers I’m sure. It ensures quality of the eco system.

After stumbling upon this decision and no real context provided here or on Github you might see for someone like myself that my first impression is “whoa”. There is no information anywhere on the details of why the decision was made. Its all very cryptic and vague.

Some googling has shed some light, but its more like a pin hole in a sheet of paper kind of light. On the surface it looks like a bunch of back and forth with no progress and what appears (on the surface) to be an irrational decision based on emotion.

And without that information I would imagine that anyone like myself is going to have the same impression.

8 Likes

It just splits scala-community to two scala-communities.

2 Likes

Would it help to resolve tensions if we renamed it from “Community Build” to “Lightbend Build”?

10 Likes

This is a very disappointing thread to read.

I enjoy using Scala, including wonderful libraries like Scalaz. Scalaz has over 4k stars. That is over 4 thousand people that have not only used the library, but found it helpful enough to promote it.

For this thread to exist means that all of those community members have been pulled into a political ailment between very few people. It’s not dissimilar to world leaders engaging in wars that only they care about.

Most of us just want a healthy ecosystem of tools and a libraries to use for solving problems. The community builds is an excellent addition. And i appreciate the maintainers and their contributions to provide it. But to sit here and make such a wide reaching decision over private messages between a select few people seems incredibly harmful to the language.

This has been, by far, the most disappointing part of being a scala developer. It seems that every technical decision for the ecosystem is driven by grudges and favoritism.

I dont think either side is right here. But to simply exclude over 4 thousand community members due to a political divergence is just short sighted.

I encourage all parties involved to work towards the best ecosystem that we can provide. That will improve every scala developer’s quality of life.

10 Likes

And all the one time posters can return to Reddit and Twitter, thank you.

This exact statement and phrasing seems to be the root of the problem no?

Everyone showing up here is confused and wants to know what is going on. Its people that care.

I don’t know you or care to if that is how you feel about those of us showing up because we care.

6 Likes

That’s not really a good comparison, as hanging up on someone is a private action. This was public.

I’m not sure if it’ll help the tension, but it would certainly help set the correct expectations.

1 Like

I’m not sure I understand the analogy. Could you please explain?

@morgen-peschke Continuing the comparison, if a company’s employees continue to harass us then we stop doing business with the whole company. As far as public this was actually done as nonchalantly as possible, they literally did not want to make a big deal about it.

@rpiaggio If any one person or team or project is constantly bringing down the whole vibe, being negative, harassing, rude, etc then it is absolutely positive for the community to no longer work with them or in this case provide a community build.