Minutes of the 18th meeting of the Scala Center, Q3 2020

Minutes are archived on the Scala Center website.

Summary

The following agenda was distributed to attendees: agenda.

Scala Center activities for the past quarter focused on MOOCs, Scala 3, Scala 3 migration guide and tooling, TASTy reader, Metals, Scala Native, Scala.js, BSP in sbt, debugger support, dependency management in sbt, blog posts, communication via Discourse, and ongoing hiring and team-building and training.

Staffing changes: Ergys Dona has left the Center and is doing PhD work at LAMP. Three engineers have joined the Center full time: Wojciech Mazur joined in July and is working on Scala Native; Vincenzo Bazzucchi joined in September and is working mainly on education; Fengyun Liu joined in October and is working mainly on Scala 3. A student, Katja Goltsova, is now working part time on Scala 3.

More details on all this are in Darja’s report on the Center’s overall progress, Seb’s report on technical activities, and Adrien’s report on the Scala 3 migration guide.

One proposal was discussed:

  • SCP-025: Use of Inclusive Language (Daniela Sfregola, Morgan Stanley)

The proposal was voted on and accepted.

Date, Time and Location

The meeting took place virtually on Wednesday, October 28, 2020 at 4:00pm (UTC).

Minutes were taken by Seth Tisue (secretary).

Attendees

Officers:

  • Adriaan Moors (chairperson)
    • also board member, representing Lightbend
  • Darja Jovanovic (executive director), EPFL
  • Sébastien Doeraene (technical director), EPFL
  • Martin Odersky (technical advisor), EPFL
  • Seth Tisue (secretary), Lightbend

Board members:

  • Ólafur Páll Geirsson, Twitter
  • Graham Griffiths, Goldman Sachs
  • Chris Kipp, Lunatech
  • Rebecca Marks, 47 Degrees
  • Rob Norris, community/Typelevel
  • Filipe Regadas, Spotify
  • Krzysztof Romanowski, VirtusLab
  • Daniela Sfregola, Morgan Stanley
  • Bill Venners, community/Artima

Guests:

  • Adrien Piquerez, Scala Center

Apologies: none. Full house!

Proceedings

Adriaan Moors of Lightbend chaired the meeting for the first time. He began by introducing Daniela Sfregola, who is now representing Morgan Stanley, and Rebecca Marks, who is now representing 47 Degrees.

Activities reports

Darja, Seb, and Adrien summarized Scala Center activities since the last meeting.

Their remarks were largely based on their reports:

The following notes do not repeat the content of the reports, but only supplement them.

Darja especially highlighted the growth of the team. The Center now has 13 people, plus Martin, plus contractors, and is working closely with multiple outside partners as well.

Several of the projects Seb highlighted are also described in recent blog posts on the Scala site, some of which weren’t published until after the meeting:

Rob asked about BSP support in sbt: “Does it fix the issue where IntelliJ’s type checker disagrees with scalac’s type checker?” Seb: “It does, but you have to ask IntelliJ to use the errors that come through BSP”, you have to flip a switch.

Rebecca asked about the new sbt dependency management plugins; will they be available for older versions of sbt? Seb: “If by older versions you mean 0.13, no.” Their intent is to support 1.2 onwards; testing might not in place for 1.2 and 1.3, but bug reports on that would be addressed.

Chris asked about these plugins, also: “Are they tightly coupled to sbt? Is there logic that other build tools could use and benefit from?” Seb: “The plugins are mainly glue. The logic they implement is not deep or complicated. For other build tools, you might as well just re-implement the same logic.”

Chris also asked: now that sbt supports BSP directly, “What is the future of Bloop, what is the Center’s vision for Bloop?” Bloop wasn’t mentioned in the Center’s recent updates. Seb began by explaining the technical tradeoffs between the two solutions, as follows: “There are still disadvantages of using sbt’s direct BSP support. Bloop makes different tradeoffs. Bloop is sometimes faster; Bloop shares a compiler and JVM between projects. But Bloop’s model is simpler than sbt’s. If your build is not too complex for Bloop to handle well, it’s probably better to still use Bloop. If your build relies on source generators, for example, or otherwise customizes its task graph, so that Bloop’s projection isn’t accurate enough, then using sbt’s BSP support has a huge advantage.”

What, then, is Bloop’s future? Seb: “We’ll keep maintaining Bloop. We recently assigned Tomasz Godzik from VirtusLab as the Center’s official Bloop maintainer. There are no plans to drop Bloop. We will keep having it and keep maintaining it.” Chris: “So will it be just maintenance, or active development?” Darja stepped in, thanked Chris for raising these questions, and said: “It’s hard to answer, it’s not black and white. With Bloop, it is very important to say that it was one person’s project, one person’s vision,” but then Jorge left, and he has also since become less available either for day-to-day involvement or to foster a community around it. “So after almost a year of trying to figure this out, the Center stepped in and became more involved again,” but “We will not lay down any kind of milestone plan like we did for other projects this quarter,” there is too much else going on.

Filipe (from Spotify, filling in for Julien Tournay at this meeting): “When do you expect the sbt dependency management plugins to be released?” Seb: “A few weeks.”

After Adrien presented his report on the Scala 3 Migration Guide, Rob asked: “When will this be publicized? It looks extremely useful already.” Adrien: “We definitely want community feedback.” Darja: “I am asking everyone in this meeting to help spread the word. We weren’t ready before,” but now is the time. There is a nuance: most users won’t actually be migrating until Scala 3.0.0-RC1 is out, but for those are who migrating early, yes, feedback on the migration guide is highly encouraged, and help publicizing that is welcome, as long as everyone understands that the entire migration picture isn’t completely in place yet.

Seth said he already found the guide very useful in its current state. Rob: “So can I tweet it, or not?” Seth: “I already tweeted it just now,” so that’s a yes.

Filipe: “The guide looks great, it’s beautiful,” but the connection to the Scala 3 example project could be improved. Adrien: yes, we’ll do that.

Martin asked: “You mentioned 100 libraries have been published for Scala 3. How did you come up with that number?” Adrien: “Scaladex.”

Adriaan asked Darja if the Center wants beta testers for the new MOOC. Darja said yes, “if you know anyone who is interested,” have them contact me.

Financial report

This was presented by Darja. Her report includes details, but in short: an anonymous donor is supporting work on Scala Native. Q1 and Q2 MOOC income was roughly steady; Q3 and Q4 numbers are not in yet. Board membership was stable this quarter. Two new board members will be needed to maintain the current staffing level; Darja intends to focus on this.

Community feedback

Bill, bobbing up and down as he walked on a treadmill, raised two topics.

First, “What is the latest estimate for when the Scala 3 release candidate is coming, and when the final release will happen?” Martin: “The plan is to have a first RC out before Christmas. After that, the usual RC process is bugfixes only, no more features.” Bill: “How long did it usually take for Scala 2 major versions to get from a first RC to final?” Adriaan: “We try for six weeks, but it sometimes takes longer.” Seth concurred.

Second, a suggestion: “I think it’s important, in the communication around the release, not to only emphasize changes and features. That can scare people a little. To make people feel comfortable, emphasize benefits, and also emphasize the enormous work and care that has gone into helping people migrate. All that work has been done, and it needs to be communicated. Really emphasize: here’s how we are helping you migrate.” Martin: “Good point, thank you.” Darja: “Agreed.” Darja also mentioned that 47 Degrees will be helping the Center with marketing.

Rob: “I don’t have anything specific this time, but I want to say that I’m really happy with what I’m seeing, it’s really exciting that everything seems to be coming together really well. I see a lot of library authors working really hard to get the ecosystem going for Scala 3. Congratulations.”

Proposals

SCP-025: Use of Inclusive Language

The proposal was submitted by Daniela Sfregola of Morgan Stanley.

Daniela summarized the motivation for the proposal as follows: “Words that we use do matter. As a community, we want to make sure that our commmunity is as inclusive as possible. [But] as technologists sometimes we use terms that carry negative connotations of oppression and discrimination.” The proposal seeks to discourage that in the Center’s own activities and in the wider community.

Seb explained to the board that the initial version of the proposal prompted some discussion in the advisory board repository and internally at the Center and as a result, the proposal was revised to be clear that the Center’s won’t be “knocking on people’s doors” requesting changes, but rather publishing recommendations and hoping they would be adopted.

Seb also said there was some uncertainty and discussion internally about what the specifics of the guidelines would look like. Seth: “I would expect that there are resources out there already” that the Center could adopt, rather than having to invent? Seb: “Yes, of course” they’ve done some research on that and will do more if the proposal is accepted. Darja added that any recommendations might also evolve over time.

Ólafur brought up an example of problematic terminology in Scala.js. Seb explained that renaming is hard because of binary compatibility concerns. How to proceed is under discussion here. Seb: “What we can do is comment the method: ‘For historical reasons, …’”, something like that. This kind of solution is “something that other communities and projects have had to accept.”

Several board members expressed interest (for themselves, and for others at their companies) in helping develop and provide feedback on any recommendations.

Voting: The proposal was accepted by unanimous vote.

Conclusion

No “other business” topics were raised.

Adriaan suggested that we move the next meeting to January instead of trying for December, because of the holidays; Darja agreed; there were no objections.