From ec1ed12a24a4ee25b250c3e50746b3035336d82a Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Tue, 16 Feb 2010 19:18:52 -0500 Subject: [PATCH] Fix referencing xsbti classes in project definitions and plugins --- notes | 17 +++++++---------- project/build/XSbt.scala | 7 ------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/notes b/notes index 932fb6faa..5c46554d8 100644 --- a/notes +++ b/notes @@ -1,8 +1,10 @@ DONE --fix caching issue for compiler interface --fix test ClassLoader --implement tag + - fixed referencing xsbti classes from project definition and plugins + - added experimental 'sbt-update version [output.jar]' command enabled by mixing in UpdateSbt trait. It probably doesn't work on Windows, but confirmation either way would be helpful. + Changes 'sbt.version' after verifying the version is valid by downloading that version of sbt. + Updates the current launcher jar or the location specified in the second argument with either a downloaded sbt-launch-.jar if available or a copy of the current launcher jar that uses by default when starting new projects. Goals/Guidelines for xsbt ===== @@ -10,9 +12,6 @@ As usual: - Immutable interfaces - Typesafe - Robust, flexible API - -ISSUES - - java sources are not recompiled when jars change: possibly binary dependencies are not recorded? TODO - launcher interface versioning @@ -20,12 +19,10 @@ TODO - tests for API extractor - have background triggered commands (~sync) -update 0_6_Summary to mention different output directories. - Task engine - method tasks will be normal tasks that pull the command line from a CommandLine task - per task configuration, including logging (e.g. 'task compile log debug') -- unnamed tasks log to parent task +- unnamed tasks log to parent task - better control over parallel logging. Approach undecided. Some possibilities: + optionally one task always logging + log each task to a file diff --git a/project/build/XSbt.scala b/project/build/XSbt.scala index c95ac3b18..628976ff3 100644 --- a/project/build/XSbt.scala +++ b/project/build/XSbt.scala @@ -126,15 +126,12 @@ class XSbt(info: ProjectInfo) extends ParentProject(info) class CompileProject(info: ProjectInfo) extends Base(info) with TestWithLog with TestWithLaunch { override def testCompileAction = super.testCompileAction dependsOn(compileInterfaceSub.`package`, interfaceSub.`package`) - // don't include launch interface in published dependencies because it will be provided by launcher - override def deliverProjectDependencies = Set(super.deliverProjectDependencies.toSeq : _*) - launchInterfaceSub.projectID override def testClasspath = super.testClasspath +++ compileInterfaceSub.jarPath +++ interfaceSub.jarPath --- compilerInterfaceClasspath --- interfaceSub.mainCompilePath override def compileOptions = super.compileOptions ++ Seq(CompileOption("-Xno-varargs-conversion")) //needed for invoking nsc.scala.tools.Main.process(Array[String]) } class IvyProject(info: ProjectInfo) extends Base(info) with TestWithIO with TestWithLog with TestWithLaunch { val ivy = "org.apache.ivy" % "ivy" % "2.1.0" - override def deliverProjectDependencies = Set(super.deliverProjectDependencies.toSeq : _*) - launchInterfaceSub.projectID } abstract class BaseInterfaceProject(info: ProjectInfo) extends DefaultProject(info) with ManagedBase with TestWithLog with Component with JavaProject class InterfaceProject(info: ProjectInfo) extends BaseInterfaceProject(info) @@ -214,10 +211,6 @@ class XSbt(info: ProjectInfo) extends ParentProject(info) override def testCompileAction = super.testCompileAction dependsOn((testWithTestClasspath.map(_.testCompile) ++ testWithCompileClasspath.map(_.compile)) : _*) override def testClasspath = (super.testClasspath /: (testWithTestClasspath.map(_.testClasspath) ++ testWithCompileClasspath.map(_.compileClasspath) ))(_ +++ _) } - trait WithLauncherInterface extends BasicScalaProject - { - override def deliverProjectDependencies = super.deliverProjectDependencies.toList - launchInterfaceSub.projectID - } } trait JavaProject extends BasicScalaProject {