bleep icon indicating copy to clipboard operation
bleep copied to clipboard

[idea] interactive build creation / template builds

Open KristianAN opened this issue 1 year ago • 5 comments

creating new builds with vite has this nice feature where you select from common frameworks. test frameworks and if you want a TypeScript project. I think this would be a really cool feature to have.

These templates would have to build on some common Scala use-cases.

Some common template ideas:

Web

  • Http4s
  • Cask
  • Tapir (w/o backend?)
  • Smithy4s
  • ZIO-http

Frontend

  • Slinky
  • Tyrian
  • Laminar

Scala-native

  • No idea

Fullstack

  • Maybe too many opinions here

This kind of thing would be an adoption booster as it would get people into coding much faster. We could reuse sbt g8 templates and import the sbt builds, but I don't think this would provide a good experience. Rather we could set up some common interface for adding a template. The issue with keeping the templates in bleep is that the maintenance burden is on bleep maintainers. I think identifying the most commonly used project structures and adding those would be important.

Personally I think the benefits would outweigh the costs on this one if adoption is a long term goal.

KristianAN avatar Aug 10 '24 22:08 KristianAN

this would be a very good feature. some things are in place for this already with bleep build new, where you can specify wanted platforms and scala versions, and it'll generate a (cross) build for you. it wouldn't take too much to support adding a bunch of dependencies on demand, and some very simple code fragments

oyvindberg avatar Aug 10 '24 23:08 oyvindberg

There's already this for templates (maybe even interactive). https://www.foundweekends.org/giter8/

Bleep could have a built-in repository of blessed templates for common setups (while also allowing for arbitrary ones).

sideeffffect avatar Aug 11 '24 15:08 sideeffffect

using g8 we could fork already established sbt templates and rewrite them to bleep and give them our "blessing", similar to the sbt-plugins.

KristianAN avatar Aug 11 '24 16:08 KristianAN

Or just create g8 templates designed for Bleep from the start...

sideeffffect avatar Aug 11 '24 20:08 sideeffffect

Or just create g8 templates designed for Bleep from the start...

Sure, if that is less work :)

KristianAN avatar Aug 11 '24 22:08 KristianAN