Skip to content

Commit 61de655

Browse files
authored
Merge branch 'main' into patch-2
2 parents 3be25f8 + 14f494e commit 61de655

30 files changed

+263
-147
lines changed

Gemfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -264,11 +264,11 @@ GEM
264264
minitest (5.25.4)
265265
net-http (0.6.0)
266266
uri
267-
nokogiri (1.18.8-arm64-darwin)
267+
nokogiri (1.18.9-arm64-darwin)
268268
racc (~> 1.4)
269-
nokogiri (1.18.8-x64-mingw-ucrt)
269+
nokogiri (1.18.9-x64-mingw-ucrt)
270270
racc (~> 1.4)
271-
nokogiri (1.18.8-x86_64-linux-gnu)
271+
nokogiri (1.18.9-x86_64-linux-gnu)
272272
racc (~> 1.4)
273273
octokit (4.25.1)
274274
faraday (>= 1, < 3)
@@ -287,7 +287,7 @@ GEM
287287
rb-fsevent (0.11.2)
288288
rb-inotify (0.11.1)
289289
ffi (~> 1.0)
290-
rexml (3.4.1)
290+
rexml (3.4.2)
291291
rouge (3.30.0)
292292
ruby-rc4 (0.1.5)
293293
rubyzip (2.4.1)

_config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ keywords:
1515
- Document
1616
- Guide
1717

18-
scala-version: 2.13.16
18+
scala-version: 2.13.17
1919
scala-212-version: 2.12.20
20-
scala-3-version: 3.7.1
20+
scala-3-version: 3.7.4
2121

2222
collections:
2323
style:

_ja/getting-started/install-scala.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,4 +178,4 @@ IDE の使用に慣れている場合は、IDE から _Main.scala_ のコード
178178
他の Scala ユーザーとすぐに連絡を取りたい場合は、多くのメーリングリストやリアルタイムのチャットルームがあります。これらのリソースのリストや、どこに問い合わせればよいかについては、[コミュニティページ](https://scala-lang.org/community/)をご覧ください。
179179
180180
### (日本語のみ追記)
181-
Scala について日本語で質問したい場合、Twitterでつぶやくと気づいた人が教えてくれます
181+
Scala について日本語で質問したい場合、X(旧Twitter)でつぶやくと気づいた人が教えてくれます

_overviews/FAQ/index.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ See our [Community page](https://scala-lang.org/community/).
2727

2828
### What's a good book about Scala?
2929

30-
Our [Books page](https://docs.scala-lang.org/books.html) lists a few
30+
Our [Books page](https://docs.scala-lang.org/books.html) lists some
3131
especially popular, well-known books.
3232

3333
We don't have a list of all the Scala books that
@@ -39,6 +39,17 @@ ask for book recommendations. You'll get more helpful
3939
answers if you provide some information about your background and your
4040
reasons for wanting to learn Scala.
4141

42+
### What's a good video course about Scala?
43+
44+
Our [Online Courses page](https://docs.scala-lang.org/online-courses.html)
45+
lists some especially popular, well-known courses.
46+
47+
As with books, you can go on the \#scala-users room [on
48+
Discord](https://discord.com/invite/scala) or another community forum and
49+
ask for online course recommendations. You'll get more helpful
50+
answers if you provide some information about your background and your
51+
reasons for wanting to learn Scala.
52+
4253
### Should I learn Scala 2, or Scala 3?
4354

4455
Don't sweat the decision too much. You can't go far wrong either
@@ -351,14 +362,14 @@ setting in a multi-project build.
351362

352363
For example, if you add this to your `build.sbt`:
353364

354-
scalaVersion := "2.13.16"
365+
scalaVersion := "2.13.17"
355366

356367
that's a "bare" setting, and you might expect it to apply build-wide.
357368
But it doesn't. _It only applies to the root project._
358369

359370
In many cases one should instead write:
360371

361-
ThisBuild / scalaVersion := "2.13.16"
372+
ThisBuild / scalaVersion := "2.13.17"
362373

363374
Other possibilities include:
364375

_overviews/contribute/bug-reporting-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ If you cannot find your issue in the issue tracker, create a new bug. The detail
6565

6666
Please make sure to fill in as many fields as possible. Make sure you've indicated the following:
6767

68-
1. **Exact Scala version** that you are using. For example, `2.13.16` or `3.3.4`. If the bug happens in multiple versions indicate all of them.
68+
1. **Exact Scala version** that you are using. For example, `2.13.17` or `3.3.4`. If the bug happens in multiple versions indicate all of them.
6969
2. **The component** that is affected by the bug. For example, the Standard Library, Scaladoc, etc.
7070
3. **Labels** related to your issue. For example, if you think your issue is related to the typechecker, and if you have successfully minimized your issue, label your bug as "typechecker" and "minimized". Issue tracker will suggest names for existing labels as you type them so try not to create duplicates.
7171
4. **Running environment**. Are you running on Linux? Windows? What JVM version are you using?

_overviews/core/binary-compatibility-of-scala-releases.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ We distinguish forward and backward compatibility (think of these as properties
2020
Thus, backward compatibility precludes the removal of (non-private) methods, as older versions could call them, not knowing they would be removed, whereas forward compatibility disallows adding new (non-private) methods, because newer programs may come to depend on them, which would prevent them from running on older versions (private methods are exempted here as well, as their definition and call sites must be in the same source file).
2121

2222
#### Guarantees and Versioning
23-
For Scala 2, the *minor* version is the *third* number in a version, e.g., 16 in v2.13.16.
23+
For Scala 2, the *minor* version is the *third* number in a version, e.g., 17 in v2.13.17.
2424
The major version is the second number, which is 13 in our example.
2525

26-
Scala 2 up to 2.13.16 guarantees both backward and forward compatibility across *minor* releases within a single major release.
26+
Scala 2 up to 2.13.17 guarantees both backward and forward compatibility across *minor* releases within a single major release.
2727
This is about to change now that [SIP-51 has been accepted](https://docs.scala-lang.org/sips/drop-stdlib-forwards-bin-compat.html), future Scala 2.13 releases may be backward compatible only.
2828

2929
For Scala 3, the minor version is the *second* number in a version, e.g., 2 in v3.2.1.

_overviews/core/futures.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1181,7 +1181,7 @@ object Test extends App {
11811181
completion match {
11821182
case Failure(exception) if exception.getCause != null =>
11831183
println(s" caused by ${exception.getCause}")
1184-
_ => ()
1184+
case _ => ()
11851185
}
11861186
}
11871187
} catch {

_overviews/core/nightlies.md

Lines changed: 54 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -8,80 +8,89 @@ We regularly publish nightly versions of both Scala 3 and 2 so that users can pr
88

99
Here's how to find and use these versions.
1010

11-
## Scala 3
11+
## General information on nightlies
1212

13-
Scala 3 nightly versions are published to Maven Central. If you know the full version number of the nightly you want to use, you can use it just like any other Scala 3 version.
13+
### Scala 3
1414

15-
One quick way to get that version number is to visit [https://dotty.epfl.ch](https://dotty.epfl.ch) and look in the upper left corner.
15+
Scala 3 nightly versions are published to [https://repo.scala-lang.org](https://repo.scala-lang.org). Historically, they used to be published to Maven Central. Old nightly versions of Scala 3 (all the way until `3.8.0-RC1-bin-20250822-658c8bd-NIGHTLY` in August 2025) are still available there, as well as via [https://repo.scala-lang.org](https://repo.scala-lang.org).
1616

17-
Another way is to scrape Maven Central, as shown in this script: [https://raw.githubusercontent.com/VirtusLab/community-build3/master/scripts/lastVersionNightly.sc](https://raw.githubusercontent.com/VirtusLab/community-build3/master/scripts/lastVersionNightly.sc)
17+
If you know the full version number of the nightly you want to use, you can use it just like any other Scala 3 version.
1818

19-
A third way is to use [scala-cli](https://scala-cli.virtuslab.org), as follows. (Since Scala 3.5.0, the `scala` command runs `scala-cli`.)
19+
There are a number of ways to get that version number, as listed below.
2020

21-
### scala-cli
21+
### Scala 2
2222

23-
You can run nightlies with commands such as:
24-
25-
scala-cli -S 3.nightly
26-
scala-cli -S 3.3.nightly
27-
28-
The default command is `repl`, but all the other scala-cli subcommands such as `compile` and `run` work, too. It also works with `//>` directives in your script itself, for example:
23+
We informally refer to Scala 2 “nightly” versions, but technically it's a misnomer. A so-called “nightly” is built for every merged PR in the Scala 2 repo.
2924

30-
//> using scala 3.nightly
31-
32-
See this [scala-cli doc page](https://scala-cli.virtuslab.org/docs/commands/compile#scala-nightlies) for details.
25+
Similarly to Scala 3 nightlies, they are available at [https://repo.scala-lang.org](https://repo.scala-lang.org).
3326

34-
## Scala 2.13 or 2.12
27+
## How to use nightly versions
3528

36-
We informally refer to Scala 2 “nightly” versions, but technically it's a misnomer. A so-called “nightly” is built for every merged PR.
29+
### Scala CLI
3730

38-
Scala 2 nightly versions are published to a special resolver. Unless you are using scala-cli, you'll need to add that resolver to your build configuration in order to use these versions.
31+
Scala CLI is the official runner of the language and has nightlies available without any extra configuration. From Scala 3.5.0 and on it's available under the `scala` command in Scala 3 installations. It can also be installed separately as `scala-cli`.
3932

40-
### quick version (sbt)
33+
Note: The nightly repository is supported since Scala CLI v1.9.0 onwards (or `scala` installed with Scala 3.7.3 or newer).
4134

42-
Global / resolvers += "scala-integration" at
43-
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
44-
scalaVersion := "2.13.15-bin-abcd123"
35+
You can run nightlies with commands such as:
4536

46-
For a 2.12 nightly, substitute e.g. `2.12.20` for `2.13.15`; in either case, it's the version number of the _next_ release on that branch.
37+
scala -e 'println("Hello") -S 3.nightly
38+
scala -e 'println("Hello") -S 3.3.nightly
39+
scala -e 'println("Hello") -S 2.13.nightly
40+
scala -e 'println("Hello") -S 2.nightly # same as 2.13.nightly
41+
scala -e 'println("Hello") -S 2.12.nightly
4742

48-
For `abcd123`, substitute the first 7 characters of the SHA of the latest commit to the [2.13.x branch](https://github.com/scala/scala/commits/2.13.x) or [2.12.x branch](https://github.com/scala/scala/commits/2.12.x) that has a green checkmark. (Clicking the checkmark will show a CI job name with the whole version in its name.)
43+
The default command is `repl` (unless sources are passed, in which case it switches to `run`), but all the other scala-cli subcommands such as `compile` and `run` work, too. It also works with `//> using` directives in your script itself, for example:
4944

50-
A quick way to find out the full version number of a current nightly is to use [scala-cli](https://scala-cli.virtuslab.org), as follows.
45+
//> using scala 3.nightly
46+
//> using scala 3.3.nightly
47+
//> using scala 2.nightly
48+
//> using scala 2.13.nightly
49+
//> using scala 2.12.nightly
5150

52-
### quick version (scala-cli)
51+
See this [scala-cli doc page](https://scala-cli.virtuslab.org/docs/commands/compile#scala-nightlies) for details.
5352

54-
You can run nightlies with:
53+
### Get it from the nightly website
5554

56-
scala-cli -S 2.13.nightly
57-
scala-cli -S 2.nightly # same as 2.13.nightly
58-
scala-cli -S 2.12.nightly
55+
A quick way to get that version number is to visit [https://nightly.scala-lang.org](https://nightly.scala-lang.org) and look in the upper left corner.
5956

60-
The default command is `repl`, but all the other scala-cli subcommands such as `compile` and `run` work, too. It also works with `//>` directives in your script itself, for example:
57+
### Check the repository, directly
6158

62-
//> using scala 2.nightly
59+
Another way is to scrape the repository, as shown in this script: [https://raw.githubusercontent.com/VirtusLab/community-build3/master/scripts/lastVersionNightly.sc](https://raw.githubusercontent.com/VirtusLab/community-build3/master/scripts/lastVersionNightly.sc)
6360

64-
### Longer explanation
61+
### SBT
6562

66-
We no longer publish `-SNAPSHOT` versions of Scala 2.
63+
To use recent nightlies with SBT, adding the appropriate resolver to the build configuration is necessary.
6764

68-
But the team does publish nightly versions, each with its own fixed version number. The version number of a nightly looks like e.g. `2.13.1-bin-abcd123`. (`-bin-` signals binary compatibility to sbt; all 2.13.x releases since 2.13.0 are binary compatible with each other.)
65+
ThisBuild / scalaVersion := "3.8.0-RC1-bin-20250916-eb1bb73-NIGHTLY"
66+
ThisBuild / resolvers += Resolver.scalaNightlyRepository
67+
lazy val root = (project in file("."))
68+
.settings(name := "sbt-with-scala-nightlies")
6969

70-
To tell sbt to use one of these nightlies, you need to do three things.
70+
Also note that SBT 1.11.5 or newer is necessary.
7171

72-
First, add the resolver where the nightlies are kept:
72+
### Mill
7373

74-
Global / resolvers += "scala-integration" at
75-
"https://scala-ci.typesafe.com/artifactory/scala-integration/"
74+
To use recent nightlies with Mill, a custom resolver for the initial bootstrap of the build is needed.
75+
Here's an example `build.mill` file:
7676

77-
Second, specify the Scala version:
77+
package build
78+
import mill.*
79+
import mill.api.*
80+
import scalalib.*
7881

79-
scalaVersion := "2.13.1-bin-abcd123"
82+
def scalaNightlyRepo = "https://repo.scala-lang.org/artifactory/maven-nightlies"
8083

81-
But that isn't a real version number. Manually substitute a version number containing the 7-character SHA of the last commit in the [scala/scala repository](https://github.com/scala/scala) for which a nightly version was published. Look at [https://travis-ci.org/scala/scala/branches](https://travis-ci.org/scala/scala/branches) and you'll see the SHA in the upper right corner of the 2.13.x (or 2.12.x) section.
84+
object project extends ScalaModule {
85+
def jvmWorker = ModuleRef(CustomJvmWorkerModule)
86+
override def scalaVersion = "3.8.0-RC1-bin-20250916-eb1bb73-NIGHTLY"
87+
override def repositories = Task { super.repositories() ++ Seq(scalaNightlyRepo)}
88+
}
8289

83-
As soon as 2.13.1 is released, the version number in the nightly will bump to 2.13.2, and so on.
90+
object CustomJvmWorkerModule extends JvmWorkerModule, CoursierModule {
91+
override def repositories = Task { super.repositories() ++ Seq(scalaNightlyRepo)}
92+
}
8493

85-
If you have a multiproject build, be sure you set these settings across all projects when you modify your build definition. Or, you may set them temporarily in the sbt shell with `++2.13.1-bin-abcd123` (sbt 0.13.x) or `++2.13.1-bin-abcd123!` (sbt 1.x; the added exclamation point is necessary to force a version not included in `crossScalaVersions` to be used).
94+
Note how the custom `JvmWorkerModule` is necessary with the added repository. It is not enough to just define it as a repository for the module dependencies.
8695

87-
Ideally, we would suggest an automated way to ask Travis-CI for the right SHA. This is presumably possible via Travis-CI's API, but as far as we know, nobody has looked into it yet. (Is there a volunteer?)
96+
Also note that Mill 1.0.5 or newer is necessary for this.

0 commit comments

Comments
 (0)