Commit Graph

11930 Commits

Author SHA1 Message Date
Mark Harrah a5002ababd Merge remote-tracking branch 'scalatest/new-framework-api-12' into 0.13 2013-05-01 08:34:01 -04:00
Mark Harrah f7ce8334c3 Merge remote-tracking branch 'scalatest/new-framework-api-12' into 0.13 2013-05-01 08:34:01 -04:00
Mark Harrah 6a70b9f565 Proper support for stashing on-failure handlers. Fixes #732. 2013-04-30 18:55:02 -04:00
Mark Harrah 8813712c60 Versioned global sbt directory. Fixes #735. 2013-04-30 18:55:02 -04:00
Josh Suereth f8e4ef438b Merge pull request #43 from cdow/die
Replaced last usage of missing 'die' function.
2013-04-29 10:05:46 -07:00
Josh Suereth 5c6c257bec Merge pull request #42 from cdow/doc
Updated Linux Documentation
2013-04-29 10:05:16 -07:00
Johannes Rudolph f629ee7994 update readme with new versions 2013-04-28 11:07:36 +02:00
Johannes Rudolph b24c5538e4 update notes to include 0.7.2 notes (which was never officially released) 2013-04-28 11:06:39 +02:00
Johannes Rudolph b1edfb4d5b bump version 2013-04-28 10:52:57 +02:00
Johannes Rudolph dfe76a2aea fixes #30, #31: resolution report path changed in sbt 0.12.3 2013-04-28 10:49:47 +02:00
Johannes Rudolph bfbaed2f03 use sbt 0.12.3 for building 2013-04-28 10:41:01 +02:00
Mark Harrah bbd01021b2 fix compilation error in TestCallback 2013-04-27 16:28:45 -04:00
Mark Harrah 429131bdd8 fix compilation error in TestCallback 2013-04-27 16:28:45 -04:00
Mark Harrah 0b876cc57d fix compiler interface compatibility with 2.11 2013-04-27 16:27:57 -04:00
Mark Harrah bedc8dbb10 Push full transitive invalidation out a step since step 3 is now relatively cheap. 2013-04-26 22:36:15 -04:00
Mark Harrah 658c3d06c4 Use public inherited dependencies in incremental compilation invalidation.
1. All parents of public/exported classes/modules/packages are tracked as
   'publicInherited' dependencies.  These are dealiased and normalized so
    that the dependency is on the actual underlying template and not the
    source enclosing the alias.
2. All CompilationUnit.depends dependencies are direct dependencies.  These
   include inherited dependencies.
3. When invalidating changed internal sources,
	a. Invalidate all inherited dependencies, transitively and include the
      originally modified sources,
	b. Invalidate all direct dependencies of these sources,
	c. Exclude any sources that were compiled in the previous step unless they
      depend on a newly invalidated source.
4. Invalidate changed external sources in the same way as #3 but remove the
   external sources from the final set.

Only public inheritance dependencies need to be considered because a template
that is not accessible outside its source file and that inherits from another
file can be handled as a normal, direct dependency.  Because the template
isn't public, changes to its API will not propagate outside of the source
file.

Several existing tests cover the correctness, especially:

1. transitive-a covers direct, transitive dependencies with inferred return
   types
2. transitive-b covers inherited, transitive dependencies with inferred return
   types

There are two new tests, one that tests that public inherited dependencies are
tracked and one that verifies the basic invalidation progression.
More tests are needed to verify the improvements that this algorithm brings:

1. Inheritance-related dependencies are processed in one step to avoid the
   otherwise unavoidable several steps.
2. Only immediate direct dependencies are ever processed, which should in many
   typical cases avoid large invalidation sets.
2013-04-26 22:36:06 -04:00
Mark Harrah 5f53b89509 Record and persist public inheritance dependencies.
Includes placeholders for adding public inherited dependencies for Java classes.
2013-04-26 22:35:27 -04:00
Mark Harrah 4dc75343ae Record and persist public inheritance dependencies.
Includes placeholders for adding public inherited dependencies for Java classes.
2013-04-26 22:35:27 -04:00
Mark Harrah c355bef200 Track public inherited dependencies.
There is a public inherited dependency on each (normalized) base
class of a public template (class, module, trait, structural type).
2013-04-26 22:35:27 -04:00
Mark Harrah 0e1f211fe5 move to compiler's built-in moduleSuffix method 2013-04-26 18:52:16 -04:00
Mark Harrah fb0a8c463b Scope packagedArtifacts for publish*Configuration to publish* to make it easier to filter artifacts for different publish targets. 2013-04-26 18:51:58 -04:00
Mark Harrah 77b7c60e2b Merge branch 'override-abstract-type-dealias-kept' of https://github.com/gkossakowski/xsbt into 0.13 2013-04-26 18:51:39 -04:00
Grzegorz Kossakowski 3ba9348740 Do not normalize types in the api extraction phase.
In summary this commit:

  * drops type normalization in api phase but keeps dealiasing
  * fixes #736 and marks corresponding test as passing

I discussed type normalization with @adriaanm and according to him
sbt shouldn't call that method. The purpose of this method to
convert to a form that subtyping algorithm expects. Sbt doesn't need
to call it and it's fairly expensive in some cases.

Dropping type normalization also fixes #726 by not running into
stale cache in Scala compiler problem described in SI-7361.
2013-04-27 00:31:31 +02:00
Grzegorz Kossakowski fbe4dedd11 Remove trailing whitespace in API.scala 2013-04-27 00:31:31 +02:00
Li Haoyi c3345313cc Update Using-Sonatype.rst
according to this

http://www.scala-sbt.org/sbt-pgp/usage.html#publishing_artifacts

"The PGP plugin NO LONGER wires into the default publish and publish-local tasks of sbt. If you want to published signed artifacts, you must use the new publish-signed and publish-local-signed tasks."

This bit me when i tried to do this today, should update the docs to refer to the proper command `publish-signed` so the next guy who tries this doesn't get bitten.
2013-04-25 08:46:40 -04:00
cheeseng b0bd2e838e Normalize line endings. 2013-04-25 00:06:52 +08:00
cheeseng 48fb0c4ed6 Initial working version of makeParallel that support nested tasks. 2013-04-25 00:06:52 +08:00
cheeseng a920c739d6 Added support of nested test tasks when tests are executed in SubProcess. 2013-04-25 00:06:52 +08:00
cheeseng 3109912d00 Added support of nested test tasks when tests are executed InProcess and sequentially. 2013-04-25 00:06:52 +08:00
cheeseng df9a475158 Normalize line endings. 2013-04-25 00:06:52 +08:00
cheeseng 5df0deacf0 Added .gitattributes file. 2013-04-25 00:06:51 +08:00
cheeseng ad18b4f3ae Added code to tag test task using Array[String] returned from Task.tags method. 2013-04-25 00:06:51 +08:00
cheeseng f862e64911 Added support of custom summary message returned from Runner.done method. 2013-04-25 00:06:51 +08:00
cheeseng 1ec2118219 -Moved code that count test results from TestLogger to SuiteResult.
-Print the results in Tests.showResult.
2013-04-25 00:06:41 +08:00
Christopher Dow 206a1af38b Replaced last usage of missing 'die' function. 2013-04-23 07:00:12 -07:00
cheeseng a76523a5f6 Added >1 framework class per framework support, this enables sbt to support both old and new framework API at the same time. 2013-04-23 12:00:05 +08:00
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 d2e40c1c56 Changed createTeskTasks in TestFramework.scala to reuse TestRunner instance when running different TestDefinition. 2013-04-23 11:09:49 +08:00
cheeseng b2b9fb132a Made to ForkMain's write method synchronized, to ensure the output stream won't corrupt when test framework implementation uses multi-threads to write event back to sbt. 2013-04-23 11:09:49 +08:00
cheeseng b83d378cd0 Changed ForkTests to call acceptorThread.join(), to make sure that acceptorThread is finished before Acceptor.result is called. 2013-04-23 11:09:48 +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
Christopher Dow b84d1d5b52 Removed unused options from the Linux man page 2013-04-22 18:41:27 -07:00
Christopher Dow e21e271053 Added missing arguments to the Linux man page 2013-04-22 18:41:26 -07:00
Christopher Dow 831455f602 Documentation typos 2013-04-22 18:41:26 -07:00
cheeseng 838b737caa Bump up test-interface dependency to version 1.0-SNAP3. 2013-04-22 14:22:12 +08:00
Grzegorz Kossakowski e97a7ac228 Pending test case for abstract type override flag (#726)
This test case demonstrates spurious recompilation described
in #726.
2013-04-20 17:11:11 -07:00
Mark Harrah 7689343ba0 Docs: correct custom Ivy configuration faq section 2013-04-15 18:18:52 -04:00
Mark Harrah 3c51b93bd8 test case for a plain override modifier change. Ref #726. 2013-04-15 14:12:15 -04:00
Mark Harrah bef8ce05b9 Properly track 'abstract override' modifier. Ref #726. 2013-04-15 14:12:15 -04:00