Commit Graph

148 Commits

Author SHA1 Message Date
Eugene Yokota c8af32950d Implements eviction warning stories. #1200
This implements all stories from https://github.com/sbt/sbt/wiki/User-Stories%3A-Conflict-Warning.
When scalaVersion is no longer effective an eviction warning will display.

    Scala version was updated by one of library dependencies:
        * org.scala-lang:scala-library:2.10.2 -> 2.10.3

When there're suspected incompatibility in directly depended Java libraries,
eviction warnings will display.

   There may be incompatibilities among your library dependencies.
   Here are some of the libraries that were evicted:
      * commons-io:commons-io:1.4 -> 2.4

When there's suspected incompatiblity in directly depended Scala libraries,
eviction warnings will display.

  There may be incompatibilities among your library dependencies.
  Here are some of the libraries that were evicted:
      * com.typesafe.akka:akka-actor_2.10:2.1.4 -> 2.3.4

This also adds 'evicted' task, which displays more detailed eviction warnings.
2014-07-27 12:26:12 -04:00
Eugene Yokota efb68cf6bf whitespace change due to scalariform kicking in 2014-07-10 17:46:41 -04:00
James Roper 4d29302632 Fixed scripted newer command
The scripted newer command was effectively a noop, it always passed
because it returned false instead of throwing an exception when it
failed.

Implemented specs for most of the scripted file commands as well.
2014-06-23 15:12:34 +10:00
eugene yokota 47b5790c41 Merge pull request #1391 from sbt/wip/1390
Improve test failure message for #1390.
2014-06-06 13:24:11 -04:00
Josh Suereth 4cd5657ac1 Cleanup release settings not existing and credentials check/enforcement craziness. 2014-06-04 11:32:21 -04:00
Josh Suereth 6f28f08b78 One more fix to release script.
* Ensure completion is appropriately cross versioned
* The publish launcher task should not try to publish
  the useless root project.
2014-06-04 08:50:46 -04:00
Josh Suereth 2c3f40eb02 Improve test failure message for #1390. 2014-06-02 15:10:17 -04:00
Josh Suereth f05a16801c merge with master 2014-06-02 13:44:07 -04:00
Josh Suereth f568e710ce Also publish completions library for 2.11. 2014-06-02 13:42:27 -04:00
Josh Suereth e0a96e3d7f Fix bug in release script due to typo.
* Fix collection typo
* Create shared command to setup 2.11 builds
* Alter snapshot detection to allow more flexible milestone versioning.
* Remove cusotm isSnapshot key for new sbt 0.13.2 isSnapshot key.
2014-05-29 22:35:44 -04:00
Josh Suereth ae02b495e6 Fix bug in release script due to typo.
* Fix collection typo
* Create shared command to setup 2.11 builds
* Alter snapshot detection to allow more flexible milestone versioning.
* Remove cusotm isSnapshot key for new sbt 0.13.2 isSnapshot key.
2014-05-28 09:37:14 -04:00
Josh Suereth 4c2d88649e Fix formatting issues and bump to sbt 0.13.5 2014-05-28 09:12:55 -04:00
Josh Suereth a1a784bf91 Add the ability to cross publish libraries and create a command to automatically do so. 2014-05-16 16:50:34 -04:00
Josh Suereth abffc3e1bd Bump expected 2.11 module versions so we can compile with 2.11
Add scala 2.11 test/build verification.

* Add 2.11 build configuratoin to travis ci
* Create command which runs `safe` unit tests
* Create command to test the scala 2.11 build
* Update scalacheck to 1.11.4
* Update specs2 to 2.3.11
* Fix various 2.11/deprecation removals
  and other changes.

Fix eval test failure in scala 2.11 with XML not existing.
2014-05-14 19:08:05 -04:00
eugene yokota 066a12cd2a Merge pull request #1320 from sbt/wip/bump-root-version
Bump version number for next bout of development.
2014-05-09 11:28:35 -04:00
Josh Suereth 98ed08a976 Bump version number for next bout of development. 2014-05-09 08:32:55 -04:00
Grzegorz Kossakowski 436e7078fb Enable name hashing algorithm in sbt build.
The name hashing seems to be stable enough for sbt to use it by default
now. It also greatly improves incremental compilation experience for
people working on sbt sources.
2014-05-09 14:18:46 +02:00
Josh Suereth d034561083 Scalariformed project/Sbt.scala 2014-05-07 11:52:49 -04:00
Josh Suereth 5d5d7a6c05 Add the ability to paginate scripted tests.
* Modify scripted task parser to allow "pagination" of globs
  e.g.  "*1of3" will create three pages and run page 1.
* Modify travis definition to fragment long-running test groups
  into pages so we stay under the 50 minute limit.
2014-05-07 11:06:26 -04:00
Eugene Yokota adb41611cf added scalariform 2014-05-01 12:50:07 -04:00
Josh Suereth 3121f2f278 Revert "add precompiled 2.11.0"
This reverts commit 36ec103274.

This 2.11.0 dependency was causing issues with older sbt launchers
attempting to use the 2.11.0 scala release for sbt's classloader,
leading to binary incompatibility issues.
2014-04-28 07:46:44 -04:00
xuwei-k 36ec103274 add precompiled 2.11.0 2014-04-24 00:51:44 +09:00
Eugene Yokota 02ad34442f back to 0.13.5-SNAPSHOT 2014-03-29 13:41:28 -04:00
Eugene Yokota a4a6aa0bc3 0.13.5-M2 2014-03-27 23:28:53 -04:00
Eugene Yokota f6d1044c4b 0.13.5-SNAPSHOT 2014-03-26 14:34:25 -04:00
Ismael Juma 607e061a6a Bump Scala version to 2.10.4. 2014-03-25 22:08:04 +00:00
Eugene Yokota 66ada09f06 0.13.5-M1 2014-03-25 01:49:33 -04:00
Josh Suereth 905028a6ae Bump version for further 0.13.x development. 2014-03-11 10:25:18 -04:00
Josh Suereth a8acc11fb5 Merge pull request #1130 from sbt/wip/auto-plugins
AUTO PLUGIN FEATURE!!!!
2014-02-20 16:08:01 -05:00
Grzegorz Kossakowski 4a9981720a Remove work-arounds for Scala 2.11 problematic dependencies
The ff0fd6eec6 introduced some exclusions
that were necessary for getting sbt to resolve dependencies properly
against Scala 2.11.0-M7.

Scala 2.11.0-M8 fixed its dependency structure so we can get rid of those
exclusions now.
2014-02-12 14:12:20 +01:00
Mark Harrah 162d8094ba Convert logic system test cases into unit tests.
Still TODO for auto-plugins/logic:

 * property-based tests for logic system
 * user documentation
 * (optional) 'about plugins' or similar to show more information about the auto-plugins for a project
 * (deferred) allow AutoPlugin to inject Commands directly?
 * (deferred) provide AutoPlugin functionality to arbitrary scopes instead of just at the Project level?
2014-01-24 14:37:04 -05:00
Mark Harrah b8619f4aae Main part of integrating natures into project loading. 2014-01-24 14:34:15 -05:00
Mark Harrah 322f6de655 Logic system supporting auto plugins and initial outline of AutoPlugin and Natures types.
* Not integrated into project loading
 * Doesn't yet check that negation is acyclic before execution
2014-01-24 14:30:12 -05:00
Grzegorz Kossakowski ff0fd6eec6 Update dependencies to Scala 2.11.0-M7.
I had to sprinkle some excludes due to dependency of scala-compiler M7 on
M6 modules. Those excludes won't be needed by the time M8 is out.
2014-01-18 01:09:24 +01:00
Mark Harrah 48fb98f2d1 0.13.1 2013-12-10 10:18:42 -05:00
Grzegorz Kossakowski 304796bb7a Add support for tracking names used in Scala source files.
Tracking of used names is a component needed by the name hashing
algorithm. The extraction and storage of used names is active only when
`AnalysisCallback.nameHashing` flag is enabled and it's disabled by
default.

This change constists of two parts:

  1. Modification of Relations to include a new `names` relation
     that allows us to track used names in Scala source files
  2. Implementation of logic that extracts used names from Scala
     compilation units (that correspond to Scala source files)

The first part is straightforward: add standard set of methods in
Relations (along with their implementation) and update the logic which
serializes and deserializes Relations.

The second part is implemented as tree walk that collects all symbols
associated with trees. For each symbol we extract a simple, decoded name
and add it to a set of extracted names. Check documentation of
`ExtractUsedNames` for discussion of implementation details.

The `ExtractUsedNames` comes with unit tests grouped in
`ExtractUsedNamesSpecification`. Check that class for details.

Given the fact that we fork while running tests in `compiler-interface`
subproject and tests are ran in parallel which involves allocating
multiple Scala compiler instances we had to bump the default memory limit.

This commit contains fixes for gkossakowski/sbt#3, gkossakowski/sbt#5 and
gkossakowski/sbt#6 issues.
2013-12-03 12:27:29 +01:00
Bruno Bieth e4dd71c08c execute scripted test without publishing SBT first
Saves you some time when only your test has changed.
2013-11-13 15:51:21 -05:00
Grzegorz Kossakowski a37d8d4770 Fix unstable existential type names bug.
Fix the problem with unstable names synthesized for existential
types (declared with underscore syntax) by renaming type variables
to a scheme that is guaranteed to be stable no matter where given
the existential type appears.

The sheme we use are De Bruijn-like indices that capture both position
of type variable declarion within single existential type and nesting
level of nested existential type. This way we properly support nested
existential types by avoiding name clashes.

In general, we can perform renamings like that because type variables
declared in existential types are scoped to those types so the renaming
operation is local.

There's a specs2 unit test covering instability of existential types.
The test is included in compiler-interface project and the build
definition has been modified to enable building and executing tests
in compiler-interface project. Some dependencies has been modified:

  * compiler-interface project depends on api project for testing
    (test makes us of SameAPI)
  * dependency on junit has been introduced because it's needed
    for `@RunWith` annotation which declares that specs2 unit
    test should be ran with JUnitRunner

SameAPI has been modified to expose a method that allows us to
compare two definitions.

This commit also adds `ScalaCompilerForUnitTesting` class that allows
to compile a piece of Scala code and inspect information recorded
callbacks defined in  `AnalysisCallback` interface. That class uses
existing ConsoleLogger for logging. I considered doing the same for
ConsoleReporter. There's LoggingReporter defined which would fit our
usecase but it's defined in compile subproject that compiler-interface
doesn't depend on so we roll our own.

ScalaCompilerForUnit testing uses TestCallback from compiler-interface
subproject for recording information passed to callbacks. In order
to be able to access TestCallback from compiler-interface
subproject I had to tweak dependencies between interface and
compiler-interface so test classes from the former are visible in the
latter. I also modified the TestCallback itself to accumulate apis in
a HashMap instead of a buffer of tuples for easier lookup.

An integration test has been added which tests scenario
mentioned in #823.

This commit fixes #823.
2013-10-29 16:39:50 +01:00
Mark Harrah fb81ca67d8 bump Scala version to 2.10.3 2013-10-02 19:39:17 -04:00
Mark Harrah 72125e73ce Build: scope root sources to 'doc' task since they shouldn't be compiled normally. 2013-09-26 09:17:07 -04:00
Mark Harrah b2599c1bb1 Restore sxr support and fix links to sxr'd sources. Fixes #863. 2013-09-24 11:34:14 -04:00
Mark Harrah 7b1b33758c Convert -classpath to CLASSPATH when forking on Windows and length exceeds a heuristic maximum. Fixes #755. 2013-09-11 18:22:16 -04:00
Mark Harrah 005384f9af Use sbt 0.13.0 to build the 0.13 branch. 2013-09-10 08:30:00 -04:00
Mark Harrah 50feb1c383 additional helpers to build against 2.11 nightlies 2013-07-18 22:45:04 -04:00
Mark Harrah 2195de1451 remove redundant crossPaths settings 2013-07-18 22:36:40 -04:00
Mark Harrah a0fdb3885d 0.13.1-SNAPSHOT to be able to use 0.13 plugins without changes 2013-07-17 14:58:53 -04:00
Mark Harrah 7278fbc567 Scala 2.11 modularized dependencies 2013-07-09 14:55:30 -04:00
Mark Harrah ab0d61c3fe define test-interface dependency in build in one place 2013-06-28 09:08:29 -04:00
cheeseng 5bb46359b5 Change to use test-interface-1.0-SNAP7, and use ScalaTest 2.0.M6-SNAP26 which implemented test-interface-1.0-SNAP7. 2013-06-28 17:18:38 +08:00
Mark Harrah 989c1d3dc6 auto-generate conscript launchconfigs from launcher boot.properties 2013-06-28 00:01:19 -04:00