implicit.ly

Scala software, hot off the presses

Simple Build Tool 0.11.2

sbt 0.11.2 is a bug fix release. See Changes for details.

An important change is that the local Maven repository has been removed from the launcher's list of default repositories, which is used for obtaining sbt and Scala dependencies. This is motivated by the high probability that including this repository was causing the problems some users have with the launcher not finding some dependencies.

sbt is a Scala build tool.

Filed under  //   Scala 2.9.1   Simple Build Tool   org.scala-tools.sbt  

sbt-android-plugin 0.6.0

  • Plugin ported to sbt 0.10.x/0.11.x (Philip Cali)
  • Update path to Google's Android add-ons (nuriaion)
  • Use the ApkBuilder class in sdklib.jar instead of the deprecated apkbuilder command-line executable (Paul Butcher)
  • Support for building standard Java Android projects (Jan Berkel)
  • AndroidManifestGenerator trait to control and increment versionCode and versionName properties (Kevin Hester)
  • Integrated ddmlib to grab screenshots and memory/thread dumps from emulator / device (Jan Berkel)
  • Android library project support (Paul Butcher)
  • Include resources in apk (Kevin Hester)
  • Github API integration: upload apks to github/S3 (Jan Berkel)
  • Upgrade to proguard 4.6 w/ optional optimization (Martin Kneissl)

sbt-android-plugin is a plug-in for simple-build-tool that provides support for developing Android applications in Scala.

Filed under  //   Scala 2.9.1   org.scala-tools.sbt   sbt-android-plugin  

Simple Build Tool 0.11.1

sbt 0.11.1 contains mainly bug fixes and minor features. There are some notable changes:

  • New Getting Started Guide and wiki reorganization
  • Task interruption using ctrl+c
  • Finer 'update' logging is on by default.
  • Improved memory usage and performance of incremental recompilation using an approached based on signature hashes.
  • Improved correctness of incremental recompilation, 'update' related caching, and transitive plugin dependencies.
  • Added inline API for excluding dependencies.
  • Improved functionality for advanced build manipulations, including inter-project dependency modification by a setting.

For task interruption, tasks must respond to the main thread being interrupted. In particular, a task must not ignore InterruptedException and must interrupt any threads it has started.

The previous behavior for 'update' logging may be enabled by setting 'ivyLoggingLevel := UpdateLogging.Quiet'.

See Changes for details.

sbt is a Scala build tool.

Filed under  //   Scala 2.9.1   Simple Build Tool   org.scala-tools.sbt  
Posted November 6, 2011 by harrah 

Simple Build Tool 0.11.0

Major Improvements:

  • Move to 2.9.1 for project definitions and plugins
  • Drop support for 2.7
  • Settings overhaul, mainly to make API documentation more usable
  • Support using native libraries in run and test (but not console, for example)
  • Automatic plugin cross-versioning. Use

    addSbtPlugin("group" % "name" % "version")

    in project/plugins.sbt instead of libraryDependencies += ... See Plugins for details

Fixes and Improvements:

  • Display all undefined settings at once, instead of only the first one
  • Deprecate separate classpathFilter, defaultExcludes, and sourceFilter keys in favor of includeFilter and excludeFilter explicitly scoped by unmanagedSources, unmanagedResources, or unmanagedJars as appropriate (Indrajit)
  • Default to using shared boot directory in ~/.sbt/boot/
  • Can put contents of project/plugins/ directly in project/ instead. Will likely deprecate plugins/ directory
  • Key display is context sensitive. For example, in a single project, the build and project axes will not be displayed
  • #114, #118, #121, #132, #135, #157: Various settings and error message improvements
  • #115: Support configuring checksums separately for publish and update
  • #118: Add about command
  • #118, #131: Improve last command. Aggregate last <task> and display all recent output for last
  • #120: Support read-only external file projects (Fred)
  • #128: Add skip setting to override recompilation change detection
  • #139: Improvements to pom generation (Indrajit)
  • #140, #145: Add standard manifest attributes to binary and source jars (Indrajit)
  • Allow sources used for doc generation to be different from sources for compile
  • #156: Made package an alias for package-bin
  • #162: handling of optional dependencies in pom generation

sbt is a Scala build tool.

Filed under  //   Scala 2.9.1   Simple Build Tool   org.scala-tools.sbt  

Simple Build Tool 0.10.1

  • Support "provided" as a valid configuration for inter-project dependencies #53
  • Try out some better error messages for build.sbt in a few common situations #58
  • Drop "Incomplete tasks ..." line from error messages. #32
  • Better handling of javac logging. #74
  • Warn when reload discards session settings
  • Cache failing classifiers, making 'update-classifiers' a practical replacement for withSources()
  • Global settings may be provided in ~/.sbt/build.sbt #52
  • No need to define "sbtPlugin := true" in project/plugins/ or ~/.sbt/plugins/
  • Provide statistics and list of evicted modules in UpdateReport
  • Scope use of 'transitive-classifiers' by 'update-sbt-classifiers' and 'update-classifiers' for separate configuration.
  • Default project ID includes a hash of base directory to avoid collisions in simple cases.
  • 'extra-loggers' setting to make it easier to add loggers
  • Associate ModuleID, Artifact and Configuration with a classpath entry (moduleID, artifact, and configuration keys). #41
  • Put httpclient on Ivy's classpath, which seems to speed up 'update'.

sbt is a Scala build tool.

Filed under  //   Scala 2.8.1   Simple Build Tool   org.scala-tools.sbt  
Posted July 14, 2011 by harrah 

sbt-android-plugin 0.5.1

  • Better compatibility with Scala 2.8.x
  • New Android API levels

sbt-android-plugin is a plug-in for simple-build-tool that provides support for developing Android applications in Scala.

Filed under  //   Scala 2.7.7   org.scala-tools.sbt   sbt-android-plugin  

sbt-android-plugin 0.5.0

  • TypedResources trait processes layout definitions to generate typed resource references in a Scala source file

sbt-android-plugin is a plug-in for simple-build-tool that provides support for developing Android applications in Scala.

Filed under  //   Scala 2.7.7   org.scala-tools.sbt   sbt-android-plugin  

sbt-android-plugin 0.4.2

  • Plugin has been renamed to sbt-android-plugin
  • sbt start-emulator command (GH-4) (steve918)
  • Various proguard config enhancements (GH-9, GH-10, GH-11)

sbt-android-plugin is a plug-in for simple-build-tool that provides support for developing Android applications in Scala.

Filed under  //   Scala 2.7.7   org.scala-tools.sbt   sbt-android-plugin  
Posted June 8, 2010 by Jan Berkel 

Simple Build Tool 0.7.4

Fixes

  • Fixed issue with using 2.8.0.RC1 (or later) compiler in tests.
  • Fix FileUtilities.unzip to be tail-recursive again.
  • Honor -Xfatal-warnings option added to compiler in 2.8.0.RC2.
  • Derive Java source file from name of class file when no SourceFile attribute is present in the class file. Improves tracking when -g:none option is used.
  • Properly support sftp/ssh repositories using key-based authentication. See the updated section of the Resolvers page.

Improvements

  • Prefix continuous compilation with the run number. This useful when the logging level is 'warn', for example.
  • Added pomRepositoryFilter(repo: MavenRepository): Boolean that can be overridden to exclude repositories from the pom generated by make-pom
  • Added pomPostProcess(pom: Node): Node to make advanced manipulation of the default pom easier (pomExtra already covers basic cases).
  • Added reset command to reset JLine terminal. This needs to be run after suspending and then resuming sbt.
  • More accurate detection of invalid test names. Invalid test names now generate an error and prevent the test action from running instead of just logging a warning.
  • Precompile compiler interface against 2.8.0.RC2
  • Add consoleOptions for specifying options to the console. It defaults to compileOptions.
  • New section in launcher configuration [ivy] with a single label cache-directory. Specify this to change the cache location used by the launcher.
  • Added method ivyUpdateLogging to control logging level when running update. Override it to be UpdateLogging.DownloadOnly, Full, or Quiet. The default is DownloadOnly. Full will log metadata resolution and provide a final summary. Quiet only logs problems.
  • Make scaladocTask a fileTask so that it runs only when index.html is older than some input source.
  • Sort input source files for consistency, addressing scalac's issues with source file ordering.
  • offline property for disabling checking for newer dynamic revisions (like -SNAPSHOT). This allows working offline with remote snapshots. Not honored for plugins yet.

New Feature

  • Commands for working with history. Run ! to see history command help.

Compatibility

  • Plugins can now only be Scala sources. BND should be usable in a plugin now.

Simple Build Tool is a build tool for Scala projects that aims to do the basics well.

Filed under  //   Scala 2.7.7   Simple Build Tool   org.scala-tools.sbt  
Posted May 16, 2010 by harrah 

Simple Build Tool 0.7.3

Fixes

  • Fixed issue with scala.library.jar not being on javac's classpath.
  • Fixed buffered logging for parallel execution.
  • Fixed test-* tab completion being permanently set on first completion.
  • Works with Scala 2.8 trunk again (including the latest 2.8.0-SNAPSHOT).
  • The latest launcher should fix issues with retrieving Scala 2.8.0-SNAPSHOT versions.
  • sxr sources
  • Maven local repository excluded when the Scala version is a snapshot. This should fix issues with out of date Scala snapshots.

Improvements

  • Merged Seth's patch to invoke javac in the same jvm when tools.jar is on the classpath. Macs include tools.jar by default, Linux and Windows users would need to add it to their sbt startup script or explicitly add it to compileClasspath.
  • The compiler interface is precompiled against common Scala versions (for this release, 2.7.7 and 2.8.0.Beta1).
  • There have been some new methods added to Path and PathFinder recently, such as PathFinder.distinct
  • Running multiple commands at once at the interactive prompt is now supported. Prefix each command with ';'.
  • Run and return the output of a process as a String with !! or as a (blocking) Stream[String] with lines.

New Feature

  • Java tests + Annotation detection
  • Test frameworks can now specify annotation fingerprints. Specify the names of annotations and sbt discovers classes with the annotations on it or one of its methods. Use version 0.5 of the test-interface.
  • Detect subclasses and annotations in Java sources (really, their class files).

Compatibility

This section is important for users that work with the TestDefinition, AnalysisCallback, or CompileConfiguration classes in sbt.

  • Discovered is new root of hierarchy representing discovered subclasses + annotations. TestDefinition no longer fulfills this role.
  • TestDefinition is modified to be name+Fingerprint and represents a runnable test. It need not be Discovered and could be file-based in the future, for example.
  • Replaced testDefinitionClassNames method with fingerprints in CompileConfiguration.
  • Added foundAnnotation to AnalysisCallback.
  • Added Runner2, Fingerprint, AnnotationFingerprint, and SubclassFingerprint to the test-interface. Existing test frameworks should still work. Implement Runner2 to use fingerprints other than SubclassFingerprint.

Simple Build Tool is a build tool for Scala projects that aims to do the basics well.

Filed under  //   Scala 2.7.7   Simple Build Tool   org.scala-tools.sbt  
Posted April 6, 2010 by harrah