Commit Graph

475 Commits

Author SHA1 Message Date
cheeseng f38a244d0f Added code to call Runner's done() method in both InProcess and SubProcess cases. 2013-04-23 12:00:03 +08:00
cheeseng 244e65cd79 -Changed behavior so that only a single Runner instance is used to run tests in multiple test groups.
-Added code to support remoteArgs in test-interface 1.0.
2013-04-23 11:09:50 +08:00
cheeseng 18bc8423b5 Initial version that uses new framework API in test-interface 1.0:
-Changed usages and implementations of interfaces in org.scalatools.testing._ to use/implement interfaces/classes in sbt.testing._ instead.
-Added sbt.testing to interfaceFilter in TestFramework.createTestLoader method to enable loading of classes in sbt.testing package.
-Added FrameworkWrapper.java to wrap old framework implementations.
-Added code in ForkMain.java to serialize Selectors.
2013-04-23 11:09:37 +08:00
Mark Harrah a4c059cb7e Better auto-generated IDs for default projects. Fixes #554.
For the global plugins project, the default ID is "global-plugins".
For a normal project, the default ID is the name of the build directory.
The ID of a build definition for one of the above appends -build.
2013-04-10 20:15:28 -04:00
Mark Harrah 96b2ca7ce4 Use a default root project aggregating all projects if no root is defined. Fixes #697.
Ref #554.
2013-04-10 20:15:27 -04:00
Mark Harrah 23be591c95 memoize .sbt file loading within a build and only add a Project once
This fixes an infinite loop when defining a Project in a .sbt file
with the build base directory as the project base directory.
This allows the standard behavior for interpreting settings from
.sbt files for both Projects defined in .sbt files as well as in
.scala files. That is, settings in .sbt files in "." go in all
projects with "." as their base directory.

Ref #554.
2013-04-10 20:15:27 -04:00
Mark Harrah b990a29c09 Undeprecate ScalaInstance.libraryJar, which will be reliable for modularized Scala. 2013-04-08 09:21:59 -04:00
Mark Harrah 382b55402b don't put Scala jars on forked boot classpath by default
Ideally, Scala jars on the normal classpath would be moved to the boot classpath,
but this is more involved.
2013-04-05 09:02:24 -04:00
Mark Harrah f18ddd2a88 make ScopeFilter accessible without a qualifier
Should be improved: ideally there would only be a single top-level alias.
2013-04-03 12:44:35 -04:00
Mark Harrah 322a49faba Make autoCompilerPlugins support compiler plugins defined in a internal dependency
requires the compiler plugin project to define exportJars := true
2013-04-03 12:44:35 -04:00
Mark Harrah 45155e2616 move to <key>.all inDefaults 2013-03-28 16:08:24 -04:00
Mark Harrah 7605818f04 workaround for ThisProject not being properly resolved by Scope.resolve* 2013-03-28 16:08:23 -04:00
Mark Harrah df5e79e3be API for evaluating a setting or task in multiple scopes 2013-03-27 09:17:53 -04:00
Mark Harrah 2f13b7a8c7 add publish-m2 task for publishing to ~/.m2/repository. Fixes #485. 2013-03-27 09:17:53 -04:00
Mark Harrah 5f41b06026 fix stray val 2013-03-12 15:29:27 -04:00
Mark Harrah fd2823e827 clean up 'inspect' command and limit Related section to 10 keys 2013-03-12 14:51:19 -04:00
Mark Harrah 718fa91772 Publish test artifacts in Test configuration and corrects classifier to 'tests'. Fixes #683 2013-03-08 20:11:53 -05:00
Mark Harrah ada663106d Further Scala handling refinements. fixes #690.
* No longer override the Scala version to force it to be scalaVersion.  Custom configurations might use an independent version.
* Only substitute the jars from scalaHome when the major.minor versions line up for the substituted artifact
* Allow the Scala version to use for dependency resolution to be specified when using ++ to change Scala home: ++ version=/path/to/scala/home
2013-03-05 17:22:21 -05:00
Mark Harrah 925ec98900 Restore class files after an unsuccessful compilation.
This is useful when an error occurs in a later incremental step that
requires a fix in the originally changed files.

CC @gkossakowski
2013-03-04 07:24:31 -05:00
Mark Harrah bf1831eb88 fix TagsTest test size generator and properly set Tags.All on tag maps 2013-03-03 19:43:37 -05:00
Mark Harrah 1fdf3fa38c support explicit types on lazy vals in definingValName
lazy val x: Project = project has a rather different enclosing tree
 than lazy val x = project.
2013-03-03 19:43:37 -05:00
Mark Harrah 9d82718897 disable printing of success for 'export' command 2013-02-28 17:59:39 -05:00
Mark Harrah a263b7e91f when exporting settings, send the output directly to the console 2013-02-28 17:59:38 -05:00
Mark Harrah dde24d5e5a make classpaths exported 2013-02-28 17:59:38 -05:00
Mark Harrah f2d29d8678 Export approximate command lines executed for 'doc', 'compile', and 'console' 2013-02-28 17:59:38 -05:00
Alex Dupre 92e99cfef0 Switch from JLine 1.0 to 2.10. 2013-02-26 07:39:33 -05:00
Mark Harrah 29a26a13ab Custom implementation of Streams can be bound to Keys.stateStreams in State. 2013-02-25 09:24:05 -05:00
Mark Harrah 0cf702efd5 Move GlobalLogBacking.newLogger to GlobalLogging to make the role of GlobalLogBacking clearer. 2013-02-25 09:24:05 -05:00
Mark Harrah f6d73128fc deprecations 2013-02-25 09:24:04 -05:00
Mark Harrah a61421dcb8 Split ConsoleOut into its own file, track the global ConsoleOut and use it instead of StandardMain.console 2013-02-25 09:24:04 -05:00
Mark Harrah 5b5577a187 Replace Scala jars in UpdateReport with ScalaProvider jars in more situations. Fixes #661.
Specifically, when the Scala version for sbt is the same as that for the project being built,
the jars in UpdateReport should be the same as those in ScalaProvider.  This is because the
loader will come from the ScalaProvider, which uses jars in the boot directory instead of the
cache.  The first part of the fix for #661 checks that loaded classes come from the classpath
and so they need to line up.
2013-02-21 20:44:26 -05:00
Mark Harrah bd0f208302 Class loader that restricts loading to a classpath. Ref #661.
It is now used for consoleProject, run, and test.  This loader verifies
that all classes loaded through it came from a particular classpath or
from the "root" loader.  Root loader here is the launcher loader so that
those classes with native bindings come from that shared loader.
2013-02-21 20:44:26 -05:00
Mark Harrah 98e2662bc4 Make full set of ForkOptions configurable for both run and test. Fixes #665.
Environment variables may be passed by configuring the envVars task.
2013-02-21 20:44:26 -05:00
Mark Harrah e06ada8fb7 Add help for ++ and + commands 2013-02-19 14:33:22 -05:00
Mark Harrah 2047849b50 remove deprecated command strings 2013-02-19 14:33:22 -05:00
Grzegorz Kossakowski 70036812ab Introduce incremental compiler options.
Introduce a way to configure incremental compiler itself instead
of underlying Java/Scala compiler.

Specific list of changes in this commit:
  * Add a method to `xsbti.compile.Setup` that returns incremental
    compiler options as a `java.util.Map<String, String>`. We considered
    statis interface instead of a `Map` but based on mailing
    list feedback we decided that it's not the best way to go because
    static interface is hard to evolve it by adding new options.
  * Since passing `java.util.Map<String, String>` not very convenient
    we convert it immediately to `sbt.inc.IncOptions`
  * Add options argument to various methods/classes that implement
    incremental compilation so in the end options reach
    `sbt.inc.IncOptions` object
  * Add `incOptions` task that allows users to configure incremental
    compiler options in their build files. Default implementation of
    that tasks returns just `IncOptions.DEFAULT`
  * Both system property `xsbt.inc.debug` and `IncOptions.relationsDebug`
    trigger debugging of relations now. In the near future, we should
    deprecate use of `xsbt.inc.debug`.
2013-02-19 12:23:07 -05:00
Grzegorz Kossakowski d6f4c5ae4f Strip down trailing whitespace.
I have Eclipse configured to do that automatically when saving file.
I decided to finally commit those changes to files I touch a lot.
2013-02-19 12:18:26 -05:00
Mark Harrah ae74fff88c When serially executing tests*, order tests by testOnly filter order
* parallelExecution in test := false

cc @bantonsson
2013-02-13 10:27:43 -05:00
Mark Harrah 4b61747dfc remove deprecated scaladocOptions 2013-02-13 08:12:51 -05:00
Mark Harrah 76e0a941ba Update to 2.10.1-RC1
Needed an explicit type in PMap to workaround an error.
Need to drop tuple assignment of parser.parsed in input task macro as a workaround
  for macro/resetAllAttrs/pattern matching/annotation issue in RC1.
2013-02-13 07:17:20 -05:00
Mark Harrah 8cb7e23011 Load global plugins in their own class loader and replace the base loader with that. Fixes #272.
Also, replace the base classpath with the global classpath.
2013-02-01 13:10:27 -05:00
Mark Harrah 52954b3ae7 skip duplicate entries in PluginClassLoader 2013-02-01 13:10:26 -05:00
Mark Harrah b2eb4661df Support 'reload plugins' after ignoring a failure to load a project.
This can be used to debug problems with dependencies or code.
It won't help with .sbt files, however.
2013-01-29 17:47:29 -05:00
Mark Harrah 6c5cafb55b Remove support for deprecated alternative to project/ directory name. 2013-01-29 17:47:29 -05:00
Mark Harrah e47b8ab578 Make 'eval' command work when project isn't loaded. 2013-01-29 08:47:04 -05:00
Mark Harrah 76a02c463f Temporarily use a Scala home with '++ /path/to/scala/home' 2013-01-28 17:14:53 -05:00
Mark Harrah 076480b50a Reduce InputTask to the ideal wrapper around 'State => Parser[Initialize[Task[T]]]'
Ref #407.
2013-01-28 17:14:53 -05:00
Mark Harrah 9013e00fdd Remove InputStatic and parsedResult.
This cleans up the InputTask implementation.  It no longer requires the hook
in setting loading (Load.finalTransforms) and has better types.
2013-01-18 18:49:26 -05:00
Mark Harrah a9ac6b3983 Configurable conflict manager and corresponding documentation on conflictManager, dependencyOverrides, and force(). Fixes #603. 2013-01-11 16:01:31 -05:00
Mark Harrah a48ee68d17 Additional convenience methods on Project for configuring the .sbt files processed.
The Project.setSbtFiles and addSbtFiles methods combined with the current sbt version
available from ComponentMangaer.version (suggestions for a better location are welcome),
should make it straightforward to load different .sbt files based on the sbt version.

Fixes #467.
2013-01-11 16:01:30 -05:00
Mark Harrah 36a3203226 API documentation for Project getters 2013-01-11 16:01:30 -05:00
Mark Harrah a152965933 Option to automatically manage API documentation mappings
Set autoAPIMappings := true to enable.

Then, set apiURL to the base URL of the API documentation for a project.
This will get stored in an extra attribute in the ivy.xml or as a property
a pom.xml.

When using managed dependencies that have set their apiURL, the -doc-external-doc
setting for scaladoc will be automatically configured.  Note that this option
will only be available in Scala 2.10.1 and so enabling autoAPIMappings for
earlier versions will result in an error from scaladoc.

For unmanaged dependencies or dependencies without an automatic apiURL, add the
(File,URL) mapping to apiMappings.  The File is the classpath entry and the URL
is the location of the API documentation.
2013-01-10 16:06:12 -05:00
Mark Harrah e5a9d31d6f Make exclude-classifiers per-user instead of per-build. Fixes #634. 2013-01-10 16:06:12 -05:00
Mark Harrah aff95baf0e Provide cacheDirectory via Streams instead of a separate setting
This is cleaner and makes it harder for the task author to have overlapping caches.
2013-01-10 16:06:12 -05:00
Mark Harrah 1ef258d88e Convenience method Project.configure(f,g) for g(f(proj)) to be used to apply plugin configuration provided as a Project=>Project transformation 2013-01-10 16:06:12 -05:00
Mark Harrah ae9b6d1e47 Support 'val p = project' via a 'project' macro 2013-01-10 16:06:12 -05:00
Mark Harrah a8b93dfed3 Project.in(File) for setting the base directory of a Project 2013-01-10 16:06:11 -05:00
Mark Harrah 87faa7191a API documentation for Project transforming methods 2013-01-10 16:06:11 -05:00
Mark Harrah aba717c0c5 cleanup imports in BuildStructure 2013-01-03 11:37:40 -05:00
Mark Harrah ea3e5c3548 Allow cleanKeepFiles to contain directories
The directory contents will be kept as will empty directories.
2012-12-19 10:17:56 -05:00
Mark Harrah f6317a5c75 remove deprecated Extracted.evalTask 2012-12-19 10:17:56 -05:00
Mark Harrah dd66d8b17a API documentation in Extracted 2012-12-19 10:17:56 -05:00
Mark Harrah d156ccfe4e Further refinements to Scala version handling
- override location of resolved Scala jars when scalaInstance is unmanaged
- document current behavior: scalaHome, update, scalaInstance, autoScalaLibrary, managedScalaInstance
2012-12-16 18:56:22 -05:00
Mark Harrah e3745540c9 More cleanup of Scala version handling, including managedScalaInstance to control automatic 'scala-tool' configuration and dependencies. 2012-12-09 20:40:41 -05:00
Mark Harrah d4fd136192 support defining Projects in .sbt files
vals of type Project are added to the Build
2012-12-09 20:40:41 -05:00
Grzegorz Kossakowski ef39aeb9c1 Follow source layout convention supported by Eclipse.
Moved source files so directory structure follow package
structure. That makes it possible to use Scala Eclipse plugin
with sbt's source code.
2012-12-07 10:27:08 -08:00
Josh Suereth 0c08c1169e Bumped the Scalatest/Specs versions for 2.10.0-RC3
* Modified tests to use mutable Specs API
* Fixed a few minor specs issues.
2012-12-04 13:10:09 -05:00
Mark Harrah 538f687208 Use and methods instead of mapR,mapFailure,flatFailure,flatMapR 2012-12-02 03:17:19 -05:00
Mark Harrah 8d6dd10798 2.10.0-M5, different arity generalization
1. KList[M[_]] now instead of KList[HL <: HList, M[_]]
  a. head, tail work properly in this variant
  b. disadvantage is that full type not easily transformed to new type constructor
2. AList abstracts on K[L[x]], a higher order type constructor.
 A. Instances written for:
  a. KList
  b. Seq[M[T]] for a fixed T
  c. TupleN
  d. single values
  e. operate on one type constructor when nested
 B. Main disadvantage is type inference.  It just doesn't happen for K[L[x]].
    This is mitigated by AList being used internally and rarely needing to construct a K.
2012-11-17 20:19:24 -05:00
Mark Harrah 795b924f46 reimplement lighter support for controlling aggregation 2012-01-09 08:01:24 -05:00
Mark Harrah 82326cc899 new aggregation approach, still need exclusion mechanism 2012-01-09 08:01:24 -05:00
Mark Harrah ec48779829 moved task axis before the key 2012-01-09 08:00:29 -05:00
Mark Harrah c9039a4d44 separate out generators for test builds 2011-10-01 14:40:14 -04:00
Mark Harrah 41667f9f49 test fix 2011-05-23 18:40:03 -04:00
Mark Harrah 19ed648de5 tests and fixes for delegation 2011-05-09 20:57:10 -04:00