Scala Center activity/project updates 2018: mid-March to mid- Jun


#1

Dear Contributors, Dear Scala Community,

I am restarting Scala Center monthly updates after a while, been a bit busy with ScalaDays and sprees and other community involvements (the reason why I start the updates with those (o:

Expect more details about our activities soon, very soon.

And please, if you were a part of any events and would like to add/change my “report” please post in the comments below.

Enjoy!
Darja

At a glance

Activities: sprees, talks, conferences and SIP meeting May 2018

Projects:

  • Accessible Scala (SCP-16)
  • BSP
  • scalac-profiling (SCP-10)
  • Zinc
  • MOOCs
  • Collections (SCP-007)
  • scalajs-bundler
  • Bloop
  • Dotty
  • Scalameta
  • Scalafix

Sprees, talks, conferences

Scala Sphere, Krakow, 25-17 April

Scala spree

In collaboration with VirtusLabs who hosted and sponsored the venue, the Scala Center team organised a Scala Spree on April 15th. There were about 25 participants that had an opportunity to work on 12 libraries and tools and successfully merged many PRs by the end of the event.

Spree photo

Talks

Ólafur Páll Geirsson presented “SemanticDB for Scala developer tools” Slides

Martin Duhem presented “Meet Bloop”
Slides

Jorge Vicente Cantero presented “Build Server Protocol and New IDEAS” together with Justin Kaeser from Jetbrains
Slides

flatMap Oslo, 3-4 May 2018

Scala spree

In collaboration with Arktekk who hosted and sponsored the venue, Scala Center team organised Scala spree on May 2nd. There were 9 participants that had an opportunity to work on Dotty, Scalameta and Scalafix libraries which resulted in 6 open PRs by the end of the event.

Spree photo

Talks

Ólafur Páll Geirsson Presented “Six steps from zero to IDE” Slides.
Talk

Scala Days Berlin, 14-18 May 2018

Scala spree

In collaboration with Zalando who hosted and sponsored the venue, Scala Center team organized a Scala spree on 14th of May. This was a two to three times bigger spree than any before and the library authors decided to propose a different structure to be able to scale the learning experience to match the number of participants. There were about 60 participants that had an opportunity to work on the Scala compiler, Dotty compiler, sbt, Scalafix and Bloop. By the end of the event, 8 pull requests were merged into sbt, 10 people completed an intensive Scalafix workshop, 2 long-standing issues were closed in Bloop and more.
Scala Days takeaway blog mentioning the spree
Spree photo

Talks

Ólafur Páll Geirsson Presented “Six steps from zero to IDE” Slides.

Julien Richard-Foy and Stefan Zeiger presented “Migrating to Scala 2.13”
Abstract

Martin Duhem and Jorge Vicente Cantero presented “Meet Bloop”
Slides

Scala Contributors Summit

On the 18th of May, we had the first Scala Contributors Summit in the Zalando offices. Gathering about 50 people involved in the development, documentation and community building around Scala, it was the opportunity to discuss overarching plans for contributions. After an initial brainstorming of topics the attendees thought worth discussing, they split in various working groups with different focuses, ranging from tooling to migration plans for Scala 3, macros, build tools to education and education. Most working groups concluded with concrete tasks that could be undertaken in the near future.
Contributors Summit photo

SIP Meeting May 2018

We scheduled a SIP meeting the last hour of the Contributors Summit because most of the Committee Members were participating that day and could meet in person. The SIP meeting was about the role of the Committee in the upcoming changes towards Scala 3. To read/watch more about the SIP May 2018 please go to:
minutes or watch the meeting on Scala Center’s YouTube channel

Accessible Scala

Guillaume Massé [@MasseGuillaume]
Read more on the blog, "Introducing accessible Scala

You can try Accessible Scala online or as a vscode plugin:

We consider the SCP-16 is completed.

BSP

Jorge Vicente Cantero [@jvican]

  • Heavy modifications to the BSP specification.

  • Working with Justin Kaeser (Jetbrains) to ship the BSP integration in IntelliJ Early Access Program.

  • Creating a way to export sbt builds to any IDE in a faster way via BSP.

scalac-profiling

Jorge Vicente Cantero [@jvican]

Zinc

Jorge Vicente Cantero [@jvican]

MOOCs

Julien Richard-Foy [@julienrf]

  • I worked on the reactive programming course. I collaborated with the Akka-team, reviewed their lectures and assignments, and wrote the lectures and assignments for the first week of that course.

Collections (SCP-007)

Julien Richard-Foy [@julienrf]

  • I worked on the remaining issues before the release of Scala 2.13.0-M4,

  • I migrated some projects from the community to the new collections (including Scala.js),

  • I contributed migration rules to the rewrite tool that upgrades code bases from 2.12 to 2.13,

  • I wrote developer documentation about the architecture of the new collections,

  • I worked on a framework to make it possible to generically write extension methods to collections,

  • I co-presented a talk on the migration to Scala 2.13 at Scala Days.

scalajs-bundler

Julien Richard-Foy [@julienrf]

  • I reviewed PRs from external contributors and scheduled releases.

Bloop

Martin Duhem [@Duhemm]

Support linking and running of Scala Native projects

Thanks to these changes, users of Bloop can seamlessly compile, link and run their Scala Native

projects.

This work: https://github.com/scalacenter/bloop/pull/457

Support linking and running of Scala.js projects

Thanks to the great community that formed itself around Bloop, we are very lucky to see exciting contributions being submitted by our users. Tim Nieradzik (@tindzk) has submitted a patch that added support for Scala.js, by re-using the bits I introduced to support Scala Native.

This work: https://github.com/scalacenter/bloop/pull/526

Support compiling with Dotty in Bloop

This work: https://github.com/scalacenter/bloop/pull/460

Dotty

Martin Duhem [@Duhemm]

Embedding documentation inside TASTY

Having the documentation immediately available in TASTY allows us to easily get it back in the IDE or the REPL, for instance.

This work: https://github.com/lampepfl/dotty/pull/4461

Display documentation inside Dotty IDE

Having the documentation available in TASTY means that it’s readily available in the IDE, and give a nice user experience for accessing the documentation.

This work: https://github.com/lampepfl/dotty/pull/4648

Sharing more infrastructure between Dotty and Dottydoc

I worked on a large refactoring of Dottydoc, so that the Mega/Miniphase infrastructure of Dotty is reused. This allowed me to re-write the phases in a style that is closer to the rest of the compiler and easier to understand.

This work: https://github.com/lampepfl/dotty/compare/master...Duhemm:topic/dottydoc-simplify

Enable -Ycheck:all in Dottydoc

This work: https://github.com/lampepfl/dotty/pull/4575

Typed imports

Because imports are untyped, this means that they need to be special cased in many places, such as the IDE for instance: jump-to-definition doesn’t work on import nodes, because the node doesn’t have a type. This is an attempt to type them, so that no special casing is needed.

This work: https://github.com/dotty-staging/dotty/commit/cc62c2849a9a11cf689780f4645db2bf591bb787

Jump to definition in imports

This work: https://github.com/lampepfl/dotty/pull/4199

Add tests for Dotty IDE

This work: https://github.com/lampepfl/dotty/pull/3766

Scala Native

Martin Duhem [@Duhemm]

Moving the test runner out of the sbt plugin

This work: https://github.com/scala-native/scala-native/pull/1234

load-plugin

load-plugin is a set of functions that can be injected in sbt in order to make it easier to dynamically load sbt plugins (load-plugin itself is not an sbt plugin.) I’ve been using this to develop a proof of concept with Dotty IDE where one can simply open VSCode inside a completely empty directory, and have the Dotty LSP start up when a Scala file is created.

This server is configured on the fly, but is able to perform fully and give accurate help to the user, completely seamlessly.

This re-creates the experience that users get when using VSCode with a Java language server, and is the best experience in my opinion.

This work: https://github.com/scalacenter/load-plugin

Integration in Dotty: https://github.com/lampepfl/dotty/pull/4304

Integration in Metals: https://github.com/scalameta/metals/pull/287

Scalameta

Ólafur Páll Geirsson [@olafurpg]

In collaboration with Eugene Burmako from Twitter, released a total of 6

Scalameta releases. The primary focus of these releases has been to stabilize

SemanticDB so that new features like types can be exposed in the public API.

There are 26 open issues

remaining to complete the v4.0 milestone.

Release notes:

Scalafix

Ólafur Páll Geirsson [@olafurpg]

Scalafix v0.6 is well underway with a new semantic API taking advantage of the

latest SemanticDB improvements including support for types. The goal is to

release Scalafix v0.6 alongside Scalameta v4.0.

Scalafix internals that sets the stage for Scalafix v1. Highlights include:

  • New scalafix.v1 package containing a redesigned semantic API taking

advantage of the lessons learned over the past year with SemanticDB. The

scalafix.v1 API is still evolving.

  • Current APIs will continue to work unchanged in the scalafix.v0 package.

  • Significantly lower memory pressure when running the command-line interface

on larger projects.


Minutes: SIP meeting May 2018