|
1 |
| -## Status |
| 1 | +# scala-library-next |
2 | 2 |
|
3 |
| -This repo is brand new (September 2020). We're still putting everything in place. |
| 3 | +This repo holds code that will be added to a future version of |
| 4 | +the Scala standard library. |
4 | 5 |
|
5 |
| -This hasn't been published yet. It isn't even ready for contributions yet. Stay tuned. |
| 6 | +We will publish this as a library, to make the additions usable |
| 7 | +immediately. But publishing hasn't happened yet. (The repo only just |
| 8 | +started, in October 2020.) |
6 | 9 |
|
7 |
| -## Purpose and scope |
| 10 | +## Why? |
| 11 | + |
| 12 | +Why make a library for this? Because: |
| 13 | + |
| 14 | +* Scala 2.13 is expected to be final major release of Scala 2. |
| 15 | +* We cannot make additions to the standard library in the Scala 2.13.x |
| 16 | + series, because of our [binary compatibility |
| 17 | + constraints](https://docs.scala-lang.org/overviews/core/binary-compatibility-of-scala-releases.html). |
| 18 | +* To help users transition from Scala 2 to 3, Scala 2.13 and 3.0 will |
| 19 | + share the same standard library. |
| 20 | + |
| 21 | +Therefore, additions to the library cannot happen until Scala 3.1 at the earliest. |
| 22 | + |
| 23 | +But why publish the additions separately in the meantime? Because: |
| 24 | + |
| 25 | +* Users may find the additions useful now. |
| 26 | +* Having users start using the additions now will help shake out |
| 27 | + problems early. |
| 28 | +* Contributors will be more motivated to work on improvements if users |
| 29 | + can use them now. |
| 30 | + |
| 31 | +## What can be added? |
| 32 | + |
| 33 | +Anything merged here _will_ become part of the next Scala standard library. |
| 34 | + |
| 35 | +Therefore, we will not merge anything here unless the Scala 2 and 3 |
| 36 | +teams agree on the addition. The bar for accepting additions remains |
| 37 | +very high. |
| 38 | + |
| 39 | +Is it okay to open an issue and/or pull request regardless? Yes, |
| 40 | +definitely. Let's discuss your idea. Just be aware that the bar is |
| 41 | +high and contributions may be rejected unless there is a high degree |
| 42 | +of consensus and confidence that it really belongs in the standard |
| 43 | +library. |
| 44 | + |
| 45 | +It's not required, but you may wish to bring your idea up on |
| 46 | +[contributors.scala-lang.org](https://contributors.scala-lang.org) |
| 47 | +first to gauge reaction. |
| 48 | + |
| 49 | +There are may be technical constraints on what can be added, since |
| 50 | +this a separate codebase from the actual standard library. So for |
| 51 | +example if you want to add a new method to an existing class, it must |
| 52 | +be added as an extension method. We are still discussing details on |
| 53 | +[issue #4](https://github.com/scala/scala-library-next/issues/4). |
| 54 | + |
| 55 | +## History |
| 56 | + |
| 57 | +The discussions that led to this repo being created are here: |
8 | 58 |
|
9 | 59 | * https://github.com/scala/scala-dev/issues/661
|
10 | 60 | * https://github.com/scala/scala-collection-compat/issues/329
|
11 | 61 | * https://github.com/scala/scala-dev/issues/449
|
| 62 | + |
| 63 | +The name was discussed here: |
| 64 | + |
| 65 | +* https://github.com/scala/scala-library-next/issues/1 |
0 commit comments