|
| 1 | +# ✨ $name$ |
| 2 | + |
| 3 | +[](/LICENSE) |
| 4 | + |
| 5 | +[](https://github.com/$organization$/$name;format="lower,snake"$/stargazers) |
| 6 | + |
| 7 | +[](https://github.com/$organization$/$name;format="lower,snake"$/actions/workflows/ci.yml) |
| 8 | + |
| 9 | +$description$ |
| 10 | + |
| 11 | +## 🚀 Environment setup |
| 12 | + |
| 13 | +You only need the common tooling used for developing Scala applications: |
| 14 | + |
| 15 | +- [JDK](https://www.oracle.com/java/technologies/downloads/) |
| 16 | +- [SBT](https://www.scala-sbt.org/download) |
| 17 | + |
| 18 | +<details> |
| 19 | +<summary>Installing instructions for macOS with SDKMAN!</summary> |
| 20 | + |
| 21 | +If you use macOS, we would recommend using SDKMAN! to manage different JDK versions and tooling: |
| 22 | + |
| 23 | +1. [Install SDKMAN with homebrew](https://github.com/sdkman/homebrew-tap?tab=readme-ov-file#installation) |
| 24 | +2. Install the JDK you prefer. If you ask us, we will opt for: |
| 25 | + 1. [Check the latest Java LTS JDK version](https://endoflife.date/oracle-jdk) |
| 26 | + 2. Check the latest Zulu distribution version for that LTS with: |
| 27 | + ```shell |
| 28 | + sdk list java |
| 29 | + ``` |
| 30 | + 3. Install it: |
| 31 | + ```shell |
| 32 | + sdk install java XX.YY.ZZ-zulu |
| 33 | + ``` |
| 34 | +3. Install the latest SBT: |
| 35 | + ```shell |
| 36 | + sdk install sbt |
| 37 | + ``` |
| 38 | +</details> |
| 39 | + |
| 40 | +## ✅ Tests |
| 41 | + |
| 42 | +Just run: |
| 43 | + |
| 44 | +```shell |
| 45 | +sbt test |
| 46 | +``` |
| 47 | + |
| 48 | +There is also the `sbt t` alias 😊 |
| 49 | + |
| 50 | +## 🤽 Pre-push Git hook |
| 51 | + |
| 52 | +There's one Git hook included. It's inside the `doc/hooks` folder, and it will run the `prep` SBT task before pushing to any remote. |
| 53 | + |
| 54 | +This `prep` task is intended to run all the checks you consider before pushing. |
| 55 | +At this very moment, it tries to compile and check the code style rules with ScalaFmt. |
| 56 | + |
| 57 | +You can define what this task does by modifying the `prep` task in the `build.sbt` file. |
| 58 | +We like the approach of just having to run 1 single SBT task instead of multiple tasks because it's more efficient (the hook doesn't have to create multiple SBT sessions), and also because this way we can control the pre push tasks with the SBT alias defined at the `build.sbt` without altering the hooks. |
| 59 | + |
| 60 | +If you want to install this hook, just `cd doc/hooks` and run `./install-hooks.sh`. |
| 61 | + |
| 62 | +## ⚖️ License |
| 63 | + |
| 64 | +See [`LICENSE`](LICENSE). |
| 65 | + |
| 66 | +## 🤔 About |
| 67 | + |
| 68 | +Project developed by $organization$ and bootstrapped with the [Codely Scala Basic Skeleton (powered by Giter 8)](https://github.com/CodelyTV/scala-basic-skeleton.g8). |
0 commit comments