| Version | Date | Description |
|---|---|---|
| 2.0-M1 | 2010-01-14 | Lift 2.0 Milestone 1 |
| 1.1-M8 | 2009-12-10 | Lift 1.1 Milestone 8 |
| 1.1-M7 | 2009-11-07 | Lift 1.1 Milestone 7 |
| 1.1-M6 | 2009-10-09 | Lift 1.1 Milestone 6 |
| 1.1-M5 | 2009-09-08 | Lift 1.1 Milestone 5 |
| 1.1-M4 | 2009-08-04 | Lift 1.1 Milestone 4 |
| 1.1-M3 | 2009-07-02 | Lift 1.1 Milestone 3 |
| 1.1-M1 | 2009-05-01 | Lift 1.1 Milestone 1 |
| 1.0 | 2009-02-26 | First Major |
| 0.10 | 2009-01-14 | api refactor |
| 0.9 | 2008-06-15 | |
| 0.8 | 2008-05-09 | |
| 0.7 | 2008-04-03 | |
| 0.6 | 2008-03-10 | |
| 0.5 | 2008-02-05 | |
| 0.4 | 2008-01-07 | |
| 0.3.0 | 2007-12-07 | champagne |
| 0.2.0 | 2007-06-06 | |
| 0.1.0 | 2007-02-26 | first public release |
| Type | Changes | By |
|---|---|---|
![]() | Changed LiftRules.getResourceAsStream() to doWithResource() to ensure InputStream is always closed Removed duplicate LiftRules.finder() Fixes 273. | boisvert |
![]() | Added logging of bad prepared statements to help diagnose things. Fixes 232. | dchenbecker |
![]() | Fixed Mapper to properly deal with generated values Fixes 231. | dchenbecker |
![]() | Misc sitemap enhancements Fixes 268. | dpp |
![]() | Lift explicitly closed streams rather than waiting for garbage collection Fixes 267. | dpp |
![]() | Jetty restarts do not cause exceptions to be thrown Fixes 266. | dpp |
![]() | lift-json's Jsvalue may be used with JsonResponse Fixes 262. | dpp |
![]() | Fixed NPE problems in Mapper to Json Fixes 248. | dpp |
![]() | Better handling of flot widget in Comet Fixes 247. | dpp |
![]() | Fixed misc Textile bugs Fixes 244. | dpp |
![]() | Enhanced stateful rewrite Fixes 243. | dpp |
![]() | Added post-commit hook to DB Fixes 242. | dpp |
![]() | Wizard supports file upload forms Fixes 241. | dpp |
![]() | Enhanced TestCond widget Fixes 240. | dpp |
![]() | 304 responses no longer contain content type Fixes 239. | dpp |
![]() | Enhanced connection pool logic Fixes 236. | dpp |
![]() | Fixed some null exceptions with DB queries Fixes 234. | dpp |
![]() | Fixed problems with the JNDI context Fixes 223. | dpp |
![]() | Fixed synchronization issues with Vars Fixes 222. | dpp |
![]() | OAuth support (thanks to the FourSquare guys) Fixes 276. | dpp |
![]() | File handles released correctly in Jetty Fixes 275. | dpp |
![]() | Extracted "Screen" code from Wizard for stand-alone declarative input screens Fixes 250. | dpp |
![]() | Restructure project (segregated into three logical projects: framework, archetypes, examples) | indrajitr |
| Type | Changes | By |
|---|---|---|
![]() | Added new built-in <lift:html5> snippet that sets HTML5 DOCTYPE on the XHTML response | boisvert |
![]() | JqJsCmds.ModalDialog now takes JsObj argument to work with BlockUI v2.x Fixes 218. | boisvert |
![]() | Fixed typo in DerbyDriver.integerIndexColumnType: IDENITY -> IDENTITY | boisvert |
![]() | Fixed Mapper to use DriverType.columnTypeMap everywhere Fixes 211. | dchenbecker |
![]() | Fixed Mapper logging to properly log inserts, updates and deletes Fixes 210. | dchenbecker |
![]() | Breaking Changes: 1) LocParam LocParam has been made a sealed trait to facilitate pattern matching within the Lift codebase and has had a contravariant type parameter added to its type to facilitate typesafe interactions with Loc[T]. The new trait is hence LocParam[-T]. As LocParam is now a sealed trait, I have added an extension point for user-specified LocParam subtypes as UserLocParam[-T] extends LocParam[T]. Since the new type parameter is contravariant, LocParam subclasses that are applicable for any Loc[T] have the type LocParam[Any], and a type alias AnyLocParam has been added for this type. The Loc.checkProtected method now enforces type consistency between the evaluated Link[T] and the list of LocParam[T] which are used to evaluate whether the link is accessible given the specified parameters. 2) Renames Previously, the "Param" suffix was used for two unrelated purposes within Loc: first, to refer to the type parameter of the Loc, and secondly for the LocParam configuration. This overloading made the code and the API somewhat difficult to read, so the first usage has been removed resulting in the following renames: ParamType => T NullLocParams => //removed, Unit is sufficient! Loc.defaultParams => Loc.defaultValue Loc.forceParam => Loc.overrideValue Loc.foundParam => Loc.requestValue Loc.additionalKidParams => Loc.childValues After this change, all instances of the "param" name within Loc should refer to something having to do with LocParam instances. Non-Breaking Additions: case class IfValue[T](test: Box[T] => Boolean, failMsg: FailMsg) extends LocParam[T] case class UnlessValue[T](test: Box[T] => Boolean, failMsg: FailMsg) extends LocParam[T] case class TestValueAccess[T](func: Box[T] => Box[LiftResponse]) extends LocParam[T] If you are using a non-Unit typed Loc, you can use these LocParam instances to enforce access rules at the value level. case class ValueTemplate[T](template: Box[T] => NodeSeq) extends LocParam[T] //per-value template selection DataLoc[T] subclass of Loc was added to facilitate the use of the new more typeful LocParam subtypes. A few changes to Link: Since Link.createLink creates a Box[Text] (and not a clickable link) a couple of methods were added to create the intermediate, unboxed values in order that subclasses can more easily manipulate the resulting path: Link.pathList(value: T): List[String] // added to facilitate creation of value-aware paths by subclasses. Link.createPath(value: T): String //creates the String representation of the path that is subsequently turned into XML and boxed by Link.createLink Fixes 139. | Kris Nuttycombe |
![]() | Allowing page fragments wrapped by <lift:lazy-load> node to be processed and loaded asynchronously. Fixes 56. | marius.danciu |
![]() | Updated documentation for Msgs Fixes 153. | boisvert |
![]() | XmlResponse(...) now accepts optional HTTP status code, mime type and cookies. Fixes 177. | boisvert |
![]() | SQL Server Alter Table Fails Fixes 14. | boisvert |
![]() | Typo in Req.scala Fixes 170. | boisvert |
![]() | Snapshot jars contains several Box.class files Fixes 166. | hseeberger |
![]() | Update hibernate-entitymanager to 3.4.0.GA. Fixes 156. Thanks to econoplas. | indrajitr |
![]() | Adjust javax.mail version range to avoid issues when Sun's repo is used and honor javax.activation being transitively pulled up my javax.mail. Fixes 168. Thanks to awhitford. | indrajitr |
![]() | Fix scala:doc and vscaladoc configuration along with provision for module specific configuration for packageLinkDefs. Fixes 180. | indrajitr |
![]() | Enforce Maven version 2.1.0 or higher, but lower than 3.0. Fixes 203. | indrajitr |
![]() | Upgrade Lift archetypes to use the new archetype metadata format. Enhance/fix archetype integration tests during build. Fixes 161. | indrajitr |
![]() | Enhance archetype metadata not to depend on ext.vm and allow one to set Lift version (-DliftVersion) or Scala version (-DscalaVersion) during archetype:generate. Fixes 227. | indrajitr |
![]() | Add ability to call JS code after AJAX form submit Fixes 148. | dchenbecker |
![]() | Add AJAX editable field generator to SHtml, add AjaxEditableField to Mapper. Fixes 181. | dchenbecker |
![]() | Fixed SQL Server drivers to use version-appropriate unicode columns for text. Fixes 16. | dchenbecker |
| Type | Changes | By |
|---|---|---|
![]() | Improve error message if database is not supported Fixes 57. | alex.boisvert |
![]() | Change net.liftweb.mapper.ByList to take a Seq[T] instead of a List[T] Fixes 77. | alex.boisvert |
![]() | Boxed payment status so that IPN cancelations appear as Empty. Breaking API change for implementors. Fixes 88. | timperrett |
![]() | Textile parser outputs non-valid output. Changed some null to Null. Fixes 94. Thanks to vdichev. | dpp |
![]() | Enhanced the documentation for an type signatures for Actors | dpp |
![]() | Revised Lift to use LiftActors and be compatible with Akka Actors | dpp |
![]() | S.deleteCookie broken in M6 Fixes 126. | dpp |
![]() | DB.runQuery isn't ConnectionIdentifier-aware Fixes 125. | dpp |
![]() | Misspelling in field name in ProtoExtendedSession Fixes 119. | dpp |
![]() | net.liftweb.widgets.autocomplete in version 1.1-M6 changed return type from NodeSeq to Elem Fixes 120. | dpp |
![]() | StatefulSnippets generate invalid markup Fixes 122. | dpp |
![]() | Updated Lift to use Scala 2.7.7 Fixes 142. | dpp |
![]() | Stacked URL Rewriting correctly deals with params Fixes 143. | dpp |
![]() | Simplified Factory signatures in LiftRules Fixes 141. | dpp |
![]() | Restructured Lift codebase (now categorized into lift-base, lift-persistence, lift-modules, lift-archetypes and lift-examples). Fixes 127. | indrajitr |
| Type | Changes | By |
|---|---|---|
![]() | Project build models are more enriched and streamlined. Fixes 128. | indrajitr |
![]() | JSON diff and merge | joni |
![]() | Generalized JSON serialization | joni |
![]() | Use paranamer to find out case class constructor argument names | joni |
![]() | Enhance CRUDify i18n Fixes 84. | heiko.seeberger |
![]() | Add parameterized ?? to S Fixes 82. | heiko.seeberger |
![]() | Inaccurate ranges for previous and next (page) in CRUDify Fixes 87. | heiko.seeberger |
![]() | No i18n for "Sign Up" in MetaMegaProtoUser.signupXhtm Fixes 81. | heiko.seeberger |
![]() | Lost password submit button is not rendered correctly Fixes 111. | heiko.seeberger |
![]() | Signup mail body not i18ned Fixes 113. | heiko.seeberger |
![]() | Misspelled Key "pasword.changed" in ProtoUser.scala Fixes 114. | heiko.seeberger |
![]() | Enhance Msgs snippet to optionally show all messages Fixes 123. | heiko.seeberger |
![]() | MappedPassword contains misspelled key for unset password Fixes 157. | heiko.seeberger |
| Type | Changes | By |
|---|---|---|
![]() | Added HTTP abstraction for making Lift container agnostic. | Marius Danciu |
| Type | Changes | By |
|---|---|---|
![]() | Added <lift:tail> builtin snippet for merging content at the end of body tag | Marius Danciu |
| Type | Changes | By |
|---|---|---|
![]() | Fixed Bug #34 - lift processing directives should be implemented as snippets | Marius Danciu |
![]() | Added support for templates caching | Marius Danciu |
| Type | Changes | By |
|---|---|---|
![]() | Consolidate LiftRules | Marius Danciu |
![]() | Added HTTP authentication support | Marius Danciu |
![]() | Upgrade to Scala 2.7.3 | Jorge Ortiz |
![]() | Upgrade to Scalacheck 1.5 | Jorge Ortiz |
![]() | Upgrade to Specs 1.4.0 | Jorge Ortiz |
![]() | Added Record/Field generic support | Marius Danciu |
![]() | Changed Can to Box | David Pollak |
![]() | Changed RequestState to Req | David Pollak |
![]() | Updated LiftView to be more syntactically pleasing | David Pollak |
![]() | Fixed a bug with how RequestVars and traits work | David Pollak |
![]() | Enhanced the DateTime inputs | David Pollak |
![]() | First pass at complete PayPal ITN and PDT stuff | David Pollak |
![]() | Refactoring of the PayPal stuff | David Pollak |
![]() | A Currency class | David Pollak |
![]() | Added a nifty mechanism for stateful form management (Hoot) | David Pollak |
![]() | Added fix CSS support | Marius Danciu |
![]() | Added support for other JS libraries | Marius Danciu |
![]() | Added JSON forms support | Marius Danciu |
![]() | Updated to jQuery 1.2.6 | Jorge Ortiz |
![]() | Added PayPal Integration module | timperrett |
![]() | Redesigned Gavatar widget | timperrett |
| Type | Changes | By |
|---|---|---|
![]() | Added URL rewriting support | Marius Danciu |
![]() | Added CalendarDayView widget | Marius Danciu |
![]() | Added CalendarWeekView widget | Marius Danciu |
![]() | Switch from svn (code.google.com) to git (github) has scm to manage source | David Pollak |
| Type | Changes | By |
|---|---|---|
![]() | Use vscaladoc to generate API | David Bernard |
![]() | Compiled the project with Scala-2.7.1 | Jorge Ortiz |
![]() | Start the lift-openid module | David Pollak |
![]() | Start the lift-oauth module | David Pollak |
![]() | Added CalendarMonthView widget | Marius Danciu |
![]() | Start the lift-widgets module | Marius Danciu |
![]() | Added ActorPing#scheduleAtFixedRate | Marius Danciu |
![]() | Added notices support for Comet actors | Marius Danciu |
![]() | Added JavaScript statements as JsCmd | Marius Danciu |
| Type | Changes | By |
|---|---|---|
![]() | Gave AMQPDispatcher users the ability to auto-reconnect to the amqp server if it restarts. | Steve Jenson |
![]() | - Separating html functions from S object to SHtml object - Putting LiftRules in its own file - Adding support for associating messages with ID's to allow form fields validation messages. - ValidationIssue renamed into FieldError and lives in http package - ErrorReport built in snippet was renamed to Msgs - Added Msg built in snippet used for form field messages (Renders only messages associated with this tag id) | Marius Danciu |
![]() | Extracted from the Helpers class, documented and tested ClassHelpers, ControlHelpers and TimeHelpers Traits | Eric Torreborre |
![]() | Adding unload hooks so a user's lift app can make sure that certain methods are called when the war is unloaded by the servlet container. | Steve Jenson |
![]() | Adding a bunch of Responses to help make building RESTful Web Services easier in lift. | Steve Jenson |
![]() | Added extensible support for specifying the behavior for invalid URI's (with or without site map) | Marius Danciu |
![]() | Changes LiftServlet object name to LiftRules | Marius Danciu |
![]() | Changed Loc behavior to use ResponseIt | Marius Danciu |
![]() | Added RedirectWithState | Marius Danciu |
![]() | Added a KeyedCache for model objects built on top of the LRU class. | Steve Jenson |
| Split lift-core into several modules : lift-webkit, lift-amqp, lift-facebook, lift-testkit, lift-textile, lift-xmpp | David Bernard |
| Type | Changes | By |
|---|---|---|
![]() | Compiled the project with Scala-2.7.0 | Eric Torreborre |
![]() | Added RedirectResponse class | Marius Danciu |
![]() | Added lift core localization support. | Marius Danciu |
![]() | Added Cookie support. | Steve Jenson |
![]() | Updating our version of jQuery to 1.2.3. | Steve Jenson |
![]() | Added a new method to MetaMapper that lets you find models by PreparedStatement. findByPreparedStatement | Steve Jenson |
| Type | Changes | By |
|---|---|---|
![]() | Added a new QueryParam, ByList which lets you query on Model objects with a List[T]. | Steve Jenson |
![]() | Revised the example site to use Blueprint CSS for style | David Pollak |
![]() | jlift JavaScript utilities and associated binder helpers. | David Pollak |
![]() | Blueprint CSS built in (version 0.6) so it can be served via /classpath | David Pollak |
![]() | XML -> JavaScript bindings so that JSON -> XHTML rendering can be defined using Scala XML literals, but the resulting JavaScript code can be sent to the browser to do mass rendering of JSON objects. | David Pollak |
![]() | Added JSON support including: - S.buildJSONFunc - JSONHandler class - Lots of fancy JavaScript expression building | David Pollak |
![]() | When lift is running in test mode, the default form generators will insert lift:field_name attribute into the form fields to aid in testing | David Pollak |
![]() | Added json2.js (and minified version) Enhanced the resource serving stuff so that: - The path is defined in LiftServlet and changable (defaults to "classpath") - Moved the resource location from the root to "toserve" (can be changed) to avoid any possible way of serving up classes - The white list is a Partial Function for more flexibility - The white list by default contains jquery.js and json.js - There's a re-writer to re-write the request into an actual file (so jquery.js gets re-written to jquery-1.2.2-min.js) | David Pollak |
![]() | Parser Combinator Helper routines | David Pollak |
![]() | MappedField.toForm now returns a Can[NodeSeq] so a field can be omitted from a form | David Pollak |
![]() | Added the "record" and "record_mgt" packages with half-baked record and field stuff in them | David Pollak |
![]() | Added LocInfo and LocInfoVal to SiteMap for storing CSS and other tidbits about each menu item | David Pollak |
![]() | Fixed the 'Welcome to the your project' type-o | David Pollak |
![]() | Further abstracted the whole logging thing. There's a default log4j setup that can be overriden. The LiftLogger trait is made concrete in Log4JLogger, but the generic LiftLogger creation is done by function that can be modified in LogBoot: var loggerByName: String => LiftLogger = _logger; var loggerByClass: Class => LiftLogger = _loggerCls; One can insert a new logging system into lift by replacing the loggerByName and loggerByClass functions with appropriate functions that return a LiftLogger. | David Pollak |
![]() | MappedText and MapperFakeClob classes | David Pollak |
![]() | Extensive updates to the <lift:xxx /> tag mechanism that uses tag labels as snippets and support for adding arbitrary tag handling to lift. | David Pollak |
| Type | Changes | By |
|---|---|---|
![]() | Added XMPP support for lift applications. see the package net.liftweb.xmpp | Steve Jenson |
![]() | Added support for switching XHTML MIME type serving off. See LiftServet.useXhtmlMimeType | Steve Jenson |
![]() | Upgrade to scala-2.6.1 | David Pollak |
![]() | Support for PosgreSQL 8.1 and some tests | David Pollak |
![]() | Adding support to H2 to lift-ORM | Maciek Starzyk |
![]() | Adding support to PostgreSQL to lift-ORM | Maciek Starzyk |
![]() | /html/body//head are merged into /html/head, to allow html fragment inlined into body to contribute to /html/head | David Bernard |
![]() | Adding a new lift archetype, lift-archetype-basic that will generate a lift template with basic database and users functionality. | Steve Jenson |
![]() | Adding LiftConsole to archetype to play with lift-based application in console mode | Steve Jenson |
![]() | Adding mock for HTTPRequest and Co | Steve Jenson |
![]() | Adding first Specs test to test lift-core | David Bernard |
![]() | The look of the maven site generated (for lift itself and for archetypes) | David Bernard |
![]() | Removing deprecated new_proj (replaced by archetypes) | David Bernard |
![]() | Removing lift-archetype-hellolift (replaced by lift-archetype-basic (and the sample application hellolift)) | David Bernard |
| Type | Changes | By |
|---|---|---|
![]() | Support for Ajax including integration of jQuery | David Pollak |
![]() | Radically improved Comet support | David Pollak |
![]() | Facebook API support | Jorge Eugenio Ortiz Hinojosa |
![]() | AMQP (RabbitMQ) support | Steve Jenson |
![]() | Radically improved Comet support | David Pollak |
![]() | Built in Traits for Users (including user management) and Tags | David Pollak |
![]() | Support for a variety of new Mapped types (Country, Locale, Postal Code, etc.) | David Pollak |
![]() | New examples including a real-time blog | David Pollak |
![]() | Project builder using Maven and significantly improved Maven support | David Bernard |
![]() | Localization | David Pollak |
![]() | Improved XHTML support including proper headers based on browser type | David Pollak |
![]() | Improved documentation | Team |
![]() | Radically improved samples and "getting started" pieces | Team |
![]() | support for multiple database instances | David Pollak |
![]() | improved regex support including some Regex -> object creation support for parsing | David Pollak |
![]() | a new and improved textile parser | David Pollak |
| Type | Changes | By |
|---|---|---|
![]() | "new_proj" script to create a new project | David Pollak |
![]() | HTTP test framework for writing tests | David Pollak |
![]() | Skittr code example -- a Twitter clone in lift and Scala | David Pollak |
![]() | SiteMap -- define site navigation and access control rules in a Domain Specific Language | David Pollak |
![]() | each model can live in a different database (multi database support) | David Pollak |
![]() | support for Jetty continuations on AJAX calls (automatic, not application code required) | David Pollak |
![]() | improvements to query building | David Pollak |
![]() | Shared session variable across Snippets and Controllers | David Pollak |
![]() | "recursive snippets" to re-write the page | David Pollak |
![]() | ability to pass attributes to Snippets and Controllers | David Pollak |
![]() | built in support for blowfish encryption | David Pollak |
![]() | logging via log4j | David Pollak |
![]() | MappedListEnum to persist List[Enumeration] easily | David Pollak |
![]() | lots of HTML form elements (select, multiselect, etc.) | David Pollak |
![]() | enhanced SQL queries | David Pollak |
![]() | filterMap support for queries as the rows come back from the database | David Pollak |
![]() | comparison operators for MappedField | David Pollak |
![]() | run modes (Production, Test, Development, etc.) | David Pollak |
![]() | properties that are based on user, machine, and run mode | David Pollak |
![]() | filters for fields such that input (and comparison and queries) can automatically be made upper case, lower case, trim, etc. | David Pollak |