Slick 3.0.0-RC1

February 20 2015
by Stefan Zeiger

We have just released Slick 3.0.0-RC1, the first release candidate for “Reactive Slick”. You can find the source code here: Builds for Scala 2.10 (2.10.4 recommended) and 2.11 (2.11.4 recommended) are available from Maven Central, as usual.

These are the major new features in Slick 3.0:
  • A new API for composing and executing database actions.
  • Support for the Reactive Streams API for streaming results from the database.
  • Improved configuration of database connections via Typesafe Config, including built-in support for HikariCP.
  • Support for nested Option types and non-primtive Option types in the Lifted Embedding.
  • Properly typed outer join operators based on the improved Option support.
  • A new macro-based implementation of the Plain SQL API with optional compile-time checking and type inference for embedded SQL statements.
  • Many small improvements and bug fixes in the schema code generator.
  • Optional multi-line formatting and indenting of generated SQL code for more readable debug output.

Most of the manual has been updated. The “Slick Testkit” and “Plain SQL Queries” chapters will follow soon. None of the standard Activator templates are available at the moment. They will be ported to 3.0 before the final release. There is a new section in the Migration Guide for upgrading from Slick 2.1. The commercial Slick Extensions package with additional database drivers is also available for this RC. See the manual for details on adding it to your build.

Please provide feedback on the stability of this RC if you encounter any problems. We are planning to publish the final 3.0.0 release if no blockers are discovered in the next two weeks.

Here is a complete list of changes since 2.1.0:
  • bd0c9c4 Try to prevent some spurious failures on Travis CI
  • 58a1db9 Proper treatment of CHAR(1) columns in JdbcModelBuilder:
  • 7f0f62f Make code generator tests usable from other slick-extensions:
  • 25370cb Fix bugs detected by Slick Extensions upgrade:
  • 12faf5d Upgrade to Reactive Streams 1.0.0.RC3
  • 648184c Package structure and project layout refactoring:
  • 9c730c0 Upgrade to Reactive Streams 1.0.0.RC2:
  • 24770de Add DatabaseConfig as a higher-level configuration abstraction:
  • 759cbc2 Restore #$ support in the macro-based Plain SQL interpolation:
  • 62ddadc Macro-based PlainSQL API Implemented TypedStaticQuery as tsql
  • d63a018 UUID regression testkit:
  • 0a44b74 Update LiftedEmbedding.scala
  • 5af0d9b Distinguish between BLOB and BYTEA in PostgreSQL model builder
  • ec7f2aa Use TestDB for code generator tests:
  • cc8d3f0 Proper support for string lengths:
  • 41c717a Support fetch size in statement parameters.
  • 965604c Use force-insert semantics for inserting from queries and expressions.
  • 0e58e7d Deprecate the Direct Embedding
  • 0ba0dd5 Remove the blocking API that was introduced in 3.0.0-M1
  • 2f64c79 Rename Action to DBIO:
  • 86974bd Simplify SQLBuilder and formatting/indenting:
  • 20378ec Quote SqlType argument in code generator.
  • b1dca21 Make ColumnOptions more modular:
  • 7272180 Use unconstrained text type as default on PostgreSQL
  • 6cec3f7 Prefer prepareStatement(sql) instead of prepareStatement(sql, Int, Int)
  • a3eec4f Support transaction isolation levels
  • 6ea7fdb Generic fusion implementation for FlatMapAction and CleanupAction:
  • 706f2b1 Allow the SQL statements to be overridden in SqlActions.
  • a325f5e Run a user-defined init function on all created JDBC Statements
  • 3315a3b Refactoring of ActionContext:
  • dc687de Avoid long nested sequences of SchemaDescription.++ in generated code:
  • 62d5e92 Quote illegal identifiers in generated Scala sources.
  • 58c4ed5 Make ‘desiredColumnOrder’ in code generator non-final.
  • a645205 Support statement parameters in the new Action-based API.
  • b1c5b66 Switch JDBC metadata API and code generator to the new API.
  • c92a615 Fix typo in orm-to-slick.rst
  • d4f019f Move profile-level Action definitions outside of profiles.
  • 5cd423f Deprecate Invoker convenience methods and iteratees
  • 7d576c8 Properly deprecate .Implicit and .simple in all profile levels
  • 30c135e Upgrade to sbt 0.13.7
  • e9274ec Improve build system for documentation:
  • a6e3b9b Further modularization of Slick:
  • 4ab4a6b Switch Direct Embedding over to the new Action-based API.
  • ac37f1c Update documentation for 3.0:
  • e6562c7 Simplify Action Effect handling:
  • 06d1ca0 Increase timeout for Reactive Streams TCK tests.
  • efbe6f6 Bump version numbers:
  • 4d42528 Add concurrency stress test for streaming API:
  • 80929a6 Documentation plus minor improvements and fixes:
  • 273b957 Update to Reactive Streams 1.0.0.M3 and fix remaining PR review issues:
  • 688d7f2 Convert more test cases and add missing features:
  • d862e0f Optimize the streaming engine and fix some bugs:
  • 9ad62a9 Implement streaming via Reactive Streams API:
  • 6a85767 Convert several test cases to the new API.
  • 8ef6cde Add basic transaction support for database actions.
  • 09590fd Implement session pinning for database Actions:
  • 66a9b41 Basic implementation of action monad and asynchronous execution engine:
  • bf17772 Use HikariCP by default (instead of no connection pooling):
  • 4569c52 Simplify connection pool configuration
  • cc92c26 Simplify thread pool configuration:
  • 423e78c Remove the option to disable auto-commit for new connections.
  • e4dddcd Remove BoneCP support and drop configuration compatibility with Play.
  • 812100e Add HikariCP support in addition to BoneCP.
  • bb58103 Add primitives and configuration for async execution of blocking I/O
  • 0ea777a Fix broken build due to merging nested options support
  • 8d4a02f Ensure generated file ends with a newline character.
  • 9cdf7ec Make comment format match others in file.
  • ef5f9a8 Avoid indenting blank lines, to avoid trailing whitespace.
  • 8225a8f Add Option-extended joins:
  • 75583dc Lifted Embedding encoding of nested and multi-column Option types:
  • de389a4 Remove the Column type.
  • 5da96b4 Update orm-to-slick.rst
  • 7a1d119 modified to use GlobalConfig.
  • 777dbeb Add SimpleLiteral factory (and fix one unrelated unchecked warning)
  • 82b258f Use Unicode symbols in tree and table dumps for better readability.
  • f54d272 Add BoneCP support to Database.forConfig.
  • 369ad73 Use application.conf for Slick settings.
  • 61d032b Corrected docs to use “inSet” instead of “inSeq”
  • b0b0252 Fix forceInsertAll for single argument
  • 770d0a1 Update build for 2.2.0-SNAPSHOT
  • cb8183d Added support for string function repeat.
  • 57aa9e7 Workaround to pass Travis CI.
  • 7a58f7f Try for SQL String Indentation.

Past News Items

Mar 06 2018
We have just released Slick 3.2.2. You can find the source code here: . Builds for Scala 2.11 and 2.12 are available from Maven Central, as usual. From 3.2.0 on,...
Jul 20 2017
We have just released Slick 3.2.1. You can find the source code here: . Builds for Scala 2.11 and 2.12 are available from Maven Central, as usual. From 3.2.0 on,...
Feb 24 2017
We have just released Slick 3.2.0. You can find the source code here: . Builds for Scala 2.11 and 2.12 are available from Maven Central, as usual. From this release...
Feb 10 2017
We have just released Slick 3.2.0-RC1, the first release candidate for Slick 3.2.0. You can find the source code here: . Builds for Scala 2.11 and 2.12 are available from...
Dec 05 2016
We have just released Slick 3.2.0-M2, the second milestone for Slick 3.2. It should show up on Maven Central within the next few hours. You can find the source code...
Jul 04 2016
We have just released Slick 3.2.0-M1, the first milestone for Slick 3.2. It should show up on Maven Central within the next few hours. You can find the source code...
Mar 18 2016
I'd like to draw your attention to the new [community process](/community/process.html) and [code of conduct](/community/conduct.html) for Slick, both of which are based on [Play Framework's]( Back in 2008 [I]( started...
Feb 01 2016
Because nearly every application is driven by some sort of data source, we invested in building Slick, a Functional Relational Mapping (FRM) library for Scala that makes it easy to...