Minutes of the 13th meeting of the Scala Center, Q2 2019

Minutes are archived on the Scala Center website.

Summary

The following agenda was distributed to attendees: agenda.

VirtusLab has joined the Scala Center as an affiliate “contributor” member. Their recent open source contributions have been focused on Metals and Bloop.

Jon Pretty announced that he would not stand for re-election as chairperson. For this meeting, Seth Tisue served as acting chairperson. Stu Hood from Twitter agreed to serve as chairperson for a single year, under the assumption that we will now rotate the position annually.

Martin Odersky was re-elected as technical advisor. Seth Tisue was re-elected as secretary.

Olafur has left the Center; a new hire, James Thompson, begins soon. There is still one open engineering position.

Scala Center activities for the past quarter focused on MOOCs, Scala 2.13 collections, Scala.js, Metals, Bloop, Coursier, Almond, Scala Days, SIP meetings, and a Scala open source spree.

Full details on these activities are in Sébastien’s report.

No new proposals were made this quarter, but there was discussion about possible future proposals around diversity, outline compilation, the library ecosystem, and Scala 3 migration.

Date, Time and Location

The meeting took place at the SwissTech Convention Center in Lausanne on Tuesday, June 19, 2019 at 2:00pm (UTC), shortly before the start of Scala Days 2019 in the same building.

Most attendees were present in person, but several participated virtually via conference call.

Minutes were taken by Seth Tisue (secretary) with the aid of Rob Norris.

Attendees

Officers:

  • Sébastien Doeraene (director), EPFL
  • Martin Odersky (technical advisor), EPFL
  • Seth Tisue (secretary and acting chairperson), Lightbend

Board members present physically:

  • Stu Hood, Twitter
  • Rob Norris, community/Typelevel
  • Oli Makhasoeva, 47 Degrees
  • Adriaan Moors, Lightbend
  • Bill Venners, community/Artima

Lukas Rytz was also present on behalf of Lightbend, since Adriaan had to leave the meeting early.

Board members present virtually:

  • James Belsey, Morgan Stanley
  • Jonathan Perry, Goldman Sachs
  • Julien Tournay, Spotify

Apologies:

  • Thomas Gawlitza, SAP
  • Frederick Reiss, IBM

Proceedings

In Jon Pretty’s absence, Seth Tisue conducted the meeting as acting chairperson.

Activities

As the Center’s Executive Director, Sébastien Doeraene summarized Scala Center activities since the last meeting.

Most of Seb’s remarks were based on his detailed report on the Center’s recent activities. The following notes are a supplement to Sébastien’s report.

In reference to scala-js-bundler now supporting Scala.js 1.x, Seb mentioned that this had been a blocker for many users who wanted to try Scala.js 1.x; now they can.

He credited VirtusLab with some of the recent improvements to Metals. (As mentioned above, VirtusLab has now joined the Center as an affiliate “contributor” member.)

In reference to Coursier, Seth mentioned that sbt 1.3 has reached the release-candidate stage and uses Coursier as its default dependency retriever (instead of Ivy). Martin said he had heard sbt 1.3 is faster than previous versions, and asked if that’s due to Coursier. (Seth said yes, but only in part, there were other performance-related changes as well. Also, 1.3 has a “turbo mode”, but it isn’t enabled by default yet, since it needs more testing.)

Stu mentioned that Twitter is now evaluating Metals for possible adoption internally. They’re also looking into whether Pants should support BSP (in order to interoperate with Metals and IntelliJ).

Seth mentioned that he’ll be discussing with Jorge soon whether Bloop could be useful as a new partial basis for the Scala community build, by providing support for multiple build tools, for example Mill and Maven. (The community build is currently sbt-only.)

Julien asked if there was news about Spotify’s accepted proposal SCP-020, about improving support for resolving dependency conflicts in sbt. “Not really,” said Seb, but he promised to push on it soon and have news next time.

Financial report

The Center’s financial situation is the same as last quarter, said Seb. There are no new earning figures for the MOOCs to report yet. Seb will report on that at the next meeting, but he said that he believes the figures will be “the same as usual”.

As for staffing:

Olafur is leaving at the end of June. In addition to getting Metals 0.5 out, he has been focusing on transferring his knowledge to VirtusLab. (He later tweeted that he has accepted a position at Twitter and will continue working on Scala tooling.)

The Center has nearly finalized hiring a new engineer named James Thompson. James is expected to begin work in August. But, that will still leave the Center one engineer short.

Stu asked what James will work on. Seb said they think the work on TASTy will be a good fit, given James interest and background in compilers.

Election of officers

Three positions are up for election: chairperson, secretary, and technical advisor.

For technical advisor, Martin agreed to serve again, and Seth agreed to serve again as secretary. There were no other nominations, so both were re-elected.

For chairperson, there were no candidates or nominations in the few weeks since Jon stepped down. In the absence of an obvious replacement for Jon, there was some discussion about what the position involves. Seb asked if they should put out a call to the community, or someone in the room was interested.

“Can it be anybody?”, asked Bill. “In theory”, said Seb; it could even be someone who is also filling another role.

Seb suggested looking within the board, but under the assumption that the position would rotate every year. Jon did it for three years, but if we rotated it annually, then no one volunter would be burdened too much.

The chair’s main responsibilities are organizing and leading the meetings and handling incoming proposals.

Martin asked if Darja would be an appropriate choice. Seb said they collectively agreed that it would be preferable and more appropriate to have someone from outside, not someone from within the Center itself. (But Martin pointed out that Darja could help more with logistics, to make the chair’s job easier. And Seth added that he, as secretary, can also help with recordkeeping and logitics.)

Seth asked if the chair was expected to be involved in fundraising, including recruiting new board members. Seb said that Jon’s activities on that were of course appreciated, but it’s not necessarily part of the job.

After some further discussion, Stu agreed to stand for the position, to begin the annual rotation. There were no objections or other nominations.

Community feedback

Since the last meeting, Bill and Rob spent some time investigating and discussing community issues, prompted in part by the recent removal of some projects from the Scala community build on code-of-conduct grounds.

Shortly, in advance of the meeting, they provided the board with the following statement, as a basis for discussion:

Scala’s un-opinionated design and fusion of OO and functional programming has attracted people with diverse backgrounds and perspectives. But that doesn’t mean the online discussions cannot be welcoming and friendly to newcomers. We would like the Scala community to have the reputation of being nice, and we think that moderation is an important tool that people have been too hesitant to use in the past.

  • Online interaction is different than in person because bandwidth is lower.
  • Online communities need moderation.
  • Moderation is an important part of the Scala code of conduct.
  • We think the Scala community should have more active moderation of online forums.
  • Moderators should have wide discretion to make moderation decisions.
  • Moderation is hard, and moderators need support.
  • One reason moderation is hard is that people who are misbehaving online may have made valuable contributions to the Scala community. Nevertheless, such contributions are not a license to misbehave online.
  • We would like to see moderation become an accepted part of the Scala culture.
  • The Scala Center should develop a plan to identify, train, and support moderators for the online forums that the Scala Center manages, with the intent to support the community at large.

Martin asked what forums the Center manages. Seb said that the Center created and continues to host both Discourse instances (https://users.scala-lang.org and https://contributors.scala-lang.org).

The management situation on Gitter (http://gitter.im/scala/scala and other rooms under the Scala organization) is less clear. The rooms predate the creation of the Center, and it’s Lightbend who has been most active in moderating them. Anyone with the “admin bit” on GitHub has moderator powers on Gitter and on GitHub itself of course. That includes more than a few people at both the Center and at Lightbend, but most of those individuals don’t usually choose to involve themselves with moderation.

Although day-to-day chat-room moderation has usually been done by Lightbend, Darja and Seb are available as points of contact if disputes arise. Community members may contact them individually, or via the new Scala-CoC@epfl.ch email address. That address was recently added to the Scala Code of Conduct page. For people who prefer to contact particular individuals, the code also now offers Darja and Seb as individual points of contact, along with Adriaan and Seth.

Bill mentioned that it’s important to provide individual points of contact at conferences as well. Seth suggested that conference organizers should contact Darja for advice on this.

Seb added that since the last time the board discussed moderation, a few meetings ago, the Center created a shared document for moderators to record incidents and actions taken, so that we have documentation.

Stu suggested doing postmorterms after incidents. Lukas thinks we’re already doing better at this since last year, now that we have the moderation log and are discussing moderation more internally.

Stu also asked about training for moderators. Seb said that training is something “we haven’t done” except for Darja, who does have training in this area. We look to her to “steer us”, said Seb. Also, so far the people who have done the most moderation are people who are longtime members of the Scala organization. He said it has sometimes been suggested that we open up moderation to outside people, and he’s still considering whether that should happen. Lukas said that in the recent public discussions about moderation incidents, community members have repeatedly “stepped up” with valuable input.

James asked if there were other organizations or programming languages we should look to as models, or for advice. Rob said the Rust community would be worth looking at, and Bill expressed interest in finding out how Python manages this. Seb said he and Darja had hoped to have a panel on this subject at Scala Days, with representatives from other languages, but they weren’t able to secure suitable participants in time.

Seth observed that chat-room and forum moderation has been “quiet” this year, which is promising. But a notable exception was the discussion about the community build, which became very heated. There were some messages in it thread that were clearly themselves in violation of CoC. Rob observed that it’s especially difficult to moderate such meta-threads; he suggested temporarily locking a thread as a measure to calm down things down. But Seb worries that locking can itself provoke a negative reaction, and Martin observed that you need to let people “let off steam” somehow. It’s a difficult balance to strike. Martin expressed contentment, more or less, with the course of the community build discussion (“I feared much worse”).

Proposals

No proposals were received this quarter.

Other business

Seth asked if anyone wanted to discuss ideas for proposals or discuss status of past proposals.

Oli said that she and her colleagues are working on a proposal about diversity that they hope to present at the next meeting, about “things the Scala Center could do to make our community more diverse.”

Rob is considering ways the Center could “continue development on projects that have fallen off the radar”, or perhaps do something new to address similar goals. He mentioned Scaladex, the Scala Platform Process, and Scalafix.

Martin suggested that the Center could work on using Scalafix to ease migration to Scala 3. Lukas mentioned that Dale Wijnand at Lightbend has done some work in this area in a new repo https://github.com/scala/scala-rewrites, but it’s not an official effort. Lukas also said that Scalafix is missing a central repository of rules. Martin mentioned that some desirable rewrites involving implicit resolution can’t currently be implemented unless Scalafix itself is improved.

Stu mentioned BSP and said that he hopes the Center will continue developing it. Perhaps it could “break out” of the Scala community and gain traction in other languages. And, “We would love for more build tools to support it.”

Seth asked Stu about Twitter’s rsc project. Stu said it is now “very much an outliner” and not a full compiler. They’re pursuing building an outliner with serializable output. They’re still not ready to make a proposal to the Center about it, but they might next time. (James is interested in this as well, and suggested involving Adriaan.)

Conclusion

As usual, the next meeting will be in approximately three months, likely in September, almost certainly held virtually.