Commit Graph

10434 Commits

Author SHA1 Message Date
Eugene Yokota 464325ad1d add a simpler version of snapshot-resolution
Ivy is able to check for SNAPSHOT across different resolvers.
Coursier seems to be sticky about the resolver within the TTL (24h).
2019-04-26 12:27:38 -04:00
Eugene Yokota ca53934941 fix csrCachePath 2019-04-26 12:27:38 -04:00
Eugene Yokota 4b4359f7b1 mark dependency-management/dynamic-revision pending 2019-04-26 12:27:38 -04:00
Eugene Yokota 795601f594 mark dependency-management/url pending
Ref https://github.com/coursier/coursier/issues/1127
2019-04-26 12:27:38 -04:00
Eugene Yokota 9a666b5418 use Ivy for some tests 2019-04-26 12:27:38 -04:00
Eugene Yokota b47ed4e62a mark dependency-management/default-resolvers pending 2019-04-26 12:27:38 -04:00
Eugene Yokota 944e955d06 put sbtCp ahead of resolved JARs
Ref https://github.com/sbt/sbt/pull/4443
Ref https://github.com/coursier/coursier/issues/1128

This is a workaround for Coursier not excluding sbt modules.
2019-04-26 12:27:38 -04:00
Eugene Yokota 5614cfcbb6 Move log to outer task 2019-04-26 12:27:38 -04:00
Eugene Yokota 697b2b534a add additional resolver to help Coursier 2019-04-26 12:27:38 -04:00
Eugene Yokota e206e797fe set up specific dependencyResolution instances 2019-04-26 12:27:38 -04:00
Eugene Yokota 9b0ffde519 disable metadata-only-resolver test 2019-04-26 12:25:52 -04:00
Eugene Yokota 6a99906386 manually expand ivy.home
Ref https://github.com/coursier/coursier/issues/1124
2019-04-26 12:25:52 -04:00
Eugene Yokota 35a0ee4321 relax dependency-management/compiler-bridge-binary 2019-04-26 12:25:52 -04:00
Eugene Yokota 21782a51f0 write info.apiURL to ivy.xml
Ref https://github.com/coursier/coursier/issues/1123
2019-04-26 12:25:52 -04:00
Eugene Yokota 38f94a6e31 Coursier dependency resolution integration
This adds dependency to LM implemented using Coursier.
I had to copy paste a bunch of code from sbt-coursier-shared to break the dependency to sbt.

`Global / useCoursier := false` or `-Dsbt.coursier=false` be used to opt-out of using Coursier for the dependency resolution.
2019-04-26 12:25:52 -04:00
eugene yokota 42bc2ea04d
Merge pull request #4631 from eatkins/previous
Allow calling TaskKey.previous in input tasks
2019-04-25 22:48:35 -04:00
Ethan Atkins 81ce14d58c Allow calling TaskKey.previous in input tasks
I discovered that it wasn't possible to call .previous in an input task.
While I understand why you can't call .previous on an InputKey, I think
it makes sense to allow calling .previous on a TaskKey within an input
task.
2019-04-25 15:58:01 -07:00
Eugene Yokota 3be8efc36e make Global / cancelable true by default
Fixes #3252
2019-04-25 12:14:37 -04:00
eugene yokota 3269eae533
Merge pull request #4606 from eed3si9n/wip/update
trim update and add updateFull
2019-04-25 12:13:22 -04:00
Dale Wijnand 9a56c0d005
Cleanup zinc-lm-integration 2019-04-25 12:01:33 +01:00
Dale Wijnand e978357e47
In-source zinc's LM integration code 2019-04-25 11:57:37 +01:00
Dale Wijnand b9b520f79e
Merge remote-tracking branch 'zinc-lm-intergration/bring-back-a-piece-of-zinc' into zinc-lm-integration
* zinc-lm-intergration/bring-back-a-piece-of-zinc: (90 commits)
  Add scala-integration resolver
  call it compiler-bridge_2.13
  bump Scala bridge to use 2.13.0-RC1
  Break the dependency on LM, and thus Ivy
  Skip Scala 2.10 and Scala 2.11 components for JDK 11
  Refactor compiler bridge unit test
  Fix the several typos detected by github.com/client9/misspell
  Got rid of multiple warnigns
  include only scala-library into the boot classpath during run
  Drop "final" modifier from private case classes, to prevent false positive. Refer https://issues.scala-lang.org/browse/SI-4440
  Support scala 2.13.0-pre-* & 2.13.0-M1
  Split compiler bridge tests to another subproject
  Remove unused imports + variables
  Add back, re-configure & re-enable Scalafmt
  Use Scala 2.12.3
  Remove any reference to `F0` and `F1`
  Adapt Zinc to use the new LibraryManagement API
  Fix ScalaFmt wiring
  Add scalaCompiler variant that accepts ModuleID
  Bump all the modules
  ...
2019-04-25 11:57:36 +01:00
Eugene Yokota 6c7faf2b86 trim update and add updateFull
Fixes #4438

This slims down update's UpdateReport by removing evicted modules
caller information. The larger the graph, the effect would be more
pronounced. For example, I saw a graph reduce from 5.9MB to 1.1MB in JSON file.
2019-04-23 14:08:17 -04:00
eugene yokota 4074cb32d3
Merge pull request #4605 from eed3si9n/wip/bumplm
bump to lm 1.3.0-M3
2019-04-23 13:52:08 -04:00
Eugene Yokota 3a355f6025 refactor project/transitive-plugins 2019-04-23 12:55:25 -04:00
eugene yokota 9b71ee1d6e
Merge pull request #4459 from alexarchambault/topic/update-classifiers-dependency-resolution
Have updateClassifiers use the dependencyResolution task
2019-04-21 19:18:01 -04:00
eugene yokota 0087f360aa
Merge pull request #4604 from eed3si9n/wip/progress2
move super shell rendering to logger
2019-04-21 17:58:58 -04:00
Eugene Yokota 2a206a6c40 Util 1.3.0-M6 2019-04-21 16:56:50 -04:00
eugene yokota 3568b13a2e
Merge pull request #196 from eed3si9n/wip/lock
move super shell rendering to ConsoleAppender
2019-04-21 15:40:11 -04:00
Eugene Yokota 465ff8e10a Make loggers synchronized
This is to workaround for "[success]" logs displaying after the prompt is displayed.
2019-04-21 04:03:22 -04:00
Eugene Yokota e28e052b5b move super shell rendering to ConsoleAppender
Ref https://github.com/sbt/sbt/issues/4583
This moves the super shell rendering to ConsoleAppender with several improvements.

Instead of scrolling up, supershell is now changed to normal scrolling down, with more traditional cursor position. Before printing out the logs, last known progress reports are wiped out. In addition, there's now 5 lines of blank lines to accomodate for `println(...)` by tasks.
2019-04-21 03:59:19 -04:00
Eugene Yokota 95761b2ea1 Undo cursor tweaks around prompt 2019-04-20 23:51:13 -04:00
eugene yokota 67dc4ca44b
Merge pull request #197 from eed3si9n/wip/scalafmt
sbt-scalafmt 2.0.0
2019-04-20 23:38:35 -04:00
Eugene Yokota c4d6efe5af move super shell rendering to logger
Fixes #4583
Ref https://github.com/sbt/util/pull/196
2019-04-20 23:32:42 -04:00
Eugene Yokota 98ec0075f4 apply formatting 2019-04-20 23:23:13 -04:00
Eugene Yokota 2ac7501c7c sbt-scalafmt 2.0.0 2019-04-20 23:21:31 -04:00
eugene yokota 00f292524f
Merge pull request #4623 from eed3si9n/wip/scalafmt
sbt-scalafmt 2.0.0
2019-04-20 19:56:24 -04:00
Eugene Yokota 621a72e49a workaround Scalafmt regex
Ref https://github.com/scalameta/scalafmt/issues/1404
2019-04-20 14:18:10 -04:00
Eugene Yokota 1e157b991a apply formatting 2019-04-20 03:23:54 -04:00
Eugene Yokota 78c007c910 sbt-scalafmt 2.0.0 2019-04-20 03:23:08 -04:00
eugene yokota 01781f07d0
Merge pull request #4622 from helena/add-build-and-version-badges
Add Travis build status badge and latest version badge #4621
2019-04-19 12:39:13 -04:00
Helena Edelson 4bec206e3b Add Travis build status badge and latest version badge #4621 2019-04-19 06:36:46 -07:00
Eugene Yokota 895c1d39ce Add scala-integration resolver 2019-04-18 17:28:01 -04:00
Eugene Yokota 9daae10ad9 call it compiler-bridge_2.13 2019-04-18 17:28:00 -04:00
Eugene Yokota 9c16938c6a bump Scala bridge to use 2.13.0-RC1
We are fairly certain we can maintain source-compatibility of compiler bridge from 2.13.0-RC to 2.13.x.

See also https://github.com/sbt/zinc/issues/78 :)
2019-04-18 17:28:00 -04:00
eugene yokota 7665de253f
Merge pull request #4616 from dwijnand/merge-in-1.2.x
Merge 1.2.x into develop
2019-04-18 11:59:55 -04:00
eugene yokota cd7d42db76
Merge pull request #4618 from dwijnand/Resolve-compilation-warnings-in-test/Delegates
Resolve compilation warnings in test/Delegates
2019-04-18 11:19:58 -04:00
Dale Wijnand 546476981c
Resolve compilation warnings in test/Delegates 2019-04-18 09:21:08 +01:00
Dale Wijnand 6fe8df21bb
Merge branch '1.2.x' into merge-in-1.2.x
* 1.2.x: (28 commits)
  More bumping up the 2.12 version to 2.12.8 in 1.2.x
  Bump the 2.12 version to 2.12.8 in 1.2.x
  define whitesourceOnPush
  lm 1.2.4
  1.2.7-SNAPSHOT
  implement TestConsoleLogger
  bump util, lm, and zinc
  Bump scalatest to 3.0.6-SNAP5
  Bump log4j2 to 2.11.1
  drop notification override
  Ignore files in scripted group dirs
  Fix '~' for dependent projects with a broken parent
  util 1.2.3, zinc 1.2.4
  lm 1.2.2
  Adjust the tests
  Set withMetadataDirectory by default
  Fix single repo emulation script
  add onLoadMessage
  check PluginCross.scala consisntency
  Bump modules
  ...
2019-04-18 09:03:16 +01:00
Dale Wijnand 146afdf8cd Break the dependency on LM, and thus Ivy
This patch breaks the dependency that Zinc had on sbt's Library
Management (LM) library abstraction (sbt/librarymanagement) and thus,
transitively, on Ivy.

The reason Zinc depends on LM in the first place is to dynamically
download the compiler bridge sources JAR, which it then compiles in
order to bridge from binary-compatible Zinc to the never-binary-stable
(and most of the time source-compatible) compiler API.

From my research (that is, using GitHub Search) the only user of this
feature is sbt, with all other integrations (e.g. pants, bloop, mill)
providing the compiler bridge sources JAR directly (an alternative API
entry point).

Therefore the dependency on LM and that integration code could be
untangled from Zinc and moved into sbt.  That would also give an
opportunity to move the code in LM (back) into sbt, which I also think
would be a good idea.

For now this patch leaves that integration code in the already existing
`zinc-ivy-integration` module, but which is now no longer a dependency
of any other module of Zinc, specifically it is no longer a dependency
of the `zinc` and `zincScripted` modules.  I think, though,
zinc-ivy-integration should remain in the zinc repo, as a part of the
build, being tested in CI, until it's been moved (back) into sbt.  I'd
be happy to take care of both the remaining move and removal tasks.

In order to allow removing LM, Ivy and zinc-ivy-integration as
transitive dependencies of Zinc, this patch has to make a breaking
change to the `ZincUtil` object in the zinc module.  Despite it being
defined in the `sbt.internal.inc` package (i.e. not declared as public
API) ZincUtil is in fact a used (Scala) API of Zinc (usages discovered
via GitHub Search).  Therefore I chose to leave the object in the zinc
module and only drop from the object the two methods that directly
depend on LM's API.  Specifically (1) the `getDefaultBridgeModule`
method and (2) the `scalaCompiler` overload that depends on LM were
removed.  These methods now live in a new `ZincLmUtil` object in
zinc-ivy-integration, which sbt can switch to using.

In terms of risk, from my research (GitHub Search) the only users of
those methods are sbt and bloop.  I need to confirm but I think bloop
will be able to manage this breaking change (it looks it might be just
fallback usage? TBC).  For sbt we don't actual support using new Zinc
with old sbt, so sbt can also just update its usage on its next release.
Any other usage risks being broken but given it's internal, non-public
API I think it's fair game.

The remaining changes are in the testing so that zinc-ivy-integration's
test suite continues to test its download-and-compile behaviour, while
the rest of Zinc switches to using the prebuilt compiler bridges,
reusing and generalising some pre-existing zincScripted code (as well as
re-wiring some modules) so it can be used by zinc's tests too.
2019-04-16 12:10:03 +01:00