Code Monkey home page Code Monkey logo

sbt-cake's People

Contributors

amirkarimi avatar by-dam avatar carlpulley avatar ferhtaydn avatar fommil avatar pjrt avatar slakah avatar teroxik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sbt-cake's Issues

Add in sbt-license-report plugin

It should be mandatory for all projects to be able to report on what software licenses they are using (amongst their respective library dependencies).

sbt-license-report provides us with the ability to generate license reports on a per module basis. This plugin should be added into sbt-cake and then enabled and used on all master branch builds.

Formater, linting and coding standards

My comments on the configuration of these plugins. I'd like to see a process of consensus and refinement.

In general and in my opinion the checks are too strict to be widely agreeable. A more lenient set of checks that provide the most value should be the objective.

Scalastyle + scalafmt:

  • 80 line width is too small. Suggest 120 at least.

Scalastyle:

  • Error level is too strict. Warning is sufficient.

Wart remover:
Seems to report a lot of questionable and opinionated issues. I would prefer to loosen the checks. Sprinkling suppress warnings annotations around the codebase is not ideal.

  • discarded non-Unit value
  • Function has default arguments (crazy)
  • case classes must be final (pointless)
  • Inferred type containing Any
  • Statements must return Unit
  • throw is disabled (pointless)

Permissive Default License

Looking at line

Seq("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0"))
. This feels a little dangerous, I doubt most of our internal projects are actually Apache licensed projects, and it feels a little too easy to forget to remove this license.

I would have thought that we would probably default to an all rights reserved license, allowing any project maintainer to easily amend to a more permissive license. (IANAL), but I would imagine that once a piece of source code is issued with a permissive license, then that license would be applied forever (it's not possible to remove the permissions granted by that license).

I'm all for open software, but it should be a conscious choice by the owner/maintainer of the software in question.

CI fatal-warnings setting

In CakeStandardsPlugin, this setting is questionable:

sys.env
.get("CI")
.fold(Seq.empty[String])(_ => Seq("-Xfatal-warnings"))

i.e. failing a CI build for compiler warnings that successfully build locally is not practicle in my opinion.

Modularize sbt-cake

sbt-cake shouldn't depend on Gatling, ...

It's not something that should be imposed on the users as their project might not even use Gatling.
But it turns out that Gatling is needed by the CakeTestRunnerPlugin so we should make things more modular for a better user experience.

(Same thing goes for docker ...)

Improve publishing plugin error output

When a publish fails due to a dirty git repo, we currently have little indication as to what was causing the repo to be dirty.

We need to add the output to the git status --porcelain command to the error output of publishing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.