Skip to content

Commit

Permalink
* Set version to 0.5.0-RC2
Browse files Browse the repository at this point in the history
* Generate changelog for 0.5.0-RC2
* Convert changelog script to be scala-cli compatible
  • Loading branch information
WojciechMazur committed Mar 12, 2024
1 parent eec6156 commit 2454e93
Show file tree
Hide file tree
Showing 5 changed files with 150 additions and 9 deletions.
138 changes: 138 additions & 0 deletions docs/changelog/0.5.x/0.5.0-RC2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# 0.5.0-RC2 (2024-03-13)

Check out the documentation at
[https://scala-native.readthedocs.io/](https://scala-native.readthedocs.io/en/latest)

## TL;DR
* Second release candidate for the Scala Native 0.5.0, see changelog of [0.5.0-RC1.md](./0.5.0-RC1.md) for details of changes introduced in 0.5.x line.
* **Not backward compatible with previous releases**,
* Added support for multithreading based on platform threads
* Added support for targeting 32-bit architectures
* Initial source level debugging support
* Various changes to the build system. See "Build Integrator features" below.
* Removed stub implementation for partially implemented Java Standard Library types
* SIP-51 support: artifacts for every Scala standard library version

## Supported Scala versions

| Scala Binary Version | Supported Scala Versions |
| -------------------- | ------------------------ |
| 2.12 | 2.12.14 ... 2.12.19 |
| 2.13 | 2.13.8 ... 2.13.13 |
| 3 | 3.1.2 ... 3.1.3<br>3.2.0 ... 3.2.2<br>3.3.0 ... 3.3.3<br>3.4.0 |


> Upon release of new Scala version (stable, or Scala 3 RC) version dependent artifacts would be published without a new release.
<br>
<table>
<tbody>
<tr>
<td>Commits since 0.5.0-C1:</td>
<td align="center">39</td>
</tr>
<tr>
<td>Contributors:</td>
<td align="center">7</td>
</tr>
</tbody>
</table>

## Contributors

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

```
$ git shortlog -sn --no-merges v0.5.0-RC1..
22 Wojciech Mazur
6 Kirill A. Korinsky
5 LeeTibbert
2 Lorenzo Gabriele
1 Anton Sviridov
1 João Costa
1 Michel Davit
```

## Merged PRs

## [v0.5.0-RC2](https://github.com/scala-native/scala-native/tree/v0.5.0-RC2) (2024-03-123)

[Full Changelog](https://github.com/scala-native/scala-native/compare/v0.5.0-RC1...v0.5.0-RC2)

**Merged pull requests:**

## Scala Native runtime

- refactor: Fix placement of access of `scala.scalanative.runtime` definitions
[\#3805](https://github.com/scala-native/scala-native/pull/3805)
([WojciechMazur](https://github.com/WojciechMazur))
- feature: Add `unsafe.Ptr.{+,-, apply, update}` variants taking Long
[\#3807](https://github.com/scala-native/scala-native/pull/3807)
([WojciechMazur](https://github.com/WojciechMazur))
- feature: Define an extension method for conversion `.toCSize` as an alias to `.toUSize`
[\#3808](https://github.com/scala-native/scala-native/pull/3808)
([WojciechMazur](https://github.com/WojciechMazur))
- feature: Allow to create overload of extern method
[\#3809](https://github.com/scala-native/scala-native/pull/3809)
([WojciechMazur](https://github.com/WojciechMazur))
- Preliminary support of OpenBSD/amd64
[\#3817](https://github.com/scala-native/scala-native/pull/3817)
([catap](https://github.com/catap))
- Preliminary support of NetBSD/amd64
[\#3835](https://github.com/scala-native/scala-native/pull/3835)
([catap](https://github.com/catap))


## Toolchain
- fix: Fix emitting of stack-growth guards and `Await.result`
[\#3804](https://github.com/scala-native/scala-native/pull/3804)
([WojciechMazur](https://github.com/WojciechMazur))
- refactor: More explicit `NativeConfig.multithreading` setting
[\#3811](https://github.com/scala-native/scala-native/pull/3811)
([WojciechMazur](https://github.com/WojciechMazur))
- refactor: Restrict access to tools and nir types
[\#3812](https://github.com/scala-native/scala-native/pull/3812)
([WojciechMazur](https://github.com/WojciechMazur))
- Align FoundServiceProviders table in logs
[\#3797](https://github.com/scala-native/scala-native/pull/3797)
([lolgab](https://github.com/lolgab))
- refactor: Replace single `asan` config entry with sanitizer selector
[\#3830](https://github.com/scala-native/scala-native/pull/3830)
([WojciechMazur](https://github.com/WojciechMazur))
- feature: Allow to enable strict semantic of extern function calls.
[\#3829](https://github.com/scala-native/scala-native/pull/3829)
([WojciechMazur](https://github.com/WojciechMazur))
- improvment: Warn when using LTO.thin on MacOS
[\#3833](https://github.com/scala-native/scala-native/pull/3833)
([WojciechMazur](https://github.com/WojciechMazur))
- fix: Try to mitigate Windows AccessDeniedException when using `IO.deleteRecursive`
[\#3834](https://github.com/scala-native/scala-native/pull/3834)
([WojciechMazur](https://github.com/WojciechMazur))

## Java Standard Library
- JVM behavior parity for unresolved addresses
[\#3803](https://github.com/scala-native/scala-native/pull/3803)
([RustedBones](https://github.com/RustedBones))
- fix: Execute `WeakReference` post-cleanup callbacks only in `java.lang.Thread`
[\#3815](https://github.com/scala-native/scala-native/pull/3815)
([WojciechMazur](https://github.com/WojciechMazur))
- Fix #3796, #3786: Implement UTF-8 support in java.util.zip classes
[\#3814](https://github.com/scala-native/scala-native/pull/3814)
([LeeTibbert](https://github.com/LeeTibbert))
- improvement: implement java.util.BitSet#stream
[\#3819](https://github.com/scala-native/scala-native/pull/3819)
([LeeTibbert](https://github.com/LeeTibbert))
- fix: Retry `read` when interrupted by signal in `AbstractPlainSocketImpl`
[\#3827](https://github.com/scala-native/scala-native/pull/3827)
([WojciechMazur](https://github.com/WojciechMazur))

## POSIX bindings
- Add `chroot` syscall
[\#3822](https://github.com/scala-native/scala-native/pull/3822)
([catap](https://github.com/catap))
- Add `pledge` and `unveil`
[\#3823](https://github.com/scala-native/scala-native/pull/3823)
([catap](https://github.com/catap))
- Expose scheduler policy
[\#3831](https://github.com/scala-native/scala-native/pull/3831)
([catap](https://github.com/catap))
1 change: 1 addition & 0 deletions docs/changelog/0.5.x/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@
:maxdepth: 1

0.5.0-RC1
0.5.0-RC2
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ def generateScalaNativeCurrentYear():
# The short X.Y version.
version = u'0.5'
# The full version, including alpha/beta/rc tags.
release = u'0.5.0-SNAPSHOT'
release = u'0.5.0-RC2'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
2 changes: 1 addition & 1 deletion nir/src/main/scala/scala/scalanative/nir/Versions.scala
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ object Versions {
final val revision: Int = 10 // a.k.a. MINOR version

/* Current public release version of Scala Native. */
final val current: String = "0.5.0-SNAPSHOT"
final val current: String = "0.5.0-RC2"
final val currentBinaryVersion: String = binaryVersion(current)

private object FullVersion {
Expand Down
16 changes: 9 additions & 7 deletions scripts/changelog.sc → scripts/changelog.scala
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Based on Ammonite script created by Tomasz Godzik in scalameta/metals https://github.com/scalameta/metals/commits/main/bin/merged_prs.sc
import $ivy.`org.kohsuke:github-api:1.114`
//> using dep org.kohsuke:github-api:1.316
//> using toolkit latest

import scala.collection.mutable.ListBuffer
import scala.collection.JavaConverters._
Expand All @@ -16,7 +17,7 @@ val defaultToken = sys.env.get("GITHUB_TOKEN")
def main(
firstTag: String,
lastTag: String,
githubToken: Option[String]
githubToken: String
) = {
val author = os.proc(List("git", "config", "user.name")).call().out.trim()
val commits = os
Expand Down Expand Up @@ -46,9 +47,10 @@ def main(
"--pretty=format:%H"
)

val token = githubToken.orElse(defaultToken).getOrElse {
throw new Exception("No github API token was specified")
}
val token =
Option(githubToken).filter(_.nonEmpty).orElse(defaultToken).getOrElse {
throw new Exception("No github API token was specified")
}

val output = os.proc(command).call().out.trim()

Expand Down Expand Up @@ -92,8 +94,8 @@ def main(
)

val pathToReleaseNotes =
os.pwd / "docs" / "changelog" / s"$today-release-$lastTag.md"
os.write(pathToReleaseNotes, releaseNotes)
os.pwd / "docs" / "changelog" / s"$lastTag.md"
os.write.over(pathToReleaseNotes, releaseNotes)
}

def today: String = {
Expand Down

0 comments on commit 2454e93

Please sign in to comment.