Skip to content

Commit

Permalink
Release 0.4.4 (#2583)
Browse files Browse the repository at this point in the history
* Add changelog

* Set version to 0.4.4

* Update buildInfo pluginto 0.11.0 - old version was absent in the maven repo

* Update changelog
  • Loading branch information
WojciechMazur committed Mar 3, 2022
1 parent 748505d commit 5ef2dab
Show file tree
Hide file tree
Showing 5 changed files with 134 additions and 4 deletions.
129 changes: 129 additions & 0 deletions docs/changelog/0.4.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@

# 0.4.4 (2022-03-02)

We're happy to announce the new patch release of Scala Native v0.4.4, which brings improved support for Arm64, introduces experimental embeding of resources and adds dedicated ScalaNativeJUnitPlugin for easier setup of tests. Also in this release we'have fixed all the issues found in the recent support for Scala 3, including Selectables, cross version with Scala 2.13 dependencies and many more.

<table>
<tbody>
<tr>
<td>Commits since last release</td>
<td align="center">29</td>
</tr>
<tr>
<td>Merged PRs</td>
<td align="center">27</td>
</tr>
<tr>
<td>Contributors</td>
<td align="center">6</td>
</tr>
</tbody>
</table>

## Top changes

### Experimental support for embedding resources
Thanks to the effort of @jchyb you can embed resources of your project and use them at runtime using `Class[_].getResourceAsInputStream()` in the same way as on the JVM. If you use some native sources in your project, e.g. written in C, you don't need to worry about increased size of binary - all files in `resources/scala-native` directory would be ignored.
To enable experimental support of this feature enable it in Native Config:
```
nativeConfig ~= { _.withEmbedResources(true) }
```
More information about this new feature can be found [here](https://scala-native.readthedocs.io/en/v0.4.4/lib/javalib.html#embedding-resources)


### New sbt plugin - ScalaNativeJUnitPlugin
In this release we have added a new sbt plugin dedicated for easier setup of JUnit tests framework. `ScalaNatvieJUnitPlugin` is a port of similiar feature from Scala.js - it allows you to forget about specifing dedicated library dependencies for tests runtime. It does also ensure that JUnit plugin would no longer be included in dependencies of downstream libraries.

When migrating to newer version of Scala Native you enable both Scala Native support and setup JUnit runtime with the current version using only one setting in your project `enablePlugins(ScalaNativeJUnitPlugin)`. Remember to remove the old settings needed for JUnit support:
```
addCompilerPlugin("org.scala-native" % "junit-plugin" % nativeVersion cross CrossVersion.full)
libraryDependencies += "org.scala-native" %%% "junit-runtime" % nativeVersion % Test
```

### Improved Arm64 support
Last but not least we have improved our support for Arm64 architecture. This means that you can now use Scala Native on Apple M1 chips and Linux based arm64 devices.

## Contributors

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

```
$ git shortlog -sn --no-merges v0.4.3..v0.4.4
19 Wojciech Mazur
4 Jan Chyb
3 Eric K Richardson
1 Arman Bilge
1 Shadaj Laddad
1 algobardo
```

## Merged PRs

## [v0.4.4](https://github.com/scala-native/scala-native/tree/v0.4.4) (2022-03-02)

[Full Changelog](https://github.com/scala-native/scala-native/compare/v0.4.3...v0.4.4)

**Merged pull requests:**

## New features
- Add getResourceAsStream() via embedding resources
[\#2475](https://github.com/scala-native/scala-native/pull/2475)
([jchyb](https://github.com/jchyb))
- Add `ScalaNativeJUnitPlugin` for easy setup of JUnit tests
[\#2556](https://github.com/scala-native/scala-native/pull/2556)
([WojciechMazur](https://github.com/WojciechMazur))
- Port `java.util.BitSet`
[\#2565](https://github.com/scala-native/scala-native/pull/2565)
([armanbilge](https://github.com/armanbilge))
- Support PathMatching via Globs
[\#2559](https://github.com/scala-native/scala-native/pull/2559)
([jchyb](https://github.com/jchyb))

## Bug fixes
- Fix UnixPath.relativize when containing ..
[\#2542](https://github.com/scala-native/scala-native/pull/2542)
([algobardo](https://github.com/algobardo))
- Fix #2547: java.util.TimeZone stub is used instead of scala-java-time
[\#2548](https://github.com/scala-native/scala-native/pull/2548)
([ekrich](https://github.com/ekrich))
- Fix failing to link `CFuncPtr` created from adapted function
[\#2551](https://github.com/scala-native/scala-native/pull/2551)
([WojciechMazur](https://github.com/WojciechMazur))
- Add support for `scala.reflect.Selectable`
[\#2549](https://github.com/scala-native/scala-native/pull/2549)
([WojciechMazur](https://github.com/WojciechMazur))
- Fix incorrect self type of closures
[\#2554](https://github.com/scala-native/scala-native/pull/2554)
([WojciechMazur](https://github.com/WojciechMazur))
- Fix conflicting cross version suffixes when using `Cross.for3Use_2.13`
[\#2553](https://github.com/scala-native/scala-native/pull/2553)
([WojciechMazur](https://github.com/WojciechMazur))
- Fix failing to link usages of `.asInstanceOf[Nothing]`
[\#2555](https://github.com/scala-native/scala-native/pull/2555)
([WojciechMazur](https://github.com/WojciechMazur))
- Fix issues with "Is a directory" error in ResourceEmbedder
[\#2568](https://github.com/scala-native/scala-native/pull/2568)
([jchyb](https://github.com/jchyb))
- Fix runtime errors when cross-compiling to Arm64
[\#2573](https://github.com/scala-native/scala-native/pull/2573)
([WojciechMazur](https://github.com/WojciechMazur))
- Fix deprecated constructor `String(Array[Byte], Int, Int, Int)`
[\#2576](https://github.com/scala-native/scala-native/pull/2576)
([WojciechMazur](https://github.com/WojciechMazur))
- Fix NullPointerException when assigning null to non-Ptr types
[\#2575](https://github.com/scala-native/scala-native/pull/2575)
([WojciechMazur](https://github.com/WojciechMazur))
- Fix negation of floating point numbers
[\#2577](https://github.com/scala-native/scala-native/pull/2577)
([WojciechMazur](https://github.com/WojciechMazur))
- Add missing contructors for throwables and improve JVM compliance
[\#2578](https://github.com/scala-native/scala-native/pull/2578)
([WojciechMazur](https://github.com/WojciechMazur))
- Fix runtime problems on MacOS using M1 chips
[\#2579](https://github.com/scala-native/scala-native/pull/2579)
([WojciechMazur](https://github.com/WojciechMazur))

## Misc
- Update libunwind to LLVM 12.0.1
[\#2502](https://github.com/scala-native/scala-native/pull/2502)
([shadaj](https://github.com/shadaj))
1 change: 1 addition & 0 deletions docs/changelog/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Changelog
.. toctree::
:maxdepth: 1

0.4.4
0.4.3
0.4.3-RC2
0.4.3-RC1
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ def generateScalaNativeCurrentYear():
# built documents.
#
# The short X.Y version.
version = u'0.4.4-SNAPSHOT'
version = u'0.4.4'
# The full version, including alpha/beta/rc tags.
release = u'0.4.4-SNAPSHOT'
release = u'0.4.4'

# 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 = 9 // a.k.a. MINOR version

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

private object FullVersion {
Expand Down
2 changes: 1 addition & 1 deletion project/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Compile / unmanagedSourceDirectories ++= {

addSbtPlugin("org.portable-scala" % "sbt-platform-deps" % "1.0.1")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.0.1")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.9.0")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0")

libraryDependencies += "org.eclipse.jgit" % "org.eclipse.jgit.pgm" % "5.10.0.202012080955-r"

Expand Down

0 comments on commit 5ef2dab

Please sign in to comment.