sbt, the interactive build tool
Go to file
Ethan Atkins 03cb79bbfc Stop using ---/pair in SbtLauncherPlugin
I'd like to remove '---' and 'pair' in sbt 2 so I'm inlining the logic where
I find it. The '---' method is trivially implemented with a filter on
the sequence of files and filtering the output will not require io,
unlike '---'. For pair, I get confused every time I see it in the code
and it is rarely saving more than a line. While I understand that it may
have been convenient when the code using pair was originally written, I
don't think it is worth the maintenance cost. My specific issue is that
to me pair means tuple2, full stop. The definition of pair is:
def pair[T](mapper: File => Option[T], errorIfNone: Boolean = true): Seq[(File, T)]
First of all, it's not at all obvious when seen inline in the code that
it has the side effect of evaluating PathFinder.get. Moreover, it
doesn't return a general pair, it's a very specific pair with a File in
the first position. I just don't see how using pair improves upon, say:

val func: File => Option[(File, String)] = ???
globs.all.flatMap(func)

or

val func: File => Option[(File, String)] = ???
globs.all.map(f => func(f) match {
  case Some(r) => r
  case None => throw new IllegalStateException("Couldn't evaluate func for $f")
}) // or just define `func = File => (File, String)` and throw on an error
2019-03-22 07:53:41 -07:00
.github Fix CONTRIBUTING and link to it 2018-09-04 23:25:42 -04:00
core-macros/src/main/scala/sbt/internal/util/appmacro Fix Def cannot be used inside a taskDyn #3110 2018-12-11 21:49:42 -08:00
internal Unseal Parser 2019-03-15 11:11:25 -07:00
launch Adds sbt.boot.lock sysprop to opt-out 2018-02-08 13:02:39 +00:00
licenses move remaining pieces of sbt subproject to sbt_pending and fix notices 2010-09-21 21:55:50 -04:00
main Bump io 2019-03-22 07:53:41 -07:00
main-actions/src Avoid NPE on Run.<init> 2019-02-22 10:26:10 +10:00
main-command/src Bump io 2019-03-22 07:53:41 -07:00
main-settings/src Fix doc warning 2019-01-31 17:04:40 -08:00
notes Implement sequential[B](tasks: Seq[Initialize[Task[B]]]) and remove useless comment outs 2018-09-19 20:54:18 -04:00
project Stop using ---/pair in SbtLauncherPlugin 2019-03-22 07:53:41 -07:00
protocol/src/main [sbt-server] LSP completions support 2018-10-11 13:34:40 +01:00
run Use layered ClassLoaders in run and test tasks 2019-01-30 08:55:22 -08:00
sbt/src Bump io 2019-03-22 07:53:41 -07:00
scripted-plugin/src/main/scala/sbt -Xfatal-warnings in most subprojects 2018-09-18 11:47:55 -04:00
scripted-sbt-old/src/main/scala/sbt/test Update header 2018-09-14 04:53:36 -04:00
scripted-sbt-redux Allow sbt scripted tests to run in parallel 2019-01-31 17:43:14 -08:00
src/main/conscript 1.2.0 2018-07-30 00:56:36 -04:00
tasks open up ExecuteProgress, and adds a few keys 2019-03-19 00:42:46 -04:00
tasks-standard Lint Transform.scala 2019-01-31 10:53:07 -08:00
testing Rename some layering related fields/classes 2019-01-30 08:55:22 -08:00
vscode-sbt-scala Bump node modules for security fixes 2019-02-22 10:51:54 -05:00
.appveyor.yml improve Windows build 2018-02-07 18:16:21 -05:00
.gitattributes remove gittatributes, assume core.autocrlf=false 2018-06-26 17:38:05 +03:00
.gitignore adding a fatjar release (aka sbt-big) to the build 2018-11-07 08:37:49 +00:00
.java-version Configure JVM 1.8 in .java-version 2016-10-07 08:48:23 -05:00
.sbtopts Use .sbtopts to increase the RAM 2018-06-25 19:40:15 -04:00
.scalafmt.conf Improve code clarity with danglingParentheses = true 2018-04-24 16:09:49 +01:00
.travis.yml Add scripted tests for classloader-cache 2019-01-30 08:55:22 -08:00
CONTRIBUTING.md fix branch name in CONTRIBUTING 2018-09-10 16:18:40 +02:00
LICENSE Apache License 2.0 2018-09-14 03:38:58 -04:00
NOTICE Apache License 2.0 2018-09-14 03:38:58 -04:00
PROFILING.md fix typo 2018-07-08 22:18:57 +09:00
README.md update README. s/1.0.x/1.x/ 2018-02-13 10:00:50 +09:00
SUPPORT.md Split support into SUPPORT.md 2018-04-25 14:55:09 +01:00
build.sbt use tag when available 2019-03-22 02:28:14 -04:00
reset.sh 1.0.3-SNAPSHOT 2017-09-16 15:52:58 -04:00
sbt-allsources.sh Bump underlying modules to latest 2017-03-23 12:41:24 -04:00
server.md setting query is "sbt/setting" 2017-10-03 01:45:06 -04:00

README.md

Gitter Chat

sbt

sbt is a build tool for Scala, Java, and more.

For general documentation, see http://www.scala-sbt.org/.

sbt 1.x

This is the 1.x series of sbt. The source code of sbt is split across several Github repositories, including this one.

  • sbt/io hosts sbt.io module.
  • sbt/util hosts a collection of internally used modules.
  • sbt/librarymanagement hosts sbt.librarymanagement module that wraps Ivy.
  • sbt/zinc hosts Zinc, an incremental compiler for Scala.
  • sbt/sbt, this repository hosts modules that implements the build tool.
  • Setup: Describes getting started with the latest binary release.
  • FAQ: Explains how to get help and more.
  • sbt/sbt-zero-seven: hosts sbt 0.7.7 and earlier versions

Issues and Pull Requests

Please read CONTRIBUTING carefully before opening a GitHub Issue.

The short version: try searching or asking on StackOverflow.

license

See LICENSE.