https://github.com/indoorvivants/scala-native-binary-template
Template to bootstrap Scala Native CLI projects, uploading platform binaries to Github Releases artifacts
https://github.com/indoorvivants/scala-native-binary-template
release scala scala-native scala3
Last synced: 8 months ago
JSON representation
Template to bootstrap Scala Native CLI projects, uploading platform binaries to Github Releases artifacts
- Host: GitHub
- URL: https://github.com/indoorvivants/scala-native-binary-template
- Owner: indoorvivants
- License: unlicense
- Created: 2024-06-12T09:57:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-15T10:49:52.000Z (10 months ago)
- Last Synced: 2025-03-26T23:11:21.515Z (9 months ago)
- Topics: release, scala, scala-native, scala3
- Language: Scala
- Homepage:
- Size: 15.6 KB
- Stars: 23
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Scala Native binary release template
This is a simple template demonstrating building a [Scala Native](https://scala-native.org/) binary and releasing it
on Github release for all natively supported platforms: Windows (amd64), Linux (amd64, arm64),
MacOS (arm64, amd64).
Binaries are given descriptive platform-specific names, and upon creating a Github release
for a tag starting with `v`, binaries for all platforms are uploaded to release artifacts.
The project itself
- Uses latest Scala 3
- Has a `lib` and `bin` projects, where `bin` depends on `lib`
The expectation is that most of the functionality of the binary is exposed as a library,
that can be published to Maven Central, and binary merely provides a CLI interface to
invoke that functionality.
You are of course free to remove the `lib` entirely.
Naming conventions loosely follow Coursier's practices.
## Debugging in VS Code
This template includes very basic setup for debugging with VS Code and [CodeLLDB extension](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb).
You should have a `Debug` configuration available, which will automatically build a binary by invoking `sbtn buildBinary` command -
so make sure you have sbtn installed (run `sbt installSbtn`).
Please note that debugging information in Scala Native is very experimental, so don't expect a rich debugging experience you can
get for LLDB-native languages like C or C++.
Some functionality will work. If you spot bugs, please raise an issue on [Scala Native](https://github.com/scala-native/scala-native/),
with a reproduction and possibly a screenshot from the debugger.
