Minutes of the 3rd meeting of the Scala Center, Q4 2016

Minutes are archived on the Scala Center website.

Summary

The following agenda was distributed to attendees: agenda.

Morgan Stanley has joined the board. The company was represented at this meeting by James Belsey.

Lars Hupel was ratified as a second community representative on the board.

Scala Center activities for the past quarter included progress on the MOOCs, Scalafix, scalajs-bundler, SIPs, the new Scala Platform Process, Spores, Scala Native, Scastie, Scaladex, hackathons, and a new code of conduct.

The following proposals were voted on and adopted:

  • SCP-007: Collaborative redesign and implementation of Scala 2.13’s collections library
  • SCP-008: Maintain scala-lang, docs.scala-lang, scala.epfl.ch websites
  • SCP-009: Improve user experience for builds that use only direct dependencies

Date, Time and Location

The meeting took place virtually, via UberConference, at 6:00pm (Lausanne time) on Wednesday, November 30, 2016.

Minutes were taken by Seth Tisue (secretary).

Attendees

Attendees present

The following new board members were present:

  • James Belsey, Morgan Stanley
  • Lars Hupel, community/Typelevel

Other board members and officers present:

  • Jeff Olchovy, Tapad
  • Jonathan Perry, Goldman Sachs
  • Adriaan Moors, Lightbend
  • Stu Hood, Twitter
  • Raúl Raja, 47 Degrees
  • Tim Perrett, Verizon
  • Roland Tritsch, Nitro
  • Frederick Reiss, IBM
  • Thomas Gawlitza, SAP
  • Bill Venners, community/Artima

For the Scala Center:

  • Jon Pretty, Propensive
  • Heather Miller, EPFL
  • Martin Odersky, EPFL

Also present:

  • Eugene Burmako, Twitter
  • Seth Tisue, Lightbend

Proceedings

Opening Remarks

As chairperson, Jon Pretty conducted the meeting, made the opening remarks, and asked all participants to introduce themselves, including the following new board members:

  • James Belsey leads an infrastructure group at Morgan Stanley. Their codebase includes about two million lines of Scala.

Also present for the first time:

  • Eugene Burmako is now at Twitter, formerly at EPFL. He attended to help present Twitter’s proposal on dependency handling in the Scala compiler (SCP-009).
  • Lars Hupel is a Ph.D. student and is active in Typelevel, a Scala community organization.

At the last meeting, the board had agreed to invite Erik Osheim from Typelevel to join the board as a second community representative. Erik declined on grounds of insufficient time. Typelevel, after public discussion, proposed Lars Hupel instead.

After the opening remarks, a vote was held on whether to ratify Lars. This was approved unanimously by those voting. (In the interest of time, the vote was cut short once a majority was reached.)

Reports

Scala Center Activities

As Executive Director, Heather Miller summarized Scala Center activities since the last meeting.

Staffing levels at the Scala Center are currently as follows. Julien Richard-Foy, Guillaume Massé, and Jorge Vicente Cantero are full-time; Ólafur Geirsson is at 65% time; Heather is at 20% time.

The Center has been trying to hire an additional engineer, but has not succeeded yet.

Main areas of progress since the last meeting:

  • Ólafur released a first version of Scalafix, a tool for migrating Scala code to new versions of the language, including Dotty; see blog post. This work has also involved contributing to Scalameta.
  • Julien released scalajs-bundler, a new sbt plugin making it easy to use NPM dependencies in a Scala.js project; see blog post.
  • Jorge has continued to push the Scala Improvement Process forward as Process Lead. Regular meetings have been occurring; multiple proposals have been considered; SIP-27 (trailing commas) has been accepted. Jorge has also announced the new Scala Platform Process (SPP), which replaces the old SLIP process; see blog post. An SPP committee of community members is now in place.
  • Jorge released a new version of Spores, with improved support for Java serialization; see blog post.
  • Guillaume has been working on cross-building support for Scala Native. He has also improved Scastie to support different back ends (Scala.js, Dotty, Scala Native) and has added Scaladex integration; see his one minute demo video. Scaladex integration with Sonatype and Coursier is in the works.

On the education and commmunity front:

  • Heather and Julien are still working on the Spark MOOC; it is “very close” to being released.
  • Julien has ported many exercises from the Center’s MOOCs to the Scala Exercises site.
  • Scala Ecosystem Hackathons were held at Scala World, Lambda World, and Scala Exchange.
  • Heather is working on a new Scala Code of Conduct (with Kelley Robinson, Erik Osheim, Stewart Stewart, and Seth Tisue). Also in the works is moving Scala community discussion to two new Discourse sites (for users and contributors).

For more details on all this, see also Heather’s own outline of her presentation.

There was some discussion of the scope of the new Scala Platform Process, including the status of the Scala standard library, including the collections. It’s expected that the collections redesign will be part of the overall Scala 2.13 effort, rather than happening under the SPP. There is still a goal of further modularizing the standard library itself, but it isn’t being worked on yet.

Scala Center Financial Statement

See Heather’s own outline for details and figures on the Center’s financial situation.

Jon asked about the staffing situation at the Center, so before discussing new proposals, the board can be aware what the resource constraints are. Heather says that assuming already promised funds materialize, the Center plans to hire an additional one and a half people. If new members join the advisory board, that number could be higher.

Scala Center Proposals

Jon notes that all proposals made so far have been accepted. He observes that if this continues, the advisory board will undermine its own influence, since if the Center is given more tasks than it can achieve, the power to decide what gets worked on will shift away from the board and towards the Center itself.

The proposals themselves are not summarized here; see the proposal texts in the proposals directory.

Proposal SCP-007: Collaborative redesign and implementation of Scala 2.13’s collections library

proposed by Lightbend, presented by Adriaan Moors

Discussion centered on hiring, given the proposed staffing level of two Scala Center engineers at 80% time each, in addition to work done by Lightbend engineers. Heather emphasized that hiring for this might be difficult given EPFL’s constraints (including below-market salaries). Heather and Martin are exploring possible ways around that but don’t know yet if they will be successful. Martin said he expected to be directly involved personally with this effort and could help mentor a developer at the Center (possibly Julien, said Heather). Jon asked what the minimum possible staffing level would be; Adriaan acknowledged that there is a possible “spectrum of ambition” for this project.

A board member asked about Dotty. Martin said that Dotty planned to continue to use whatever standard library and collections Scala 2 uses, so this work would apply to Dotty as well.

Outcome: Approved, 8 to 4

Proposal SCP-008: Maintain scala-lang, docs.scala-lang, scala.epfl.ch websites

proposed by Lightbend, presented by Seth Tisue

Seth noted that the proposal was put out early for public feedback which yielded good positive feedback and discussion from the community. A major theme of the community feedback was the importance of having the Center not only make website improvements directly, but also support and encourage community participation. This was seconded by Stu.

Raúl said 47 Degrees hopes to provide direct assistance with this effort.

Roland asked if the scope of the proposal could include marketing and outreach for Scala more generally. “Bad news travels fast, good news maybe less so”, so where can you go to hear the good news about Scala? Sun used to do this for Java. Lightbend has case studies on their site, but many are now out of date. Seth thought the staffing level would have to be higher for much of that to happen at the Center, but agreed it would be desirable.

Seth asked if the effort could be spread out among existing Scala Center personnel, but Heather thinks that would not “play to the strengths” of the current staff and hiring would really be much better. There was some discussion of how much actual writing might be needed, as opposed to edits and maintenance, and discussion of how much community participation can reasonably be hoped for.

Jon asked if there could or should be a separate proposal on Scala documentation. Heather thought there was still room for that. It was agreed to keep it mostly as separate, possible future work.

Outcome: Approved, 8 to 2

Proposal SCP-009: Improve user experience for builds that use only direct dependencies

proposed by Twitter, presented by Stu Hood and Eugene Burmako

Stu emphasizes that the proposal should benefit any sufficiently large Scala project and isn’t tied to specific build systems (e.g. Pants or Bazel) or codebase layouts (e.g. monorepos). Large Java shops “are used to” being able to compile against direct dependencies only; Twitter wants to raise awareness that Scala lags in this respect and that the situation could and should be improved. Depending on the available effort level, “the cost could be quite low” for the Center to tackle the least ambitious version of the proposal.

Discussion centered on the issue of how many Scala users would actually benefit from work in this area (with respect to repository layout, binary vs. source dependencies, macro support in sbt, transport of artifacts between build servers, and so on).

Adriaan agreed that progress could be made in this area without great expense or a very high level of compiler expertise. Eugene offered to help mentor whoever works on this.

It was agreed that for now, the board would vote only on allocating up to three months of engineering effort towards this, centered on point 3 of the proposal, with the rest being left as possible future work.

Outcome: Approved, 6 to 4

Other business

Jon noted that past proposals were assigned conflicting numbers; but this has now been resolved by this pull request.

Heather agreed to set up a mailing list for advisory board members, for logistics and so private discussion can happen in advance of meetings. Several people emphasized that regardless, discussion should be public as much as possible (on pull requests in the advisoryboard repository).

Bill said that the community input he has received this quarter, which was primarily about 1) migration to Dotty, 2) Scala licensing, and 3) the website and documentation work, has already been covered by existing proposals.

Lars raised the following concerns:

  • There is still interest in the possibility of changing the Scala license. Could we get a response from EPFL about patent issues?
  • There are ongoing concerns about the legitimacy of the Scala Center as an institution. Are they de facto gate keepers of the language, or just another open source entity? The board could work on clarifying that and shaping the outside view of the Center.

We expect to return to these topics at a future meeting – especially if they are raised in the form of proposals.

Closing remarks

Jon noted that although all proposals were again accepted, the board succeeded in limiting their scope to within what Heather thought can be accomplished assuming promised funds arrive and hiring efforts are successful.

The Q1 2017 meeting will be scheduled later.