Commit Graph

10434 Commits

Author SHA1 Message Date
eugene yokota 355b724bf2 Merge pull request #2915 from eed3si9n/wip/2692
[fport] Fixes #2686 by resetting scalaVersion for updateSbtClassifiers
2017-01-14 09:08:02 -05:00
eugene yokota fd36a20183 Merge pull request #2907 from eed3si9n/topic/logging
Split log output per channel
2017-01-14 08:34:44 -05:00
eugene yokota abaece6c96 Merge pull request #2913 from eed3si9n/fport/2653
[fport] dependsOn can now be used inside a .sbt file for a subproject
2017-01-14 08:19:42 -05:00
Eugene Yokota e0e9f8d1fc Fix patch error 2017-01-14 07:54:25 -05:00
eugene yokota 3ce06e15c5 Merge pull request #2911 from eed3si9n/fport/cached-resolution-configurations
[fport] Adds back dependency-management /cached-resolution-configurations
2017-01-14 07:45:20 -05:00
Eugene Yokota f3817ad64f Fixes #2686 by resetting scalaVersion for updateSbtClassifiers
Ref #2634

updateSbtClassifiers uses an artificially created dependency graph set
in classifiersModule. The problem is that ivyScala instance is reused
from the outer scope that has the user project's scalaVersion as
demonstrated as follows:

    scala> val is = (ivyScala in updateSbtClassifiers).eval
    is: Option[sbt.IvyScala] =
Some(IvyScala(2.9.3,2.9.3,List(),true,false,true,org.scala-lang))

This change fixes #2686 by redefining ivyScala with scalaVersion and
scalaBinaryVersion scoped to updateSbtClassifiers task. The existing
scripted test was modified to reproduce the bug.
2017-01-14 07:37:32 -05:00
Anatoly Fayngelerin 6dc2cf4210 dependsOn can now be used inside a .sbt file for a subproject 2017-01-14 07:18:10 -05:00
Eugene Yokota 88a644eb4d Use parent's toString 2017-01-14 06:35:27 -05:00
Eugene Yokota dc71b171da Cache now takes in account of the parent of the classloader 2017-01-14 06:35:07 -05:00
Eugene Yokota 0cfde91a4b Remove unnecessary val 2017-01-14 06:31:20 -05:00
Eugene Yokota 700017be91 Cache based on the underlying URLs of the ClassLoader per review 2017-01-14 06:31:04 -05:00
Eugene Yokota 7a00ba3925 Display log when sbt loading is going to pause
Def.make could take 10099ms for 100 subprojects. This would display
logs probably for projects with more than 10 subprojects, which might
pause for a few seconds during load.
2017-01-14 06:30:45 -05:00
Eugene Yokota 843f79ffd9 Improve structureIndex call by using Vector
This call takes around 8035ms for 100 subprojects. I don't think using
Vector here had any noticeable effect.
2017-01-14 06:30:16 -05:00
Eugene Yokota 3e29a48b56 Cache global user settings 2017-01-14 06:28:00 -05:00
Eugene Yokota f523b9da0d Add perf logs 2017-01-14 06:25:07 -05:00
Eugene Yokota 622823fa36 Adds back dependency-management /cached-resolution-configurations
Ref #2573 #2574, #2513, #2435
2017-01-14 05:52:05 -05:00
Eugene Yokota 2b6253cc4a Fix scripted project/extra 2017-01-14 03:00:07 -05:00
Eugene Yokota 0365d7cb11 Uncomment publishEvent 2017-01-14 02:30:59 -05:00
Eugene Yokota 9a33550c79 Fix the scripted actions/set 2017-01-14 02:26:23 -05:00
Eugene Yokota b34e182d21 Bump util, lm, and zinc 2017-01-14 00:57:46 -05:00
Dale Wijnand 5b8de3abca Merge pull request #68 from eed3si9n/topic/logging
Reimplement multi-logger using log4j2
2017-01-13 11:41:10 +00:00
Eugene Yokota 8c9dfda089 Split log output per channel
LogManager implementation is modified to use ManagedLogger, which can swap out backing Appenders without re-creating the log instance.

The State was also changed to track `currentCommand: Option[Exec]`. `Exec` knows the origin of the command invocation, and using that we can now send the network-originated events only to the network clients.

Combined together, this implements log splitting between the sbt clients (channels).
2017-01-13 03:00:02 -05:00
Eugene Yokota 36eeb4578d Reimplement multi-logger using log4j2
This introduces ManagedLogger, which is a wrapper around Log4j2's async logging.
Log4j2 separates the notion of logger (the code that collects events) and appender (the code that acts on events). The old code is kept around intentionally to minimize breakage during transition.
2017-01-13 02:49:12 -05:00
Dale Wijnand c1648ac0a5 Merge pull request #2859 from eed3si9n/wip/protocol
Start lightweight client
2017-01-12 15:43:32 +00:00
David McNelis d38a00598f Adding a clarifying remark to the whatDependsOn command, to make it clear how to run the command from outside an sbt shell 2017-01-09 14:38:46 -05:00
Eugene Yokota c75a69bbb0 Cross build to Scala 2.12 2017-01-07 06:27:38 -05:00
Eugene Yokota 66301dbaf1 Adjust from rebasing 2017-01-06 11:35:08 -05:00
Eugene Yokota a2df1a4b53 Formatting fix 2017-01-06 11:27:41 -05:00
Eugene Yokota a0dde10f8a Use NonFatal 2017-01-06 11:27:41 -05:00
Eugene Yokota 9ee69e5dd4 Fix test 2017-01-06 11:27:41 -05:00
Eugene Yokota 892e25d23f Introduce execId that gets sent back
Now the client can put an id on each exec.
This can then be tracked and/or be used to block the user input.
2017-01-06 11:27:41 -05:00
Eugene Yokota 1bf50e10c8 Use Exec in State 2017-01-06 11:27:41 -05:00
Eugene Yokota d96ef58605 Unifying towards using events 2017-01-06 11:27:06 -05:00
Eugene Yokota 46d8f952e4 Refactor to make NetworkChannel per client connection 2017-01-06 11:27:06 -05:00
Eugene Yokota d618f91c6d Replace var with AtomicReference 2017-01-06 11:27:06 -05:00
Eugene Yokota fa7253ece3 Start lightweight client
This is the beginning of a lightweight client, which talks to the
server over Contraband-generated JSON API. Given that the server is
started on port 5173:

```
$ cd /tmp/bogus
$ sbt client localhost:5173
> compile
StatusEvent(Processing, Vector(compile, server))
StatusEvent(Ready, Vector())
StatusEvent(Processing, Vector(, server))
StatusEvent(Ready, Vector())
```
2017-01-06 11:27:06 -05:00
Eugene Yokota 272e733b87 Update to Contraband 2017-01-06 11:27:06 -05:00
eugene yokota 274c8ec65f Merge pull request #2892 from dwijnand/upgrades
-sbinary/+sjson-new, -datatype/+contraband & upgrades
2017-01-05 18:22:51 -05:00
Dale Wijnand 7fcfec8b8e
-sbinary/+sjson-new, -datatype/+contraband & upgrades
* start to replace sbinary with sjson-new
* upgrade from sbt/datatype to sbt/contraband
* upgrade and migrate to new sbt modules APIs
2017-01-05 21:59:00 +00:00
Dale Wijnand 376718f976 Upgrade to newer modules, migrate to new lm api 2017-01-05 17:40:23 +00:00
Dale Wijnand 50df95953e
Add missing "d" task testing in actions/depends-on 2017-01-05 14:40:39 +00:00
Eugene Yokota 104c5f53b3
Adding sleep in scripted test to make sure timestamp bumps [fport]
Fixes #2546. Ref #958
scripted compiler-project/error-in-invalidated has been failing
frequently on Travis CI. It seems like incremental compiler is not
catching the change in source occasionally for `changes/A2.scala`.

Forward-port of #2565
2017-01-05 14:40:39 +00:00
Dale Wijnand b7fefb367f
Bump sbt/io to 1.0.0-M8, w/ fix to IO.relativize 2017-01-05 13:18:59 +00:00
Eugene Yokota 496e8d3e4f Cross building 2016-12-22 22:30:45 -05:00
eugene yokota 6b26b709f1 Merge pull request #66 from eed3si9n/wip/212
Scala 2.12
2016-12-22 15:30:50 -05:00
Eugene Yokota 008f9bee2e Work around Scala 2.12 init deadlock (SI-9824) 2016-12-22 14:37:59 -05:00
Eugene Yokota 2573c0f092 Scala 2.12 2016-12-22 11:59:00 -05:00
Eugene Yokota 61bdfd4367 Update Eval
https://github.com/typelevel/cats/blob/e2335730a958ce605f0d75f1b0d838454
2336aaf/core/src/main/scala/cats/Eval.scala
2016-12-22 11:50:34 -05:00
eugene yokota f26238e035 Merge pull request #65 from eed3si9n/wip/rebuild
sjson-new 0.7.0 and HList format
2016-12-22 11:26:43 -05:00
Eugene Yokota 5014e7f6b7 sjson-new 0.7.0 2016-12-22 11:19:48 -05:00