Minutes of the 16th meeting of the Scala Center, Q1 2020

Minutes are archived on the Scala Center website.

Summary

The following agenda was distributed to attendees: agenda.

The Center has hired three new full-time engineers: Ergys Dona, Meriam Lachkar, Adrien Piquerez.

Board changes: Lunatech is now represented by Chris Kipp; Goldman Sachs is now represented by Graham Griffiths and Alex Hurst.

Scala Center activities for the past quarter focused on the developer’s survey (there were 4,000 responses), MOOCs, the Scala Book, coursier, JSR-45 (debugger support), Scaladex, Metals, TASTy Reader for Scala 2, Zinc improvements, Scala Native, Scala.js, scalajs-bundler, Webpack plugin for Scala.js, compiling Java to the Scala.js IR, internal training for new engineers, conferences (Scala Days, F(by))), an Open Source Spree in Bern, a SIP Retreat in Lausanne, and an online Organizers Summit (in response to Covid-19).

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

One proposal was discussed:

  • SCP-023: Build Server Protocol support for sbt (Bill Venners, Justin Kaeser)

The proposal was voted on and accepted.

Other topics discussed included Darja’s plans for the Center for the next year, and a new proposal from 47 Degrees for the Center to lead a diversity initiative.

Date, Time and Location

The meeting took place virtually on Friday, March 27, 2020 at 3:00pm (UTC).

Minutes were taken by Seth Tisue (secretary).

Attendees

Officers:

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

Board members:

  • Chris Kipp, Lunatech
  • James Belsey, Morgan Stanley
  • Oli Makhasoeva, 47 Degrees
  • Adriaan Moors, Lightbend
  • Rob Norris, community/Typelevel
  • Graham Griffiths / Alex Hurst, Goldman Sachs
  • Krzysztof Romanowski, VirtusLab
  • Julien Tournay, Spotify
  • Bill Venners, community/Artima

Guests:

  • Ólafur Geirsson, Twitter

Apologies:

  • Thomas Gawlitza, SAP

Proceedings

Stu introduced the meeting, took roll call, and had Chris (the new Lunatech representative) introduce himself.

Activities report

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

Most of their remarks were based on the detailed report on the Center’s recent activities. The following notes are a supplement to the report.

Graham asked when the JSR-45 (debugger support) work might become available for use in IDEs. Seb said that “it’s a compiler feature” (emitting additional information), so the Center’s role is to add that feature, and then IDE maintainers will be responsible to add support themselves, but since (for example) IntelliJ already supports JSR-45 for Java, so perhaps it will work there “immediately” once the compiler feature ships.

Seth commented that the Scala Book contributed by Alvin Alexander, is rarely mentioned on Gitter, on Discourse, and so forth, when people are recommending books for beginners. He suggested that (perhaps after Meriam’s work on the book is done) the book could use a fresh round of publicity. Seb said that’s in the plans, yes.

Darja noted that the Center’s activities are increasingly being impacted by COVID-19. Training and orientation for new engineers only just barely completed before EPFL canceled in-person gatherings. The two student projects mentioned in the technical report may not be able to go forward, depending on how EPFL decides to handle the situation. Scala Days Seattle has been postponed until 2021 and Scala Days Berlin’s future is uncertain. Attendance at the SIP Retreat was reduced; see minutes. Darja organized an online Organizers Summit to help conference and meetup organizers navigate the new conditions.

Financial report

This was presented by Seb.

The board still has eight members. Since the Center was understaffed for a while, the budget has “a bit of runway” for paying engineers; the new engineers can be supported for “more than a year” before a additional board members may be needed to cover payroll.

Financial results for the MOOCs for Q3 and Q4 2019 arrived by email literally as Seb was speaking. He said that “at first glance” they appeared “typical”, “the usual” (that is, supporting two engineers).

Director’s report

Darja then presented remarks about the future of the Center, based in large part on what she learned from the one-on-one meetings she has had with (nearly) all of the board members since January. She asked them what the Center’s strengths have been so far, and what the Center should focus on improving under her directorship.

She presented based on slides. The following notes are a supplement to the slides.

Under the heading of “team expansion”, she mentioned the possibility of hopefully adding someone “in house” to handle communication and publicity (since Darja herself is now director and not communication manager anymore).

With regards to the Center’s involvement with Scala 3, she described Scala 3 as the Center’s “five year mission”, not exclusively of course, but in large part. She promised to go into more detail about Scala 3 plans at the next meeting.

The next topic was funding. Darja emphasizes that the Center seeks to “make a bigger impact” not only by raising more money to hire. “We are shifting towards engaging more with companies and the community so we can leverage this network to help with projects.” But direct funding remains important as well, of course. As for changes to the funding rules, it seems that the board is willing but is waiting for the Center to make a concrete proposal (in consultation with EPFL’s legal team).

A board member pointed out that COVID-19 may cause companies to have less budget this year. “We might have more success in asking for engineering time than money” this year, Martin speculated.

Community feedback

Neither Bill nor Rob had community feedback they wanted to raise, other than the BSP proposal.

Proposals

SCP-023: Build Server Protocol support for sbt

Proposed by Bill Venners, community representative. The proposal itself was initially drafted by Justin Kaeser of JetBrains.

There was already a fair amount of discussion about the proposal on the original pull request. Note that the actual final form of the proposal came in a followup PR.

Bill described the basic motivation of the proposal as “improving the experience of using sbt with IDEs”. He summarized the discussion as “everyone agrees it’s a good idea, not everyone agrees about how to do it”, or how the work would be divided between the Scala Center and sbt’s primary maintainers at Lightbend. And “where should Bloop be” in this, is one of the questions.

Seb: “IDEs really want a declarative state of a project, so they can load it up in the IDE, but sbt is inherently very dynamic, with its own reactive programming paradigm”, the sbt task graph. “It’s very hard to reconcile these paradigms.” IDEs extract a “static view” of an sbt build, but it’s just “the static view at one particular point at time, and a limited one at that”. So then there are failure modes involving generated sources, postprocessing of bytecode, “all kinds of weird things you can do in an sbt build that a static view of the world” doesn’t account for. Also “IDEs don’t like blocking” but sbt’s task graph is blocking.

Seb emphasized that the Center doesn’t currently have any in-house expertise on sbt’s internals, so taking on this task would acquire substantial ramp-up. Martin seconded these remarks; he is “hesitant” to see the Center to invest in specific build tools (such as sbt as opposed to, for example, mill), when it could “stay neutral”.

Stu asked Adriaan directly for Lightbend’s stance; Adriaan confirmed that Lightbend still does not intend to take this task on.

Bill: so this is a “hot potato”, apparently.

Stu invited Olaf to speak. Olaf: “I think this proposal could have a huge positive impact for the community. The numbers from the developers survey show that, like it or not, by far the majority of professional Scala developers are using sbt,” and the problems Seb mentioned are “daily pain points” for them. “So here’s what I would propose: the Center has access to expertise to finish the remaining offloading of compiles with the sbt-bloop plugin. This work was already done by the Scala Center when Jorge was around. This implementation is to the best of my knowledge, working already.” So Olaf suggested timeboxing the project to less than one quarter, and see if that’s “sufficient to solve the pain points”.

Before voting, there was a question about whether VirtusLab yet has formal standing to vote, because the necessary changes to the membership contract are still pending. But in the end, the outcome was decisive enough that it didn’t matter.

Voting: The proposal is accepted, with six board members in favor.

Other business

Diversity proposal

Oli from 47 Degrees put a new proposal up for discussion.

Oli: “It’s a diversity proposal, to create a sub-brand at the Scala Center for improving the situation with diversity” in the Scala community. The list of suggestions in the proposal “is not a complete list of possible actions, but it’s something to start with.”

Several board members spoke up in support, but the proposal is too new for the Center and the board to have considered any details yet. The proposal will become eligible for a formal vote at the next meeting.

Regardless, Stu thought that the Center could still “act in the spirit” of the proposal without waiting, and Darja agreed that “we don’t need to wait” a whole quarter before doing anything, since efforts around diversity are already part of the Center’s “general plan”. But the proposal has some specifics (for example, Oli noted, around creating a specific sub-brand of the Center, with its own logo and website) that would need review and discussion and consideration of logistics before a vote.

The pull request, linked above, remains open for feedback.

Conclusion

Stu raised a question about the process for nominating officers; he asked if it would be acceptable if we handled that via the mailing list, rather than live during a meeting. Seb thought that would be fine, and no objections were raised. (The one-year term as chairperson that Stu volunteered for will be over soon.)

Seb noted that the next meeting would normally be in-person, co-located with Scala Days, but Scala Days Seattle is canceled due to COVID-19 and Scala Days Berlin may end up canceled as well. Stu said, let’s wait and figure it out about a month before the approximate meeting date.