Skip to content

Commit

Permalink
docs: Add release notes for Metals 1.3.3
Browse files Browse the repository at this point in the history
  • Loading branch information
tgodzik committed Jul 12, 2024
1 parent c4c1d29 commit 1a8e04d
Show file tree
Hide file tree
Showing 4 changed files with 262 additions and 5 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ body:
id: version
attributes:
label: Version of Metals
placeholder: v1.3.2
placeholder: v1.3.3
validations:
required: true

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/mtags-auto-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ on:
metals_version:
description: "Metals Version"
required: true
default: "v1.3.2"
default: "v1.3.3"
metals_ref:
description: "Tag/branch-name from which run release"
required: true
# If you update this line after release
# just put the tag name (`v*.*.*`) here as in `metals_version.value` above.
# Don't be confused if this value contains `*.*.*_mtags_release`
default: "v1.3.2"
default: "v1.3.3"
jobs:
test_and_release:
runs-on: ubuntu-latest
Expand Down
5 changes: 3 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Global / onChangedBuildSource := ReloadOnSourceChanges
Global / resolvers += "scala-integration" at
"https://scala-ci.typesafe.com/artifactory/scala-integration/"

def localSnapshotVersion = "1.3.3-SNAPSHOT"
def localSnapshotVersion = "1.3.4-SNAPSHOT"
def isCI = System.getenv("CI") != null

def isScala211(v: Option[(Long, Long)]): Boolean = v.contains((2, 11))
Expand Down Expand Up @@ -230,7 +230,8 @@ lazy val interfaces = project
moduleName := "mtags-interfaces",
autoScalaLibrary := false,
mimaPreviousArtifacts := Set(
"org.scalameta" % "mtags-interfaces" % "1.2.2"
"org.scalameta" % "mtags-interfaces" % "1.2.2",
"org.scalameta" % "mtags-interfaces" % "1.3.2",
),
crossPaths := false,
libraryDependencies ++= List(
Expand Down
256 changes: 256 additions & 0 deletions website/blog/2024-07-12-thallium.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,256 @@
---
author: Tomasz Godzik
title: Metals v1.3.1 - Thallium
authorURL: https://twitter.com/TomekGodzik
authorImageURL: https://github.com/tgodzik.png
---

We're happy to announce the release of Metals v1.3.3, which brings a number of
long awaited bugfixes and some new features.

<table>
<tbody>
<tr>
<td>Commits since last release</td>
<td align="center">41</td>
</tr>
<tr>
<td>Merged PRs</td>
<td align="center">37</td>
</tr>
<tr>
<td>Contributors</td>
<td align="center">3</td>
</tr>
<tr>
<td>Closed issues</td>
<td align="center">15</td>
</tr>
<tr>
<td>New features</td>
<td align="center">3</td>
</tr>
</tbody>
</table>

For full details:
[https://github.com/scalameta/metals/milestone/69?closed=1](https://github.com/scalameta/metals/milestone/69?closed=1)

Metals is a language server for Scala that works with VS Code, Vim, Emacs, Zed,
Helix and Sublime Text. Metals is developed at the
[Scala Center](https://scala.epfl.ch/) and [VirtusLab](https://virtuslab.com)
with the help from contributors from the community.

## TL;DR

Check out [https://scalameta.org/metals/](https://scalameta.org/metals/), and
give Metals a try!

- [Index implementations in JDK sources](#index-implementations-in-jdk-sources)
- [Value completions for union types](#value-completions-for-union-types)
- [Allow debugging for all build servers](#allow-debugging-for-all-build-servers)

## Index implementations in JDK sources

Since Metals v1.3.0 it's possible to search for implementations of classes or
classes' members inside the dependency sources. However, this wasn't enabled for
JDK sources as it added a substantial amount of indexing time even in smaller
projects.

In this version of Metals we added a central database that can be found under
the `.metals` directory in user home, which contains shared indexes of JDK
sources thus avoiding a need to index them more than once on any given machine.

![jdk-sources](https://i.imgur.com/lTMmhD8.gif)

This great improvement was added by [kasiaMarek](https://github.com/kasiaMarek)

## Value completions for union types

Union types are a new feature in Scala 3 that allows types to be combined when
we need to specify that certain value can be of more than one type.

For example we can have:

```scala
val a: Int | String = "Hello!"
val b: Int | String = 123
```

In this version of Metals [kasiaMarek](https://github.com/kasiaMarek) added
support for value completions where union types are unions of specific literal
types. If used together with intersection types it will still work as expected.

![example](https://i.imgur.com/FKrytqC.png)

The feature will work on latest LTS and Next Scala versions as it required some
work upstream in the compiler itself.

## Allow debugging for all build servers

For a long while it was possible to debug your code only when using Metals with
Bloop or sbt server. This was caused by the fact that debugging was implemented
in a separate library and would require additional data from the build tools.

In this version we were able to work around that and bring debugging
capabilities to Metals in case a server doesn't provide debugging by itself.
Unfortunately, in those cases hot code reload will not be available.

This should work both for main classes and tests.

Since this is quite a new feature please do let us know about any issues.

This is another great feature was brought by
[kasiaMarek](https://github.com/kasiaMarek).

## Miscellaneous

- bugfix: correctly resolve project's java in doctor and problem resolver
[kasiaMarek](https://github.com/kasiaMarek)
- bugfix: Don't use -X options in .jvmopts for tests
[tgodzik](https://github.com/tgodzik)
- bugfix: auto import for really long names
[kasiaMarek](https://github.com/kasiaMarek)
- bugfix: Queue references calls to prevent OOM
[kasiaMarek](https://github.com/kasiaMarek)
- bugfix: MAke convert to named args for `extends`
[kasiaMarek](https://github.com/kasiaMarek)
- bugfix: Show errors for Scala 3 in Bazel correctly
[tgodzik](https://github.com/tgodzik)
- bugfix: change project ref setting to support VSCode workspace folder reload
[kasiaMarek](https://github.com/kasiaMarek)
- bugfix: use already imported package aliases for auto import
[kasiaMarek](https://github.com/kasiaMarek)
- bugfix: clear diagnostics after close for single file
[kasiaMarek](https://github.com/kasiaMarek)

## Contributors

Big thanks to everybody who contributed to this release or reported an issue!

```
$ git shortlog -sn --no-merges v1.3.2..v1.3.3
16 Katarzyna Marek
16 Tomasz Godzik
7 Scalameta Bot
```

## Merged PRs

## [v1.3.3](https://github.com/scalameta/metals/tree/v1.3.3) (2024-07-12)

[Full Changelog](https://github.com/scalameta/metals/compare/v1.3.2...v1.3.3)

**Merged pull requests:**

- fix: clear diagnostics after close for single file
[\#6576](https://github.com/scalameta/metals/pull/6576)
([kasiaMarek](https://github.com/kasiaMarek))
- fix: correctly get build target deps for DAP
[\#6580](https://github.com/scalameta/metals/pull/6580)
([kasiaMarek](https://github.com/kasiaMarek))
- chore: Try to use intransitive instead
[\#6573](https://github.com/scalameta/metals/pull/6573)
([tgodzik](https://github.com/tgodzik))
- chore: Bump Bloop to 1.6.0
[\#6574](https://github.com/scalameta/metals/pull/6574)
([tgodzik](https://github.com/tgodzik))
- fix: use already imported package aliases for auto import
[\#6575](https://github.com/scalameta/metals/pull/6575)
([kasiaMarek](https://github.com/kasiaMarek))
- bugfix: Bump scala debug adapter
[\#6568](https://github.com/scalameta/metals/pull/6568)
([tgodzik](https://github.com/tgodzik))
- bugfix: Don't search for stacktrace line if at word is not present
[\#6555](https://github.com/scalameta/metals/pull/6555)
([tgodzik](https://github.com/tgodzik))
- bugfix: Don't calculate digest every time build tool is used
[\#6561](https://github.com/scalameta/metals/pull/6561)
([tgodzik](https://github.com/tgodzik))
- fix: change project ref setting to support VSCode workspace folder reload
[\#6563](https://github.com/scalameta/metals/pull/6563)
([kasiaMarek](https://github.com/kasiaMarek))
- bugfix: Use latest stable mill version
[\#6566](https://github.com/scalameta/metals/pull/6566)
([tgodzik](https://github.com/tgodzik))
- feat: run DAP for test suites in Metals
[\#6551](https://github.com/scalameta/metals/pull/6551)
([kasiaMarek](https://github.com/kasiaMarek))
- chore: move mill test to newest mill version
[\#6562](https://github.com/scalameta/metals/pull/6562)
([kasiaMarek](https://github.com/kasiaMarek))
- bugfix: Fix tests after circe released version for 0.5
[\#6560](https://github.com/scalameta/metals/pull/6560)
([tgodzik](https://github.com/tgodzik))
- build(deps): Update bloop-config from 1.5.5 to 2.0.2
[\#6534](https://github.com/scalameta/metals/pull/6534)
([scalameta-bot](https://github.com/scalameta-bot))
- bugfix: Show errors for Scala 3 in Bazel correctly
[\#6556](https://github.com/scalameta/metals/pull/6556)
([tgodzik](https://github.com/tgodzik))
- chore: Bump local search to fix it
[\#6554](https://github.com/scalameta/metals/pull/6554)
([tgodzik](https://github.com/tgodzik))
- improvement: Don't query database on each format
[\#6550](https://github.com/scalameta/metals/pull/6550)
([tgodzik](https://github.com/tgodzik))
- add test for `@` in path for Windows
[\#6545](https://github.com/scalameta/metals/pull/6545)
([kasiaMarek](https://github.com/kasiaMarek))
- build(deps): Update protobuf-java from 4.27.1 to 4.27.2
[\#6546](https://github.com/scalameta/metals/pull/6546)
([scalameta-bot](https://github.com/scalameta-bot))
- build(deps): Update ammonite-util from 3.0.0-M2-12-951bbc1e to
3.0.0-M2-13-23a8ef64 [\#6547](https://github.com/scalameta/metals/pull/6547)
([scalameta-bot](https://github.com/scalameta-bot))
- build(deps): Update cli_3, scala-cli-bsp from 1.3.2 to 1.4.0
[\#6548](https://github.com/scalameta/metals/pull/6548)
([scalameta-bot](https://github.com/scalameta-bot))
- improvement: add debug adapter for running main class to metals
[\#6383](https://github.com/scalameta/metals/pull/6383)
([kasiaMarek](https://github.com/kasiaMarek))
- fix: convert to named args for `extends`
[\#6537](https://github.com/scalameta/metals/pull/6537)
([kasiaMarek](https://github.com/kasiaMarek))
- Queue pc references calls to prevent OOM
[\#6539](https://github.com/scalameta/metals/pull/6539)
([kasiaMarek](https://github.com/kasiaMarek))
- fix: cover additional cases for singleton types
[\#6541](https://github.com/scalameta/metals/pull/6541)
([kasiaMarek](https://github.com/kasiaMarek))
- chore: update `MillVersionSuite` in `TestGroups`
[\#6543](https://github.com/scalameta/metals/pull/6543)
([kasiaMarek](https://github.com/kasiaMarek))
- fix: don't pass mill version as arg to command line
[\#6542](https://github.com/scalameta/metals/pull/6542)
([kasiaMarek](https://github.com/kasiaMarek))
- fix: auto import for really long names
[\#6531](https://github.com/scalameta/metals/pull/6531)
([kasiaMarek](https://github.com/kasiaMarek))
- build(deps): Update semanticdb-java from 0.9.10 to 0.10.0
[\#6536](https://github.com/scalameta/metals/pull/6536)
([scalameta-bot](https://github.com/scalameta-bot))
- bugfix: Always require \_ to calculate scala version from jar
[\#6538](https://github.com/scalameta/metals/pull/6538)
([tgodzik](https://github.com/tgodzik))
- bugfix: Don't use everything in .jvmopts for tests
[\#6526](https://github.com/scalameta/metals/pull/6526)
([tgodzik](https://github.com/tgodzik))
- feat: add value completions for union types
[\#6498](https://github.com/scalameta/metals/pull/6498)
([kasiaMarek](https://github.com/kasiaMarek))
- build(deps): Update scalameta, semanticdb-scalac, ... from 4.9.6 to 4.9.7
[\#6530](https://github.com/scalameta/metals/pull/6530)
([scalameta-bot](https://github.com/scalameta-bot))
- build(deps): Update ammonite-util from 3.0.0-M2-11-713b6963 to
3.0.0-M2-12-951bbc1e [\#6528](https://github.com/scalameta/metals/pull/6528)
([scalameta-bot](https://github.com/scalameta-bot))
- improvement: add jdk indexing
[\#6481](https://github.com/scalameta/metals/pull/6481)
([kasiaMarek](https://github.com/kasiaMarek))
- fix: correctly resolve project's java in doctor and problem resolver
[\#6517](https://github.com/scalameta/metals/pull/6517)
([kasiaMarek](https://github.com/kasiaMarek))
- docs: release notes v1.3.2
[\#6518](https://github.com/scalameta/metals/pull/6518)
([kasiaMarek](https://github.com/kasiaMarek))

0 comments on commit 1a8e04d

Please sign in to comment.