Commit Graph

9384 Commits

Author SHA1 Message Date
Dale Wijnand 2e2c3f6e89
Merge pull request #4087 from hvesalai/patch-2
Update to Jline 2.14.6
2018-04-11 11:55:56 +01:00
Eugene Yokota 190dc23f70 Fixes linter that detects missing .value
Fixes #4079

#3216 introduced a linter that checks against missing `.value`, but the tree only checked for `Ident`. This doesn't work because in reality the symbols of build.sbt are transformed to `$somehash.npmInstallTask` where `somehash` is the wrapper object we create. Similarly for the built-in keys, they are presented as `sbt.Keys.compile`.

With this change unused task will fail to load the build with the following message:

```
/sbt-4079/build.sbt:26: error: The key `compile` is not being invoked inside the task definition.

Problem: Keys missing `.value` are not initialized and their dependency is not registered.

Solution: Replace `compile` by `compile.value` or remove it if unused.

  compile
  ^
/sbt-4079/build.sbt:27: error: The key `npmInstallTask` is not being invoked inside the task definition.

Problem: Keys missing `.value` are not initialized and their dependency is not registered.

Solution: Replace `npmInstallTask` by `npmInstallTask.value` or remove it if unused.

  npmInstallTask
  ^
```
2018-04-11 01:31:38 -04:00
Heikki Vesalainen e5a37cad42
Update to Jline 2.14.6
This version of Jline fixes three things for Emacs users:
- ANSI colors are now enabled for Emacs.
- Terminal echo is now disabled for Emacs.
- History is enabled for all dump terminals.
2018-04-11 00:10:56 +03:00
Dale Wijnand 54a6262f7f
Merge pull request #4041 from dwijnand/Scoped.equals
Give Scoped a default equals/hashCode implementation
2018-04-10 06:10:55 +01:00
eugene yokota 7ae83cc755
Merge pull request #4085 from eed3si9n/wip/bumpzinc
Zinc 1.1.5
2018-04-09 13:37:50 -04:00
Eugene Yokota b9eb7764f3 Zinc 1.1.5 2018-04-09 12:37:42 -04:00
Dale Wijnand 4fc45e0155
Merge pull request #4056 from BennyHill/fix/3042
Introduce CompositeProject
2018-04-09 11:30:17 +01:00
Dale Wijnand 98e2b0b5d3
Merge pull request #4082 from eed3si9n/wip/repl
Re-fixing console and JLine
2018-04-09 11:23:58 +01:00
Dale Wijnand 6718803ee6
Merge pull request #4080 from naferx/add-lastGrep
Add lastGrep command
2018-04-09 07:19:17 +01:00
Eugene Yokota 8ed796fb25 Re-fixing console and JLine
Fixes #3482 take 2

I thought I tested #4054 using a local build, but when I ran 1.1.3, `console` did not display anything that I typed.
Switching to `usingTerminal` which calls `terminal.restore` similar to what I had in 1.1.1 fixes `console`.
2018-04-09 00:11:17 -04:00
eugene yokota 4d7149a7f3
Merge pull request #4078 from retronym/bump/houserules
Upgrade to latest sbt-houserules
2018-04-08 14:33:04 -04:00
eugene yokota 435a1c47f5
Merge pull request #159 from retronym/bump/houserules
Upgrade to latest sbt-houserules
2018-04-08 14:32:02 -04:00
Nafer Sanabria 3e201cee4d Add lastGrep command 2018-04-08 10:56:25 -05:00
Jason Zaugg f2d3cfea3f Upgrade to latest sbt-houserules 2018-04-08 14:37:51 +10:00
Jason Zaugg 1abb0a3641 Upgrade to latest sbt-houserules 2018-04-08 14:31:48 +10:00
Alistair Johnson b0ad1a44c0 Remove projects parameter from CompositeProject.expand 2018-04-07 15:56:31 +02:00
eugene yokota 314ff46432
Merge pull request #4076 from eed3si9n/wip/bumplauncher
launcher 1.0.4
2018-04-06 19:35:27 -04:00
Alistair Johnson 6cce4f6fd9 Remove duplicate Projects 2018-04-07 01:26:40 +02:00
Alistair Johnson 68c005e4b5 Ensure precedence of top level Projects over ComponentProjects 2018-04-07 01:04:45 +02:00
Eugene Yokota 32385c8bb7 launcher 1.0.4 2018-04-06 18:36:10 -04:00
eugene yokota 8f6e2fe371
Merge pull request #4075 from eed3si9n/wip/bump
bump IO and Zinc
2018-04-06 18:10:07 -04:00
Eugene Yokota 8781c16cbb bump IO and Zinc 2018-04-06 16:30:33 -04:00
eugene yokota 7690a1bd24
Merge pull request #4070 from steinybot/fix/3432
Add dependencyResolution scoped to updateSbtClassifiers task
2018-04-06 05:58:27 -04:00
eugene yokota 5c32787574
Merge pull request #4071 from eed3si9n/wip/closewatch
Use MacOSXWatchService instead of PollingWatchService
2018-04-06 04:34:30 -04:00
Eugene Yokota 707bf08c4e Add new closewatch mode 2018-04-05 20:29:26 -04:00
Jason Pickens 9043a92e8b
Merge branch '1.1.x' into fix/3432 2018-04-06 10:55:21 +12:00
Jason Steenstra-Pickens 4dc76e2b38 Add dependencyResolution scoped to updateSbtClassifiers task
Fixes #3432
2018-04-06 10:41:31 +12:00
eugene yokota a0ef0c02d9
Merge pull request #158 from dwijnand/StringTypeTag-opt-test-enforcement
Enforce invariant in StringTypeTag optimisation
2018-04-05 10:45:34 -04:00
eugene yokota b7d3959241
Merge pull request #4067 from eed3si9n/wip/reload-perf
perf: optimize hash for build
2018-04-05 10:37:41 -04:00
Dale Wijnand 029952895b
Enforce invariant in StringTypeTag optimisation
Or, put differently, "Add a test for sbt/util#153".
2018-04-05 09:43:22 +01:00
Eugene Yokota ad3692b2df Use NIO Files.getLastModifiedTime for hashing 2018-04-05 04:22:16 -04:00
Eugene Yokota 04d6a8b44c perf: optimize hash for build
This hot path was discovered by retronym using FlameGraph.
This removes intermediate creation of Array.

`filesModifiedBytes` in particular was bad as it was going through all `*.class` files, each generating an Array. This replaces that with `fileModifiedHash` that accepts `MessageDigest`.

According to the flamegraph, evalCommon footprint reduced from 4.5% to 3.6%.
Using `time sbt reload reload reload exit`, the median reduced from 41.450s to 39.467s.
2018-04-05 03:26:02 -04:00
Alistair Johnson 03fc4ac686 Ensure unique project Id in composite projects 2018-04-04 21:01:05 +02:00
Alistair Johnson 77b536b25f Merge branch '1.x' of https://github.com/BennyHill/sbt into fix/3042
Conflicts:
	main/src/main/scala/sbt/internal/BuildDef.scala
	main/src/main/scala/sbt/internal/EvaluateConfigurations.scala
2018-04-04 18:30:56 +02:00
Dale Wijnand 91483e7f06
Merge pull request #4063 from dwijnand/fix-migrate-url
Fix migrate URL
2018-04-04 16:31:57 +01:00
Dale Wijnand 3692db9068
Give Scoped a default equals/hashCode implementation 2018-04-04 15:04:53 +01:00
Dale Wijnand 8c1337455d
Fix migrate URL
Fixes #4062
2018-04-04 14:26:03 +01:00
Dale Wijnand 218621b745
Merge pull request #4061 from eed3si9n/wip/perf
document profiling tools
2018-04-04 14:22:44 +01:00
Eugene Yokota 56ffac22b7 document profiling tools 2018-04-04 01:29:56 -04:00
eugene yokota eff17f4517
Merge pull request #4060 from dwijnand/cleanup/unused-tparam
Remove unused type param in Scaladoc
2018-04-03 19:10:05 -04:00
Jason Zaugg 015c3103f4
Merge pull request #1 from dwijnand/topic/quietly-cancel
Catch RejectedExecutionException into an Incomplete
2018-04-04 09:05:54 +10:00
Dale Wijnand 120ab65134
Remove unused type param in Scaladoc 2018-04-03 17:15:27 +01:00
Dale Wijnand 9b3694e443
Merge pull request #4054 from eed3si9n/wip/repl
Fix console, JLine issue
2018-04-03 16:44:42 +01:00
Dale Wijnand d444b6b8ae
Merge pull request #4002 from eed3si9n/wip/opt-delegation-test
add tests around scope delegation
2018-04-03 16:43:09 +01:00
Dale Wijnand b78a0f667b
Catch RejectedExecutionException in CompletionService.submit 2018-04-03 16:05:56 +01:00
Dale Wijnand d48aa310e6
Catch RejectedExecutionException in Execute#runKeep 2018-04-03 16:02:52 +01:00
Dale Wijnand dfbb67e7d6
Merge pull request #4023 from dwijnand/reintroduce-Command.process
Re-introduce Command.process
2018-04-03 14:57:29 +01:00
Jason Zaugg 70d3484896 Avoid printing RejectedExectionExeption stack trace after cancellation
Before:

```
[warn] /Users/jz/code/zinc/internal/zinc-apiinfo/src/main/scala/xsbt/api/Visit.scala:187:19: parameter value s in method visitString is never used
[warn]   def visitString(s: String): Unit = ()
[warn]                   ^
^C
[warn] Canceling execution...
[warn] 10 warnings found
[info] Compilation has been cancelled
[error] java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ExecutorCompletionService$QueueingFuture@33ec70dd rejected from java.util.concurrent.ThreadPoolExecutor@4b832de6[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1410]
[error]     at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063)
[error]     at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830)
[error]     at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379)
[error]     at java.util.concurrent.ExecutorCompletionService.submit(ExecutorCompletionService.java:181)
[error]     at sbt.CompletionService$.submit(CompletionService.scala:36)
[error]     at sbt.ConcurrentRestrictions$$anon$4.submitValid(ConcurrentRestrictions.scala:176)
[error]     at sbt.ConcurrentRestrictions$$anon$4.submit(ConcurrentRestrictions.scala:165)
[error]     at sbt.Execute.submit(Execute.scala:262)
[error]     at sbt.Execute.ready(Execute.scala:242)
[error]     at sbt.Execute.notifyDone(Execute.scala:181)
[error]     at sbt.Execute.$anonfun$retire$2(Execute.scala:152)
[error]     at sbt.Execute.$anonfun$retire$2$adapted(Execute.scala:151)
[error]     at scala.collection.immutable.List.foreach(List.scala:389)
[error]     at sbt.Execute.retire(Execute.scala:151)
[error]     at sbt.Execute.$anonfun$work$2(Execute.scala:279)
[error]     at sbt.Execute$$anon$1.process(Execute.scala:24)
[error]     at sbt.Execute.next$1(Execute.scala:104)
[error]     at sbt.Execute.processAll(Execute.scala:107)
[error]     at sbt.Execute.runKeep(Execute.scala:84)
[error]     at sbt.EvaluateTask$.liftedTree1$1(EvaluateTask.scala:387)
[error]     at sbt.EvaluateTask$.run$1(EvaluateTask.scala:386)
[error]     at sbt.EvaluateTask$.runTask(EvaluateTask.scala:405)
[error]     at sbt.internal.Aggregation$.$anonfun$timedRun$4(Aggregation.scala:100)
[error]     at sbt.EvaluateTask$.withStreams(EvaluateTask.scala:331)
[error]     at sbt.internal.Aggregation$.timedRun(Aggregation.scala:98)
[error]     at sbt.internal.Aggregation$.runTasks(Aggregation.scala:111)
[error]     at sbt.internal.Aggregation$.$anonfun$applyTasks$1(Aggregation.scala:68)
[error]     at sbt.Command$.$anonfun$applyEffect$2(Command.scala:130)
[error]     at sbt.internal.Aggregation$.$anonfun$evaluatingParser$11(Aggregation.scala:220)
[error]     at sbt.internal.Act$.$anonfun$actParser0$3(Act.scala:387)
[error]     at sbt.MainLoop$.processCommand(MainLoop.scala:154)
[error]     at sbt.MainLoop$.$anonfun$next$2(MainLoop.scala:137)
[error]     at sbt.State$$anon$1.runCmd$1(State.scala:242)
[error]     at sbt.State$$anon$1.process(State.scala:248)
[error]     at sbt.MainLoop$.$anonfun$next$1(MainLoop.scala:137)
[error]     at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error]     at sbt.MainLoop$.next(MainLoop.scala:137)
[error]     at sbt.MainLoop$.run(MainLoop.scala:130)
[error]     at sbt.MainLoop$.$anonfun$runWithNewLog$1(MainLoop.scala:108)
[error]     at sbt.io.Using.apply(Using.scala:22)
[error]     at sbt.MainLoop$.runWithNewLog(MainLoop.scala:102)
[error]     at sbt.MainLoop$.runAndClearLast(MainLoop.scala:58)
[error]     at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:43)
[error]     at sbt.MainLoop$.runLogged(MainLoop.scala:35)
[error]     at sbt.StandardMain$.runManaged(Main.scala:113)
[error]     at sbt.xMain.run(Main.scala:76)
[error]     at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
[error]     at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
[error]     at xsbt.boot.Launch$.run(Launch.scala:109)
[error]     at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
[error]     at xsbt.boot.Launch$.launch(Launch.scala:117)
[error]     at xsbt.boot.Launch$.apply(Launch.scala:18)
[error]     at xsbt.boot.Boot$.runImpl(Boot.scala:41)
[error]     at xsbt.boot.Boot$.main(Boot.scala:17)
[error]     at xsbt.boot.Boot.main(Boot.scala)
[error] java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ExecutorCompletionService$QueueingFuture@33ec70dd rejected from java.util.concurrent.ThreadPoolExecutor@4b832de6[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1410]
[error] Use 'last' for the full log.
```

After:

```
sbt:zinc Root> ;zincIvyIntegration/cleanClasses;zincIvyIntegration/compile
[success] Total time: 0 s, completed 03/04/2018 2:24:33 PM
[info] Compiling 5 Scala sources and 1 Java source to /Users/jz/code/zinc/internal/zinc-ivy-integration/target/scala-2.12/classes ...
[warn] /Users/jz/code/zinc/internal/zinc-ivy-integration/src/main/scala/sbt/internal/inc/ResourceLoader.scala:14:42: parameter value classLoader in method getPropertiesFor is never used
[warn]   def getPropertiesFor(resource: String, classLoader: ClassLoader): Properties = {
[warn]                                          ^
[warn] /Users/jz/code/zinc/internal/zinc-ivy-integration/src/main/scala/sbt/internal/inc/ZincComponentCompiler.scala:13:17: Unused import
[warn] import java.net.URLClassLoader
[warn]                 ^
[warn] /Users/jz/code/zinc/internal/zinc-ivy-integration/src/main/scala/sbt/internal/inc/ZincComponentCompiler.scala:137:26: Unused import
[warn]       import sbt.io.Path.toURLs
[warn]                          ^
[warn] /Users/jz/code/zinc/internal/zinc-ivy-integration/src/main/scala/sbt/internal/inc/ZincComponentCompiler.scala:94:30: The outer reference in this type test cannot be checked at run time.
[warn]     private final case class ScalaArtifacts(compiler: File, library: File, others: Vector[File])
[warn]                              ^
^C
[warn] Canceling execution...
[warn] four warnings found
[info] Compilation has been cancelled
[error] Total time: 1 s, completed 03/04/2018 2:24:35 PM
```

Best served with https://github.com/scala/scala/pull/6479

Fixes #3958
2018-04-03 14:27:21 +10:00
Jason Zaugg 0b801e7598 Bump Scala version to 2.12.5 2018-04-03 14:25:59 +10:00
Alistair Johnson 25bbc5f488 Add shadow tests for CompositeProjects 2018-04-02 20:46:07 +02:00