Project template and support files for IW projects

Michal Prihoda authored on 22 Aug 2021
project Minimalistic version working 3 years ago
sbt-iw-plugin-presets/ src Minimalistic version working 3 years ago
sbt-iw-projects/src/main/scala/works/iterative/ sbt Define default version scheme 3 years ago
src/main/ g8 Template working 3 years ago
.envrc Initial upload. 3 years ago
.gitignore Initial upload. 3 years ago
.scalafmt.conf Initial upload. 3 years ago
README.markdown Minimalistic version working 3 years ago
build.sbt Template working 3 years ago
flake.lock Initial upload. 3 years ago
flake.nix Initial upload. 3 years ago
shell.nix Initial upload. 3 years ago
README.markdown

IW Project Support

A Giter8 template for Iterative Works Scala projects!

The project contains default template for Scala projects, referencing plugins that help to maintain IW projects.

Vision

The goals are:

  • to simplify new project creation with favourite tools
  • to ease the maintenance of running projects, making it possible to upgrade the stack easily and uniformly accross all the projects

The envisioned process:

  1. Create project 1 using g8 iterative-works/iw-project-support.
  2. My favourite tools are readily available, without a need to specify versions and orgs/names.
  3. Develop, launch
  4. Update the dependencies to current ones, publish new version of the plugin.
  5. Update the plugin and get current tools
  6. Fix the code for the new libs and publish updates

This way the overhead of maintaining multiple projects should be lower, than having to do all the version updates manually.

Also, scalafix rewrites could be part of the project to ease the migrations even further.

Currently included

  • IWPluginPresets plugin that pulls in the default plugins used in all projects and shortcuts for a few other commonly used plugins (scalajs, lagom, play etc.)
  • IWMaterialsBOM plugin that adds shortcuts to currently used versions and settings of libraries used in IW projects (ZIO, Laminar etc.)
  • IWScalaProject auto triggered plugin which provides default settings for all projects and exports currently used scala versions

Template license

Written in 2021 by Michal Příhoda michal.prihoda@iterative.works

To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this template to the public domain worldwide. This template is distributed without any warranty. See http://creativecommons.org/publicdomain/zero/1.0/.