Commit Graph

6014 Commits

Author SHA1 Message Date
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
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
Eugene Yokota 88f50ce35d Fix console, JLine issue
Fixes #3482
2018-03-30 23:09:01 -04:00
Ethan Atkins fff32db7ce Use MacOSXWatchService instead of PollingWatchService
This watch service should be more responsive and significantly reduce
the disk overhead of the polling based service for large repos.
2018-03-28 17:11:30 -07:00
eugene yokota fa56cf394b
Merge pull request #4046 from eed3si9n/wip/bumpsbt
bump to 1.1.3-SNAPSHOT
2018-03-28 09:11:19 -04:00
Eugene Yokota 1b77b35333 bump to 1.1.3-SNAPSHOT 2018-03-27 06:53:05 -04:00
Eugene Yokota f607b6c73f sbt 1.1.2 2018-03-27 06:52:32 -04:00
Dale Wijnand b0f9fe77b6
Merge pull request #4036 from eed3si9n/wip/fix-startup-log
Fixes -error not suppressing startup logs
2018-03-26 15:28:50 +01:00
eugene yokota cd40d1ac77
Merge pull request #4031 from eed3si9n/wip/bump
bump modules
2018-03-26 10:26:25 -04:00
Eugene Yokota 25ab94d96a Fixes -error not suppressing startup logs
Fixes #3849

This brings back the 0.13 logic:

```scala
  def setGlobalLogLevel(s: State, level: Level.Value): State = {
    s.globalLogging.full match {
      case a: AbstractLogger => a.setLevel(level)
      case _                 => ()
    }
    s.put(BasicKeys.explicitGlobalLogLevels, true).put(Keys.logLevel.key, level)
  }
```
2018-03-25 14:56:00 -04:00
Dale Wijnand 131c2a7a68
Merge pull request #4033 from eed3si9n/wip/new-mess
Fixes new command leaving behind target directory
2018-03-24 22:57:41 +00:00
Eugene Yokota b111b05d5f Fixes new command leaving target directory
Fixes #2835

This fixes `new` command creating `target` directory by moving the `target` to a staging directory in the command itself.
2018-03-24 13:45:35 -04:00
Eugene Yokota 67e1e4a9ff improve server testing
previously I was using separate thread in a forked test to test the server, but that is not enough isolation to run multiple server tests.
This adds `RunFromSourceMain.fork(workingDirectory: File)`, which allows us to run a fresh sbt on the given working directory. Next, I've refactored the stateful client-side buffer to a class `TestServer`.
2018-03-24 12:09:41 -04:00
Eugene Yokota 9d2d81645b bump modules 2018-03-24 11:02:40 +09:00
Dale Wijnand a43c18e4f9
Merge pull request #4030 from eatkins/vector-1.1
Vector 1.1
2018-03-23 11:50:34 +00:00
Ethan Atkins 9b24e9f9eb Use ConcurrentLinkedDeque for EventHandler
ArrayList::add is not thread safe. I ran into cases where async tests
using utests would fail even when all of the individual tests passed.
This was because multiple threads called back into the handle method of
the handler instance variable, which just delegated to eventList::add.
When this happened, one of the events would get added to the list as a
null reference, which would manifest as an NPE upstream on the master
process. After this change, my tests stopped failing.
2018-03-21 10:50:30 -07:00
Ethan Atkins 8eb2d7389d Add test for async utest TestSuites
Sometimes when utest runs async tests (i.e. tests that return a future)
the test suite will fail even when none of the individual tests do. This
is due to a data race in sbt. Most, but not all, of the time, this test
will induce that race.
2018-03-21 10:41:41 -07:00
Dale Wijnand c6df309073
Merge pull request #4025 from tiqwab/fix-parsing-id
Fix handling id in jsonrpc model
2018-03-18 16:35:44 +00:00
Naohisa Murakami 9d01bdff68
Merge pull request #1 from eed3si9n/wip/fix-parsing-id
Add test case for number id in JSON-RPC
2018-03-18 07:38:25 +09:00
Eugene Yokota e5d2588927 Add test case for number id in JSON-RPC 2018-03-18 02:11:23 +09:00
tiqwab a5119a411c Fix handling id in jsonrpc model
Fix #3861
2018-03-17 22:41:47 +09:00
Dale Wijnand 6abf4c9e00
Merge pull request #4022 from tmiyamon/support-vscode-test-compile
support test compile on saving in vscode
2018-03-16 10:12:32 +00:00
tmiyamon 77ffbe896d support test compile on saving in vscode 2018-03-16 18:03:52 +09:00
eugene yokota 571417dc6f
Merge pull request #4019 from itohiro73/improve-contributing
Improve instruction for locally built sbt in CONTRIBUTING.md
2018-03-16 15:24:22 +09:00
Hiroshi Ito 04ab2d30e1 Improve instruction for locally built sbt in CONTRIBUTING.md 2018-03-16 15:07:17 +09:00
eugene yokota 4efce7e877
Merge pull request #3991 from dwijnand/ExecStatusEvent-exitCode
Add an optional exitCode to ExecStatusEvent so clients can use it
2018-03-16 00:27:17 +09:00
Dale Wijnand 98332c0891
Reply to sbt/exec w/ a Response/Error w/ error code 2018-03-14 13:56:29 +00:00
Dale Wijnand bde6365013
Add an optional exitCode to ExecStatusEvent so clients can use it 2018-03-14 11:56:51 +00:00
Dale Wijnand 7baf97d2a6
Introduce ErrorCodes.UnknownError
Defined in the application defined errors range.
2018-03-14 11:56:51 +00:00
Dale Wijnand 3530349e9a
Rename ErrorCodes' UnknownErrorCode to UnknownServerError
Allows for a non-server-specific unknown error code to be defined.
2018-03-14 11:56:50 +00:00
Dale Wijnand 8972287892
Cleanup ErrorCodes 2018-03-14 11:56:29 +00:00
Dale Wijnand dd4de14593
Upgrade to contraband 0.4.0 2018-03-12 15:39:07 +00:00
Eugene Yokota b82a1870a7 add tests around scope delegation 2018-03-10 17:24:39 -05:00
eugene yokota 3559de06aa
Merge pull request #3999 from eed3si9n/wip/cache-watch-service
[bport] Cache watch service
2018-03-09 17:42:11 -05:00
Ethan Atkins 5df1d8e23f Cache watch service
I noticed that my custom WatchService was never cleaned up by sbt and
realized that after every build we were making a new WatchService. At
the same time, we were reusing the WatchState from the previous run,
which was using the original WatchService. This was particularly
problematic because it prevented us from registering any paths with the
new watch service. This may have prevented some of the file updates
from being seen by the watch service. Moreover, because we lost the
reference to the original WatchService, there was no way to clean it up,
which was a resource leak.

May be related to #3775, #3695
2018-03-09 06:11:52 -05:00
Dale Wijnand ed5a8c118b
Upgrade to contraband 0.3.3 2018-03-08 12:49:38 +00:00
eugene yokota 27bbde810d
Merge pull request #3970 from retronym/ticket/3737
Use Java's redirectInput rather than sys.process's connectInput
2018-02-28 04:14:05 -05:00
eugene yokota 083dd8cad8
Merge pull request #3967 from dwijnand/buildinfo
Upgrade to sbt-buildinfo 0.8.0
2018-02-28 02:13:01 -05:00
Jason Zaugg b0f52510e0 Use Java's redirectInput rather than sys.process's connectInput
Fixes #3737
2018-02-26 11:30:30 +10:00
Dale Wijnand 27fe5a6957
Re-write toolboxClasspath to use sbt-buildinfo 2018-02-23 13:20:19 +00:00
Dale Wijnand 8182741480
Cleanup generateToolboxClasspath 2018-02-23 13:19:07 +00:00
Dale Wijnand edb828a8d7
Upgrade to sbt-buildinfo 0.8.0 2018-02-23 13:19:05 +00:00
Dale Wijnand c7cc52092e
Fix how fullClasspath is defined in TestBuildInfo 2018-02-23 13:17:51 +00:00
xuwei-k c1e0785a1f
delete buildinfo.BuildInfo from sbt main
sbt-buildinfo plugin have `buildInfoScopedSettings(Compile)` in default.
I think it is unnecessary. or we should set "buildinfoPackage in Compile" and "buildinfoObject in Compile"

https://github.com/sbt/sbt-buildinfo/blob/v0.7.0/src/main/scala/sbtbuildinfo/BuildInfoPlugin.scala#L11
2018-02-22 16:46:58 +00:00
eugene yokota 9a5b7bcf6d
Merge pull request #3960 from eed3si9n/wip/contributing
update CONTRIBUTING
2018-02-21 15:09:09 -05:00
Eugene Yokota 0e1823d730 cleanCache 2018-02-21 15:08:10 -05:00