Hi all,
Version 0.9 of the Ronin web application framework has been released. You can download it and view the documentation at
http://ronin-web.org.
Here's what's new in 0.9, and what you'll need to change in order to upgrade:
Breaking API changes
- Methods which were deprecated prior to 0.9 have been removed.
- DefaultRoninConfig.createDefaultAuthManager() has an additional parameter inserted at the second position; since Gosu does not support default values for block-type parameters, this is a required parameter. Passing in "null" will work fine.
Files moved
Some files in the default Ronin application layout have been moved and/or renamed. If you have an existing application using Ronin 0.8.6, you will need to make these changes.
- db/init.sql becomes src/db/model.ddl
- src/db/model.dbc becomes env/db/dev/model.dbc
Tosa
RoninDB, the default ORM implementation in Ronin, has been replaced by
Tosa. Tosa is API-compatible with RoninDB, so it will not require changing any code, but it provides the following advantages:
- Type information is generated from a schema specification (DDL) file, instead of read from a running database, so it's faster and doesn't require you to run a database during development
- More reliable and secure
- Files on the classpath containing SQL queries are turned into typesafe query objects in the type system
You can now provide different versions of classpath resources (such as database URLs) for different application environments (e.g. development mode vs. production mode).
Ronin now includes an admin console. When enabled, you can SSH in to your running application and execute Gosu code (with tab completion!)
With only a few lines of code, you can allow users to log in to your application using their Google account (or any other compliant OpenID identity provider).
Targeted reloading in development mode
Instead of reloading the entire type system on every request in development mode, Ronin now only reloads the files you've changed. This vastly improves application performance in development mode.
The default
Aardvark targets for your Ronin app for verifying your code and running your tests are more reliable, and support new options such as waiting for a debugger to connect, testing/verifying in different application environments, and running tests in parallel.
Other changes
- Controller methods which only need to render a simple string (e.g. AJAX request endpoints) can now simply return the string.
- Controller methods can be annotated to require an HTTPS connection.
- Support for requiring a user to be logged in to access controller methods.
...plus various bug fixes and improvements.
As always, feature requests and other feedback are welcomed. I'd love to hear from anyone who's using Ronin for an interesting project.
Enjoy!
-Gus