Commit Graph

10192 Commits

Author SHA1 Message Date
Taichi Yamakawa 5bdba54a3c Support a system property for onChangedBuildSource
Resolve the issue https://github.com/sbt/sbt/issues/5679
2020-11-17 00:58:25 +09:00
eugene yokota b911bad4ee
Merge pull request #6089 from eed3si9n/wip/build
bundledLauncherProj needs to be published
2020-11-16 00:57:52 -05:00
Eugene Yokota d19efc2c1d bundledLauncherProj needs to be published 2020-11-15 23:38:48 -05:00
eugene yokota b20c2d14e5
Merge pull request #6086 from eed3si9n/wip/bumpzinc
Zinc 1.4.3
2020-11-15 20:58:59 -05:00
Eugene Yokota 0561517d46 Zinc 1.4.3 2020-11-15 18:30:03 -05:00
eugene yokota d34c34d177
Merge pull request #6085 from eed3si9n/wip/metabuild-classpath2
Use the classpath obtained by the launcher for metabuild, take 2
2020-11-15 14:40:28 -05:00
Eugene Yokota b1a8f11011 Use the classpath obtained by the launcher for metabuild, take 2
Ref https://github.com/sbt/sbt/pull/4443
Fixes https://github.com/sbt/sbt/issues/5750

In #4443 I implemented an optimization where the metabuild would no longer re-resolve numerous sbt artifacts for metabuilds each time, and instead use whatever the JARs provided by the launcher. At the time, this technique didn't work for Coursier so I've placed in some workarounds for it. Now that Coursier's resolution has improved, it seems like the workaround is actually causing more harm. This removes the bandaid, and local testing shows that it seems to be working.

For instance, we no longer need to put in `ThisBuild / useCoursier := false` in sbt/sbt's `project/plugins.sbt`.
2020-11-15 12:19:03 -05:00
eugene yokota fedee2ba06
Merge pull request #6082 from nafg/develop
GCMonitor improvements
2020-11-15 02:51:31 -05:00
Eugene Yokota f7656b17d6 Cron 2020-11-15 02:47:06 -05:00
Eugene Yokota 4499149887 Use Bintray for nightly 2020-11-15 02:43:31 -05:00
nafg 3c2565722a Tweak warning text 2020-11-15 00:05:06 -05:00
Naftoli Gugenheim 889b101cbd Update tests for fixed GCMonitor 2020-11-15 00:00:50 -05:00
Naftoli Gugenheim 6cca595420 Add file headers 2020-11-15 00:00:50 -05:00
Naftoli Gugenheim 1c258b8fc9 GCMonitor: Unit tests, refactor, and improve
* Refactor so as to be testable
 * Queue stores the _beginning_ timestamp of each GC time delta
 * Message states the correct time over which the GC time was recorded
 * Add heap stats from java.lang.Runtime to the message
2020-11-15 00:00:50 -05:00
Naftoli Gugenheim af7346f565 Program to manually test GCMonitor 2020-11-15 00:00:50 -05:00
Eugene Yokota 427966a2bc Exclude bundledLauncherProj from upperModules 2020-11-14 21:22:29 -05:00
Eugene Yokota 868d804679 Nightly requires extra resolver 2020-11-14 19:30:57 -05:00
Eugene Yokota 897cc2b50c Fix cross building of util-interface 2020-11-14 18:58:25 -05:00
Eugene Yokota aac0f5e010 Nightly requires io +publishLocal 2020-11-14 15:16:46 -05:00
eugene yokota d606be8c67
Merge pull request #6083 from eed3si9n/wip/multiple
Add fresh build validation
2020-11-14 15:00:10 -05:00
Eugene Yokota 1523601696 Build from fresh modules 2020-11-14 14:23:48 -05:00
eugene yokota d651c95c03
Merge pull request #6077 from eed3si9n/wip/build
Migrate to GitHub Actions
2020-11-09 05:22:10 -05:00
Eugene Yokota 3d02f8902e Mark project/src-scala-binary-version as pending 2020-11-09 04:13:41 -05:00
Eugene Yokota 4c0885f84e Work around compiler bridge concurrency issue 2020-11-09 03:58:20 -05:00
Eugene Yokota ecc40471b5 Migrate to GitHub Actions
Ref https://github.com/sbt/sbt/issues/6031
2020-11-08 20:04:48 -05:00
eugene yokota 5e9677e338
Merge pull request #6076 from eed3si9n/wip/bogusbuild
Preparatory GitHub Actions
2020-11-08 19:16:25 -05:00
Eugene Yokota 476b9ef541 Preparatory GitHub Actions
Ref https://github.com/sbt/sbt/issues/6031
2020-11-08 19:12:42 -05:00
eugene yokota e3131a8205
Merge pull request #6067 from eatkins/sbt-ci
Fix console with -Dsbt.ci=true
2020-11-06 17:40:19 -05:00
eugene yokota 031d2c6655
Merge pull request #6071 from eatkins/join-thread
Throw timeoutexception in JoinThread
2020-11-06 17:37:24 -05:00
eugene yokota ac6c962a63
Merge pull request #6073 from eatkins/fix-console-cancellation
Fix console task cancellation
2020-11-06 17:37:06 -05:00
Ethan Atkins ceee8ac492 Fix console task cancellation
When the sbt main loop is blocked by console, any other connected client
is prompted that they can kill the task by typing cancel. The
implementation for the console task is to write some input that will
cause the console to exit because the scala 2.12 console cannot be
safely killed with an interrupt. This input, however, was being blocked
from written to the console because the console input stream was holding
the readThread lock. We can be fix this and propagate the input to the
console we wish to terminate by synchronizing on a different lock
object. This should have no impact outside of cancelling the console
because that is the only place where we call the write method of
WriteableInputStream.
2020-11-06 13:56:01 -08:00
eugene yokota 92cbaa925f
Merge pull request #6069 from eatkins/remove-unnecessary-log-line
Remove unnecessary log line in thin client
2020-11-06 07:39:32 -05:00
eugene yokota 87b168b8b3
Merge pull request #6068 from eatkins/color-completions
Fix tab completions if color is disabled
2020-11-06 07:36:37 -05:00
Ethan Atkins 748dfd6e67 Throw timeoutexception in JoinThread
Rather than throwing an interrupted exception if we fail to join a
thread, we should throw a timeout exception.
2020-11-05 11:09:01 -08:00
Ethan Atkins 583ad06aac Remove unnecessary log line in thin client
When a batch command is run with the thin client, it logs an info
message that the command completed. This is unnecessary given that
completion is implied by the success or failure method that follows. It
made the output look a little different in the thin client vs the
console.
2020-11-05 10:13:21 -08:00
Ethan Atkins c1fcf5c531 Fix console with -Dsbt.ci=true
If a user runs sbt -Dsbt.ci=true with the latest code, sbt immediately
exits. This was because we were passing the SimpleTerminal into jline3
and jline 3 would end up exiting immediately. Instead we can still make
a console terminal if there is a console available. An alternative
approach would have been to use a dumb terminal with -Dsbt.ci=true, but
the dumb terminal experience is not great (tab completions don't work
for example), so I thought this was a better fix.
2020-11-05 10:02:37 -08:00
Ethan Atkins e18f14b3c3 Fix tab completions if color is disabled
Tab completions did not work well in sbt 1.4.x when run with
-Dsbt.color=false. This was because we were stripping a bunch of ansi
codes, which caused some problems with the jline 3 completion engine.
Instead of stripping the ansi codes, we can set the jline max_colors
capability to 1 if color is disabled. With this change, the completions
are similar to 1.3.13 except that in jline 2 the user has to hit tab
twice to see all of the available candidates while in jline 3, the
candidates are immediately printed below the prompt.
2020-11-05 09:55:20 -08:00
eugene yokota e5164cdf43
Merge pull request #6063 from eed3si9n/wip/sbt-bumps
Bump sbt versions
2020-11-05 00:40:29 -05:00
Ethan Atkins 2b55aa38ae Bump sbt versions 2020-11-04 23:45:59 -05:00
eugene yokota 19ae383f9f
Merge pull request #6041 from eatkins/active-json
Start server if active.json file is removed
2020-11-04 23:06:45 -05:00
eugene yokota a0cf4b5b42
Merge pull request #6051 from eatkins/virtual-console
Only create console terminal if process has console
2020-11-04 23:04:14 -05:00
eugene yokota b78f8f390b
Merge pull request #6054 from eatkins/scripted-batch-execution
Restore old `scriptedBatchExecution := false` semantics
2020-11-04 23:03:54 -05:00
eugene yokota aba92ad90e
Merge pull request #6052 from eatkins/old-scripted-tests
Move scripted-sbt-old ScriptedTests file
2020-11-04 23:03:31 -05:00
Ethan Atkins 5376c33cd7
Merge branch 'develop' into old-scripted-tests 2020-11-04 18:48:15 -08:00
Ethan Atkins 749d32df36 Set the default scriptedBatchExecution to true
sbt itself effectively runs its scripted test with
scriptedBatchExecution true and scriptedParallelInstances 1. The
performance is much better when this works. This can cause issues, see
https://github.com/sbt/sbt/issues/6042, but we inadvertently made this
behavior the default in 1.4.0 and it took about a month before #6042 was
reported so I think most users would benefit from this default.
2020-11-04 18:47:31 -08:00
Ethan Atkins 3b9b20051f Restore old scripted behavior with batch tests disabled
When 1 is passed in as the sbtInstances argument to runInParallel, all
of the tests get batched together in a single sbt session. The run
methods in ScriptedRunner were delegating to runInParallel and as a
result were causing all of the tests to be batched, which was not how it
used to work in sbt 1.3.x. To fix this we can instead pass in
Int.MaxValue for the number of sbt instances. The Int.MaxValue parameter
causes the batch size to be set to 1 in the batchScriptedRunner method
which causes the scriptedRunners variable to have the same size as the
number of tests. We then can prevent a parallel array from being used if
the sbtInstances is deteced to be the Int.MaxValue sentinel.
2020-11-04 18:47:31 -08:00
Ethan Atkins afbceb062f Only create console terminal if process has console
Intellij import was broken in sbt 1.4.2 because we increased the
scenarios in which virtual io is used. The problem wasn't actually
virtual io but that we create a console terminal with jline3 and that
could cause issues reading input from System.in. This can be fixed by
only creating an instance of ConsoleTerminal if a console is actually
available for the sbt process. When hasConsole is false, the
consoleTerminalHolder will point to the SimpleTerminal whose inputStream
method just reads directly from System.in. After making this change, I
verified that intellij import worked again on windows.

We also don't want to make a console terminal if it is a dumb terminal
because jline 3 ends up having problems with the ConsoleTerminal.
2020-11-04 18:47:01 -08:00
Ethan Atkins 7e1384608e Fix console when supershell is disabled
The sbt console didn't work with supershell disabled because setting
that parameter was causing the terminal type to be dumb which only works
in some very specific situations. When Terminal.isAnsiSupported was
false, we were setting sbt to use a dumb terminal. We really only want
to use a dumb terminal if virtual io is off. It also doesn't necessarily
make sense to automatically disable general ansi codes even if
supershell is disabled by system property.
2020-11-04 18:47:01 -08:00
Ethan Atkins 3b09ff6af7 Support ansi by default if color is supported
Scalatest will check the ansiCodesSupported value of a console appender
to decide whether or not to colorize its output. We were setting
isAnsiSupported to false by default in ci to prevent the ConsoleAppender
from adding ansi codes to the output. The only place though where we
were doing that was in adding a ClearScreenAfterCursor to the end of
each log line. This was done for supershell but there is actually other
logic in supershell processing that adds these anyway.
2020-11-04 18:47:01 -08:00
eugene yokota 4983fbd536
Merge pull request #6060 from eatkins/test-cross-fix
Bump scalatest version in tests/test-cross
2020-11-04 21:38:53 -05:00