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.
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.
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:
-
online (https://masseguillaume.github.io/accessible-scala-web)
-
plugin (https://marketplace.visualstudio.com/items?itemName=scala-center.accessible-scala)
We consider the SCP-16 is completed.
BSP
Jorge Vicente Cantero [@jvican]
-
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]
-
General maintenance work and PR reviews.
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.