Thanks, Eugene. I am reading your unofficial guide right now.
I am asking this question because I ran into a problem with a certain plugin (that I call a LibPlugin) that I thought would help me resolve library dependencies better. The reason for using this plugin was to speed up development time. I tried to incorporate this plugin into my project and ran into difficulties. I realized that plugin was written more than 2 years ago for SBT 0.7 and Scala 2.8/2.9. If I were to use the functionality that this plugin provides I would need it to work for Scala 2.10 and SBT 0.10 or above. I compared the code of SBT 0.7 and 0.10 and above and found that the code was quite different. Let me come to the point. The code for the plugin is in a source file called LibraryPlugin.scala. Inside this file is a trait called ResolverPlugin that extends Project like this:
trait ResolverPlugin extends Project
Inside Project.scala lies trait Project, which our trait ResolverPlugin extends. The trait is defined thus:
trait Project extends TaskManager with Dag[Project] with BasicEnvironment {
----
}
-----------------------------------------------------------------------------------------------
I located Project.scala hoping to find the equivalent Project trait. Indeed, there is a Project trait but it appears as a sealed trait like this:
sealed trait ProjectDefinition[PR <: ProjectReference]{
------
}
----------------------
Now this is the only Scala source file that the LibPlugin uses.