|
1 | 1 | ---
|
2 |
| -layout: contact |
| 2 | +redirect_to: /records/2023-Q2-roadmap.html |
3 | 3 | ---
|
4 |
| - |
5 |
| -This page lists the projects that the Scala Center will work on during |
6 |
| -the current quarter. We also post regular updates about our projects on the |
7 |
| -[Scala Contributors forum](https://contributors.scala-lang.org/c/scala-center/25). |
8 |
| - |
9 |
| -To have more information about our _completed_ projects, please see the |
10 |
| -[quarterly activity reports](./records.html). |
11 |
| - |
12 |
| -## Roadmap for 2023 Q1 |
13 |
| -{: .no_toc} |
14 |
| - |
15 |
| -The following sections present our plan for the current quarter. Every |
16 |
| -project description is followed by the concrete results we will deliver, and |
17 |
| -their expected outcome on the Scala community. |
18 |
| - |
19 |
| -* Table of Contents |
20 |
| -{:toc} |
21 |
| - |
22 |
| -### Make Scala tooling seamless for newcomers, and provide robust foundations for the Scala ecosystem |
23 |
| - |
24 |
| -#### Polish sbt and Coursier |
25 |
| - |
26 |
| -Most of the Scala projects are built with sbt, which uses Coursier under the hood. |
27 |
| -The Coursier CLI is also the recommended way to get started in Scala. We want to make sure these tools |
28 |
| -work well for everyone. In collaboration with the current maintainers Eugene Yokota and Alexandre Archambault, we will |
29 |
| -address the most important issues that are currently opened. Read our roadmap for Coursier [here](https://contributors.scala-lang.org/t/bugfixes-and-seamless-installation-process-for-coursier/6052). |
30 |
| - |
31 |
| -#### TASTy-MiMa |
32 |
| - |
33 |
| -[TASTy-query](https://github.com/scalacenter/tasty-query) is a work-in-progress |
34 |
| -library to read TASTy files, explore them, and ask semantic questions about |
35 |
| -them. It is independent from the compiler, and can be used as a building |
36 |
| -block to implement tools performing static analyses of Scala programs. An |
37 |
| -example is TASTY-MiMa, an upcoming tool “like |
38 |
| -[MiMa](https://github.com/lightbend/mima), but for TASTy”. |
39 |
| - |
40 |
| -We plan to implement support for semantic queries such as “are two types |
41 |
| -equivalent?”, “is a type a subtype of another one?”, etc., and to publish a |
42 |
| -prototype of TASTy-MiMa. |
43 |
| - |
44 |
| -You can read the full roadmap |
45 |
| -[here](https://contributors.scala-lang.org/t/the-scala-centers-roadmap-for-tasty-query/5564). |
46 |
| - |
47 |
| -#### Create a Stable API for the Scala 3 Presentation Compiler |
48 |
| - |
49 |
| -Currently, Metals works only for a limited subset of Scala 3 versions. Furthermore, we need to publish |
50 |
| -a new release of Metals after every new release of the compiler to support it. |
51 |
| - |
52 |
| -We would like to create a stable API for the Scala 3 presentation compiler to untie Metals to the compiler |
53 |
| -release cycle and support a wider range of Scala 3 versions (including experimental versions of Scala 3). |
54 |
| - |
55 |
| -#### Reduce the Number of Ways to Import Scala Projects in IDEs |
56 |
| - |
57 |
| -Currently, when starting new projects in Metals the build server that is used by default is Bloop. Part of this is for historical reasons, but part of it is also due to the speed of Bloop and the integrations that exist for it. Bloop has been incredibly important in the Build Server arena. However, there is also BSP implementation in sbt and in Mill and even when a `.bsp/<build-tool>.json` entry exists, Metals will still force Bloop on the user unless they manually switch. This can cause confusion and also may add extra steps into choosing a build server that shouldn't be needed. |
58 |
| - |
59 |
| -This problem also exists in a different way in IntelliJ when you open for example an sbt project that has an existing `.bsp/sbt.json` file you'll be prompted to import the project either as a BSP project or an sbt project. Arguably, newcomers have no idea what BSP is, and they shouldn't have to. |
60 |
| - |
61 |
| -We'd like to minimize the number of ways to import projects and revisit the default choices |
62 |
| -that Metals makes of using Bloop no matter the build tool. The aim is to make |
63 |
| -the experience a newcomer has smoother, abstracting away things like Bloop and |
64 |
| -BSP, while still allowing for a powerful user experience for advanced users. Read the full roadmap and progress |
65 |
| -reports [here](https://contributors.scala-lang.org/t/revisiting-the-default-build-server-for-metals-roadmap/6054). |
66 |
| - |
67 |
| -### Education and Documentation |
68 |
| - |
69 |
| -#### Scala Website |
70 |
| - |
71 |
| -We plan to modernize the Scala website, and to integrate better the Scala 2 |
72 |
| -and Scala 3 documentation. |
73 |
| - |
74 |
| -Following up on [the work]({% link records/2022-Q4-activity-report.md %}) |
75 |
| -we did in the previous quarter, we plan to polish further the content of the |
76 |
| -website. |
77 |
| - |
78 |
| -The next main tasks are: |
79 |
| - |
80 |
| -- make the content more use-case-oriented rather than features-oriented, |
81 |
| -- reorganize the structure to make it more intuitive according to the reader’s background, |
82 |
| -- create new tutorials to document better how to contribute to the Scala open-source |
83 |
| - ecosystem. |
84 |
| - |
85 |
| -#### Scala.js |
86 |
| - |
87 |
| -We will finish the work started in early 2022 to [consolidate the Scala.js |
88 |
| -ecosystem](https://contributors.scala-lang.org/t/the-scala-centers-roadmap-for-a-unified-scala-js-ecosystem/5568). |
89 |
| - |
90 |
| -With the help of the community, we plan to document the best practices to |
91 |
| -have a productive development environment in Scala.js. |
92 |
| - |
93 |
| -#### Language Specification |
94 |
| - |
95 |
| -Currently, there is no proper language specification for Scala 3. A specification would be useful for |
96 |
| -developers, when they want to quickly check something about a feature they are using. It would also |
97 |
| -be useful to the [Scala Improvement Process](https://docs.scala-lang.org/sips), to provide a basis |
98 |
| -for discussions and proposals. |
99 |
| - |
100 |
| -Some pieces of specification |
101 |
| -are available in the [Scala 3 Reference](https://docs.scala-lang.org/scala3/reference), but these |
102 |
| -pieces are mostly about the differences compared to Scala 2. We will complete them, and publish a |
103 |
| -proper language specification for Scala 3. |
104 |
| - |
105 |
| -### Communication |
106 |
| - |
107 |
| -We will conduct many actions aiming at communicating a positive image of Scala, |
108 |
| -and making people excited about it. |
109 |
| - |
110 |
| -- We will publish a five-year report detailing the activities and impact of |
111 |
| - the Scala Center during the past five years! |
112 |
| -- We will regularly share our achievements and engage the community on our |
113 |
| - projects _via_ our [LinkedIn](https://www.linkedin.com/company/scala-center/) |
114 |
| - page, |
115 |
| -- We will create an online shop where individual will be able to give |
116 |
| - donations to the Scala Center in exchange for goodies, |
117 |
| -- We will speak at tech conferences and local meetups to encourage people to contribute to the |
118 |
| - Scala ecosystem, and to let non-Scala programmers know about Scala, |
119 |
| -- We will publish two new videos in the series [Let’s talk about Scala |
120 |
| - 3](https://www.youtube.com/playlist?list=PLTx-VKTe8yLxYQfX_eGHCxaTuWvvG28Ml) |
121 |
| - to highlight the strengths of Scala 3. |
122 |
| - |
123 |
| -### Community, Sustainability, and Governance |
124 |
| - |
125 |
| -#### Scala 3 Compiler Academy |
126 |
| - |
127 |
| -We believe that the pool of knowledgeable people about the Scala 3 compiler |
128 |
| -implementation is too small. We will create a self-sustaining knowledge hub |
129 |
| -for the compiler where others can come and be effectively mentored to be |
130 |
| -compiler contributors. |
131 |
| - |
132 |
| -We are continuously adding content to the |
133 |
| -[Scala 3 Compiler Academy](https://www.youtube.com/channel/UCIH0OgqE54-KEvYDg4LRhKQ) |
134 |
| -YouTube channel, and we run regular events to onboard external contributors on |
135 |
| -the compiler codebase. In case you are interested in contributing to the Scala 3 |
136 |
| -compiler, please register by [filling this form](https://forms.gle/DfoSuHFm3T6MA3L59). |
137 |
| - |
138 |
| -#### Scala Improvement Process |
139 |
| - |
140 |
| -The [Scala Improvement Process](https://docs.scala-lang.org/sips/index.html) |
141 |
| -is a process for submitting changes to the Scala language. It aims to evolve |
142 |
| -Scala openly and collaboratively. We have restarted the process in 2022, and |
143 |
| -we now have regular committee meetings. |
144 |
| - |
145 |
| -#### Promote Simple Scala Solutions |
146 |
| - |
147 |
| -We feel that, currently, the Scala ecosystem has a focus on advanced |
148 |
| -expert-level tools and libraries, favouring power and flexibility over |
149 |
| -familiarity and ease of onboarding. We believe that newcomers don’t need to |
150 |
| -learn advanced concepts such as pure functional programming or reactive |
151 |
| -programming to be productive in Scala. |
152 |
| - |
153 |
| -In partnership with VirtusLab, we will contribute to the creation of tutorials |
154 |
| -demonstrating how to solve typical programming tasks in a more approachable |
155 |
| -programming style. |
156 |
| - |
157 |
| -### Maintenance Work |
158 |
| - |
159 |
| -We will also spend a small part of our time reviewing pull requests, |
160 |
| -triaging issues, and sometimes implementing pull requests for the following |
161 |
| -projects, to make sure important points are addressed: |
162 |
| - |
163 |
| -- Scala 3 compiler |
164 |
| -- Scala 2 TASTy reader |
165 |
| -- Scaladex |
166 |
| -- Scastie |
167 |
| -- Coursier |
168 |
| -- sbt |
169 |
| - |
170 |
| -## Advisory Board Proposals |
171 |
| -{: .no_toc} |
172 |
| - |
173 |
| -For reference, you can see |
174 |
| -[here](https://github.com/scalacenter/advisoryboard/tree/master/proposals) |
175 |
| -the list of Advisory Board proposals and their respective status. |
0 commit comments