/scala-basic-skeleton

🧬🌱 Scala Basic Skeleton: Template for bootstrapping your new Scala project following idiomatic best practices.

Primary LanguageScalaMIT LicenseMIT

Scala Bootstrap (base / project skeleton)

Important

Project deprecated in favor of Codely Scala Basic Skeleton (powered by Giter 8)

Software License Build Status

Introduction

This is a repository intended to serve as a starting point if you want to bootstrap a project in Scala.

It could be useful if you want to start from scratch a kata or a little exercise or project. The idea is that you don't have to worry about the boilerplate, just clone this repo and there you go:

How To Start

Video screencast (in Spanish)

  1. Clone this repository git clone https://github.com/CodelyTV/scala_bootstrap.
  2. Run SBT on the project directory sbt.
  3. Run the scalatests with t.
  4. Check the scalastyle in the production code with s and use the ts command to check the test code style.
  5. Check the scalaFmt with tf command to check the code style and apply guidelines with f.
  6. Start your project!

Pre-push Git hook

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.

This prep task is intended to run all the checks you consider before pushing. At this very moment, it try to compile and check the code style rules with ScalaStyle and ScalaFmt.

You can define what this task does just modifying the prep task in the build.sbt file. We like the approach of just running 1 single SBT task as the hook instead of multiple tasks because it's more efficient (the hook doesn't has to run SBT multiple times), and also because this way we can control the pre push tasks just with the SBT alias defined at the build.sbt without altering the hooks.

If you want to install this hook, just cd doc/hooks and run ./install-hooks.sh.

Other programming languages

About

This hopefully helpful utility has been developed by CodelyTV and contributors.

We'll try to maintain this project as simple as possible, but Pull Requests are welcomed!

License

The MIT License (MIT). Please see License File for more information.