Minutes of the 25th meeting of the Scala Center, Q2 2022

Minutes are archived on the Scala Center website.

Summary

The following agenda was distributed to attendees: agenda.

Center activities for the past quarter focused on extending Martin’s (and the Center’s) time at EPFL, launching the partnership (and new revenue stream) with EPFL’s Extension School, Power Coders, overseeing student projects, in-person meetups, new moderators committee, new SIP committee, the debugging experience, Dependabot-based security alerts for Scala projects on GitHub, Scala website, and the Scala 3 Compiler Academy.

Details are below and in the directors’ activity report:

No new proposals were received this quarter.

Other business discussed included revisions on the refactoring proposal (SCP-027), and community representative nominations.

Date, Time and Location

The meeting took place virtually on Tuesday, June 28, 2022 at 5:00pm (UTC).

Minutes were taken by Seth Tisue (secretary).

Attendees

Officers:

  • Chris Kipp (chairperson)
    • also board member, representing Lunatech
  • Darja Jovanovic (executive director), EPFL
  • Julien Richard-Foy (technical director), EPFL
  • Seth Tisue (secretary), Lightbend

Board members:

  • Maureen Elsberry, 47 Degrees
  • Diego Alonso, 47 Degrees
  • Graham Griffiths, Goldman Sachs
  • Lukas Rytz, Lightbend
  • Daniela Sfregola, Morgan Stanley
  • Claire McGinty, Spotify
  • Michel Davit, Spotify
  • Kellen Dye, Spotify
  • Eugene Yokota, Twitter
  • Krzysztof Romanowski, VirtusLab

(Board members may send multiple representatives to the meeting, but they share a single vote.)

Apologies:

  • Kris Mok, Databricks
  • Martin Odersky (technical advisor), EPFL

Martin was unable to attend because of a scheduling conflict.

Both community-representative seats are temporarily unfilled. (No votes were taken at this meeting.)

Director’s report

This management, financial, and governance report was presented by Darja.

Staff changes: as already announced last meeting, Meriam Lachkar (engineer) has left the Center. Anatolii Kmetiuk (engineer) has joined (coming over from LAMP). Valérie Pedroni (communications) has been promoted from intern to Community and Communication Coordinator (at 60% effort).

Current staffing levels: 6 engineers, 1 system administrator, 1 community/communication, 2 administration/management.

The Center is also overseeing student work: currently, four Google Summer of Code projects and six semester projects at EPFL.

Financial report: the situation is “on track”, there is “no major change” since last time. The Center is not currently hiring.

Darja announced that Martin is staying at EPFL another 6 years. (The required approval from the university was obtained.) This means the Center can also stay at EPFL for that long.

Martin was also recently awarded an Advanced Grant from the Swiss National Science Foundation (SNSF) to support research, including funding for graduate students. He has tweeted some information about the grant. Note also that the grant includes support for Scala Native.

At the last meeting it was mentioned that the Center was working with EPFL’s Extension School to add paid individualized support from Center engineers to the Center’s “Effective Programming in Scala” MOOC. This has now launched; see blog post. This is a new revenue stream for the Center.

As also mentioned last meeting, the Center is working with Power Coders, a non-profit, to offer technical training and job-search assistance to refugees (from Ukraine and elsewhere).

With the pandemic situation eased somewhat, the Center has resumed participation in in-person events. So far, Center engineers have joined meetup events in Lausanne and Zürich and events in Paris, Milano, and more are coming.

The new Compiler Academy project, led by Anatolii, has begun publishing videos about Scala 3 compiler internals on their YouTube channel. The Scala 3 compiler “issue sprees” are continuing, also.

On the governance front:

Adam Goodman’s time consulting for the Center has ended for now (as of May 30), but the Center intends to re-engage with him in the future, after the Center has “put in motion more of the things we have learned”.

So far, two committees have formed: the moderators committee and the new SIP (Scala Improvement Process) committee. More committees and projects will launch in Q3 and Q4.

The moderators committee has met once so far to discuss plans. An internal training for moderators is planned for September.

Darja shared information about the new SIP committee and revised process, including the list of initial committee members. The same ground that she covered has since been made public in a blog post on the Scala website.

A board member asked if the Center will introduce a concept of formal “membership” in the Scala community. Darja said perhaps, but it won’t be considered until later.

Another board member asked about diversity (gender and otherwise) on the SIP committee. Darja noted that the new committee has more diverse backgrounds and concerns than in the past, but the initial membership obviously isn’t diverse in other respects. She emphasized that this was despite the Center’s conscious efforts. (For example, some candidates were considered but weren’t available, in some cases because they are already busy with other boards and committees.) The committee membership will rotate more frequently than in the past, and the Center’s efforts to increase diversity on the committee will continue.

Technical report

Julien summarized Scala Center activities since the last meeting.

His remarks were based on the Center’s quarterly activity report:

And the Center’s Q3 roadmap:

The following notes do not repeat the content of the report and roadmap, but only supplement them.

The roadmap is detailed, but centers on these four big goals:

  • Polish the developer experience
  • Improve the newcomers’ experience
  • Grow the community
  • Ensure up-to-date and resilient infrastructure

A blog post is forthcoming about the in-progress collaboration with the Dependabot team at GitHub to support security alerts for sbt projects.

A board member asked about overlap between the Dependabot project and Scala Steward, which sends dependency update pull requests to Scala OSS repos. Julien said “there is some overlap” for now. Another board member asked whether the Dependabot work is sbt-specific or whether it’s based on a library that other build tools could use. Julien said it is sbt-specific for now.

A board member asked about the Center’s plans for bringing more of the library ecosystem (including web frameworks), user base, and job market over to Scala 3. Julien said there are multiple factors in play here, but migration of macros is one factor still causing slowdowns. He said the Center’s own focus remains on improving tooling and documentation.

The board member also asked whether the refugees the Center is working with through Power Coders are being trained on 2 or 3, and whether the website work is too focused on 3. Julien said “I really believe that when you learn Scala 3 you are not going to be lost if you have to use Scala 2” on the job.

Krzysztof mentioned that VirtusLab has some availability to help some core libraries, for example akka-http and sangria, migrate their macros, and he invited board members to let them know if they think specific core libraries are blocking ecosystem migrations and could use assistance.

A board member asked about forward compatibility for Scala 3 versions. For example, should libraries continue supporting Scala 3.0, or move on to 3.1? Julien said that new recommendations in this area are forthcoming, including introducing a concept of LTS (“long term support”) Scala versions.

Scala 2 report

This was presented by Seth.

Scala 2.12.16 came out and seems to have been well received. The change list is modest and focuses on compatibility with recent JDK versions (15 through 19).

2.12.16 does include one regression that was discovered after the artifacts were published. Only mixed compilation of Scala and Java source files together is affected, and only when the Scala code contains references to certain inner classes in the Java sources. The problem manifests as a compile-time type error. The release notes links to details and workaround information. The Lightbend team has already fixed the problem, for release with Scala 2.12.17 in 2 to 3 months.

The team had initially planned to release 2.13.9 at around the same time but decided to wait until Scala 3.2 comes out, so 2.13.9 can include TASTy reader changes to support 3.2, which could be released as soon as late July.

The following forum threads can be used to discuss release contents and timing:

Proposals

SCP-027: Refactoring

This proposal from Twitter was originally submitted last November and has been through several rounds of discussion and revision since then.

As suggested last meeting, a working group was created was to refine the proposal, consisting of Eugene, Krzysztof, Seb, Julien, Adrien Piquerez, and Tomasz Godzik. The group met in May and based on the discussion, Julien submitted a pull request with revisions and prepared a summary of the changes.

In that summary, Julien writes: “In essence, the solution that emerged from the discussion is to rely on Scalafix to implement the refactorings at the project level, and to implement a tool to ‘drive’ Scalafix to apply the refactorings in all the desired projects.”

The estimate of effort required is 1-2 developer months. It’s expected that most of the work will be done by the Metals team.

Other business

Community representatives

Chris urged the board to submit nominations, so that the seats can be filled before the next meeting. He noted that nominations needn’t be cleared with the nominees in advance; making sure they’re willing can come later.

One board member noted the absence of in-person events during the pandemic has made it difficult for us to get to know community people well enough. (Regardless, we need to proceed with the knowledge we have.)

Board members also noted that the community reps needn’t have such a long and visible history with Scala as past reps have had; the pool of such people is too small and not very diverse.

Conclusion

We aim to hold the next meeting in September. It should include the annual election of officers.