08 7 / 2014

bintray-sbt 0.1.2


  • published artifacts now use the moduleName sbt setting rather than name. This fixes some normalization when you specify unconventional project names.


The general theme for this release is to reduce publishing pain for those who have special publishing needs. Bintray.com reduces this pain rather well. Bintray-sbt exposes those pain killers to your sbt build.

  • PGP sign your published artifacts remotely

PGP is an industry standard for signing your work in a way that can be verified by interested parties. You can now store you PGP credentials on bintray so that you can sign artifacts from anywhere. Once you’ve uploaded your PGP keys to bintray’s servers, you can sign your published artifacts with the remoteSign sbt task ( your pgp passphrase is required )


Note, this is a voluntary action. It does not run when you publish, run the publish task first, then run remoteSign. This action will publish the signed artifacts for the current version. Note that if you want to sign your artifacts locally rather than remotely, there’s a well-maintained sbt plugin for that as well.

  • sync to maven central

Bintray.com puts you at the center of control for publishing arbitrary content, including maven artifacts. Because bintray decentralizes published content, it’s host’s are most likely not in the default resolver chains of most build tools, including sbt. Until then, your users will have to append a bintray resolver for your artifacts. To address this, bintray now supports maven central synchronizing of artifacts for those who’s bintray packages are linked to jCenter and who have a registered account on sonatype oss.

To have your bintray-published artifacts sync’d with maven central, you can simply run the syncMavenCentral task ( user sonatype credentials are required if you don’t have a set of sbt publishing credentials already defined for the “oss.sonatype.org” host)


Note, this is a voluntary action. Syncing packages to maven central has some extra requirements. Most are covered in the article here and here.

  • convenience for maven repo convention

Typical bintray usage in sbt will be resolving packages from maven repositories. To append a bintray resolver in sbt you could previously add the following to your build definition

resolvers += bintray.Opts.resolver.repo("user", "maven")

The bintray convention of storing maven style packages in a bintray repo named “maven” is not likely to change so in most cases you may now wish to simply use the following in your build definition

resolvers += bintray.Opts.resolver.mavenRepo("user")

bintray-sbt brings publishing back to your console.

08 7 / 2014

bintry 0.3.0


Enjoy Bintray’s new syncing feature. Note, you may need to adjust your build definition to meet the requirements for a maven central sync.

import bintry._
Client(user, pass).repo(sub, repo)
  .mavenCentralSync(sonauser, sonapassword)()

Feel at ease with Bintray’s hosted pgp signing feature

import bintry._
Client(user, pass).repo(sub, repo)
  • Added support for downloading logs and pulling down a download

bintry is an interface for interacting with and publishing to bintray.com

07 7 / 2014

scoobi 0.8.5

Maintenance version


  • using wire formats to serialise DObjects
  • added a WireFormat for java.util.Map[A, B]
  • set the classpath diagnostics as debug info on the client by default
  • simplified the use of overwritable text file output format
  • added an overwritable text file sink
  • added the possibility to fully specify the temp directory with scoobi.workingdir and scoobi.tempdir
  • display only the sink id when pretty printing the graph
  • added methods to use an Emitter in the combine phase
  • added the possibility to use the task input output context in a parallelDo
  • added the possibility to access the configuration from a map operation
  • throw an exception if the compression codec is not available added a method to check the availability of a codec
  • added a “download” sink to collect downloaded files in map tasks


  • fixed the passing of WireFormat when transforming a Combine node in a ParallelDo
  • fixed the numbering of steps
  • set the configuration if possible on the codec before getting its compressor
  • fix for checkpoints when one job fails In that case the _SUCCESS_JOB file for the other job is not changed into _SUCCESS but we should still use the checkpoint if there is one

scoobi is a productivity library for writing Hadoop jobs in Scala.

For more information visit: http://nicta.github.com/scoobi.

07 7 / 2014

specs2 2.3.13

Maintenance version


  • defaulting to displaying the full class name of a class if the simple class name doesn’t work (in the console sometimes)
  • copy system properties in an immutable map to avoid CMEs #264
  • avoid NPE when an exception with no message is caught on class instantiation #265
  • fixed the .await method for future matchers and failed futures #269
  • output the full class name of a class in the junitxml path #273
  • fixed the inOrder matcher for the allOf container matcher
  • deal with duplicated lines in haveSameLinesAs #276
  • added back a missing conversion method for AsResult instances This allows to write List(1 must_== 1, 1 must_== 1)


specs2 is a library for writing software specifications in Scala.

For more information visit: http://specs2.org.

06 7 / 2014

courier 0.1.3



  • #7 added documentation on testing mcamou


  • dropped scala 2.9.3 support, added scala 2.11 support

courier delivers electronic mail in scala

05 7 / 2014

scalaxb 1.2.1

This is a bug fix release focused on fixing the SOAP code generation. See using SOAP for more details.

SOAP bug fixes

  • Fixes xs:AnyType handling. #265
  • Fixes asFault not Throwable error. #264 reported by @romainreuillon
  • Fixes the generated code for multipart SOAP message. #267 reported by @tomhaigh
  • Fixes the definition of HttpClientsAsync to use concurrent.Future. #269 reported by @hedefalk
  • Adds --blocking command line option to generate blocking SOAP client.

minor enhancements

  • Masks scalaxb package that’s used internally to generate code.

scalaxb is an XML data-binding tool for Scala that supports W3C XML Schema (xsd) as the input file.

17 6 / 2014

argot 1.0.1

  • Built for the Scala 2.10.0 and 2.10.1.

This version, and later versions, are 2.10-only. 2.9.x and earlier will be supported via the pre-scala-2.10 GitHub branch. This is due to changes in the Scala library between 2.9 and 2.10.

Argot is a command-line parser library for Scala, supporting:

  • single-value and multi-value options
  • single-value and multi-value parameters
  • flag and non-flag options
  • GNU-style long options, (i.e., “—option”)
  • POSIX-style short options, (i.e., single “-” lead-in), with option grouping (e.g., “tar -xcf foo.tgz”)
  • automatic parameter conversion (i.e., values with non-string types, with automatic conversion)
  • the ability to supply your own conversion functions

You can find complete details, including usage information, on the Argot home page.

16 6 / 2014

parboiled2 2.0.0

This is the final release of parboiled 2.0.

parboiled 2 improves upon parboiled 1.x in many ways, most importantly parsing performance and DSL flexibility. The final adds only one small patch to the preceding RC2 and fixes an issue causing stack overflows in certain situations involving large input.

The release announcement on the mailing list can be found here.


  • Fixed stack overflow caused by scala issue 8657 (#78)

parboiled2 is a macro-based PEG parser generator for Scala 2.10.3+ and Scala 2.11, enabling lightweight and easy-to-use, yet powerful, fast and elegant parsing of arbitrary input text. It serves well as a replacement for Scala’s parser combinators and regular expressions where parsing performance, readability/maintainability of the parser definition and/or error reporting quality is of the essence.

15 6 / 2014

scalaxb 1.2.0

non-blocking SOAP

scalaxb 1.2.0 generates non-blocking SOAP code by default. Instead of Either[X, A], the SOAP call returns Future[A] and the fault, if any, is thrown as Future's failure semantics.

// default
def getQuote(symbol: Option[String]): Future[stockquote.GetQuoteResponse]

// async in (Compile, scalaxb) := false
def getQuote(symbol: Option[String]): Either[scalaxb.Fault[Any], stockquote.GetQuoteResponse]

This feature was contributed by @jlavallee and @hoff2 as #213/#259.

SOAP bug fixes

  • Escapes reserve words appearing as a parameter in SOAP. #252/#256 contributed by @romainreuillon
  • Escapes reserve words appearing as an operation name in SOAP. #241 reported by @rcgoodfellow
  • Fixes handling of nillable elements appearing in SOAP. #229 reported by @barnesjd
  • Fixes string encoding problems while posting SOAP. #231 reported by @hedefalk
  • Supports Dispatch 0.11.1.
  • Fixes response parsing for literal RPC style. [#260][260] reported by [@romainreuillon][@romainreuillon]

bug fixes and minor enhancements

  • Drops Scala 2.9.0 and removing deprecated warnings.
  • Caches DatatypeFactory instance to ThreadLocal. #243 contributed by @malaporte
  • Fixes handing of zero-length prefix. #253/#255 contributed by @romainreuillon
  • Fixes mixed attribute not being inherited when extending a complex type. #228 reported by @choffmeister
  • Fixes non-terminating parser when unbounded is nested. #230 reported by @FranklinChen
  • Fixes handling of xs:element with default with minOccurs = 1. #245 reported by @alboko
  • Fixes handling of very long xs:enumeration value. #247 reported by @jcranky
  • Fixes handling of xs:element names with symbols when --class-prefix is passed. #251 reported by @romangarcia
  • Fixes xs:group parser getting inherited twice. #238 reported by @choeger

scalaxb is an XML data-binding tool for Scala that supports W3C XML Schema (xsd) as the input file.

11 6 / 2014

scalatra 2.3.0


  • Breaking: Require java 7
  • Breaking: if you have custom route transformer hooks the function now needs a param type

    protected def swaggerMeta(s: Symbol, v: Any): RouteTransformer = { route ⇒
        route.copy(metadata = route.metadata + (s -> v))


    protected def swaggerMeta(s: Symbol, v: Any): RouteTransformer = { (route: Route) ⇒
        route.copy(metadata = route.metadata + (s -> v))
  • Support for Scala 2.9.x dropped.
  • Updates to servlet 3.1
  • Change FutureSupport.timeout from a Timeout to a Duration.
  • Add a timeout to AsyncResult.
  • Run callbacks before render in renderResponseBody.
  • Redirect returns Nothing, not unit.
  • Allow calling halt from trap handler.
  • Remove Akka dependency. Only scala.concurrent is needed.
  • Stack trace of uncaught exceptions only renders in development mode by default. Hook renderUncaughtException is now protected.
  • Render unhandled exceptions from failed Futures.
  • Fix #342: Verify that gzip Content-Encoding header gets added only once
  • Fix #349: Fix css mime type detection
  • Fix #351: Fix ScalatraServlet.requestPath for encoded unicode URI
  • Added support for loadOnStartup when mounting servlets
  • Moved function to retrieve environment to RichServletContext
  • Fix #277: Only catch ClassNotFoundException in ScalatraBootstrap
  • Fix #319: responseFormat crashes with unrecognized MIME type
  • Fix #296: Check for http again when generating a full url


  • Make ScalatraBroadcaster a trait for custom broadcasters.
  • Add RedisScalatraBroadcaster.
  • Support ClientFilter with Redis Atmosphere plugin.
  • Don’t kill httpsession on atmosphere disconnect.
  • Fix Atmosphere: raise the connected event a little bit later to avoid a race
  • Scalatra broadcaster logs at trace level instead of info level
  • Update to atmosphere 2.1
  • Fix #271: Make atmoshpere client Serializable
  • Make connection string for RedisScalatraBroadcaster configurable
  • improve error message when no Get route is defined while using AtmosphereSupport
  • Fix NPE in AtmosphereClient when looking up an unknown broadcaster
  • simplify TrackMessageSizeInterceptor configuration


  • Ensure ordering of properties on body parameters from a command by adding a position method.


  • Provide a way to implement custom Messages resolver.


  • Support custom serializers in JValueResult.
  • Check if response is JSON or XML in renderJson.
  • Update json4s to 3.2.10
  • Use the character encoding from the request to read the json input stream.


  • Don’t always render the Scalate Error page.
  • Fix #336: Only use a single scalate template engine


  • New support module for Spring.


  • BREAKING Use 1.2 spec.
  • Add naive exclusion based on simple class name and known model ID.
  • Add apiOperation and parameter methods that use a swagger model declaration directly.
  • Fix detection of default value.
  • Fix Option data type on models.
  • Fix NPE when the model property has a default value of null.
  • Fix URL generation when a context path is set.
  • Fix serialization of data type for operations and parameters.
  • Fix Option[List[_]] reflection.
  • Output position in Swager spec so model properties have a stable order.
  • Annotated properties are required by default.
  • Force compilation error for apiOperation without type param.
  • Add a form param to swagger support
  • Fix swagger to support application names that have a ‘/’ in them
  • Fix #354: Don’t stackoverflow in swagger with a self-referencing model

Scalatra is a blazing fast, async Scala web micro-framework; inspired by Sinatra.


Permalink 2 notes