-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Re-organize top-level-plugins #16
Comments
Objective 2 is hard: sbt-explicit-dependencies has repeatedly saved me, whereas many people hate it. Scalafmt is not too controversial anymore, but has naysayers. Headers are somewhere between? And should scalafix be enabled out of the box? Should certain scalafix linters be run out of the box? We could fight for months! But the payoff to Objective 2 is that we could get a typelevel.g8 that creates projects with familiar workflows to our 70-and-growing maintainers, with a minimal build.sbt so older projects continue to work like newer projects. Most of our builds ain't special. |
Yeah, I don't think we need to make it hard, just make it clear it's not for everyone, and the really good stuff is in the ci-release plugin anyway. Basically all the Typelevel projects I contributed to use scalafmt and headers so I think those are fine. They all use mdoc too, but maybe that belongs in a site plugin that also makes it as easy as ci-release (and again, not for those who have opinions). |
Currently, the super-plugins are
sbt-typelevel
(which brings in everything but CI release) andsbt-typelevel-ci-release
(which adds in CI release). This was following after sbt-spiewak, to accommodate projects that don't want to do CI releases.Based on feedback from the Discord discussion yesterday, I think I got it wrong. My take-aways were that:
However, there is also Ross's desire in #11 (reply in thread) for a plugin:
So, my new proposal is:
sbt-typelevel-ci-release
: a super-plugin including versioning+mima+signing+sonatype+ci-release, but no more.sbt-typelevel
: a super-super-plugin, that gets you all of the above, plus whatever else is needed to achieve Ross's vision, so scalac settings, even scalafmt, sbt-header, mdoc, what-have-you.(2) will be very opinionated of course, but I think that's perfectly fine for many projects. Anyone who wants more fine-grained-control can always drop down to
sbt-typelevel-ci-release
and then build up their plugin/settings stack as they see fit.The text was updated successfully, but these errors were encountered: