X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ffoundation%2Fapi%2Frevel%2FCHANGELOG.md;fp=src%2Ffoundation%2Fapi%2Frevel%2FCHANGELOG.md;h=52734601902cfe0cc8d781f70a1356fe8f59a050;hb=1d1ee6961c93781e1187d8c7faa868da6b2f01f4;hp=0000000000000000000000000000000000000000;hpb=56dd5e0f2164b37b40ac1daa188ccc618b4cbd19;p=iec.git diff --git a/src/foundation/api/revel/CHANGELOG.md b/src/foundation/api/revel/CHANGELOG.md new file mode 100644 index 0000000..5273460 --- /dev/null +++ b/src/foundation/api/revel/CHANGELOG.md @@ -0,0 +1,623 @@ +# CHANGELOG + +## v0.19.0 +# Release 0.19.0 + +# Maintenance Release + +This release is focused on improving the security and resolving some issues. + +**There are no breaking changes from version 0.18** + +[[revel/cmd](https://github.com/revel/cmd)] +* Improved vendor folder detection revel/cmd#117 +* Added ordering of controllers so order remains consistent in main.go revel/cmd#112 +* Generate same value of `AppVersion` regardless of where Revel is run revel/cmd#108 +* Added referrer policy security header revel/cmd#114 + +[[revel/modules](https://github.com/revel/modules)] +* Added directory representation to static module revel/modules#46 +* Gorp enhancements (added abstraction layer for transactions and database connection so both can be used), Added security fix for CSRF module revel/modules#68 +* Added authorization configuration options to job page revel/modules#44 + +[[revel/examples](https://github.com/revel/examples)] +* General improvements and examples added revel/examples#39 revel/examples#40 + +## v0.18 +# Release 0.18 + +## Upgrade path +The main breaking change is the removal of `http.Request` from the `revel.Request` object. +Everything else should just work.... + +## New items +* Server Engine revel/revel#998 +The server engine implementation is described in the [docs](http://revel.github.io/manual/server-engine.html) +* Allow binding to a structured map. revel/revel#998 +Have a structure inside a map object which will be realized properly from params +* Gorm module revel/modules/#51 +Added transaction controller +* Gorp module revel/modules/#52 +* Autorun on startup in develop mode revel/cmd#95 +Start the application without doing a request first using revel run .... +* Logger update revel/revel#1213 +Configurable logger and added context logging on controller via controller.Log +* Before after finally panic controller method detection revel/revel#1211 +Controller methods will be automatically detected and called - similar to interceptors but without the extra code +* Float validation revel/revel#1209 +Added validation for floats +* Timeago template function revel/revel#1207 +Added timeago function to Revel template functions +* Authorization to jobs module revel/module#44 +Added ability to specify authorization to access the jobs module routes +* Add MessageKey, ErrorKey methods to ValidationResult object revel/revel#1215 +This allows the message translator to translate the keys added. So model objects can send out validation codes +* Vendor friendlier - Revel recognizes and uses `deps` (to checkout go libraries) if a vendor folder exists in the project root. +* Updated examples to use Gorp modules and new loggers + + +### Breaking Changes + +* `http.Request` is no longer contained in `revel.Request` revel.Request remains functionally the same but +you cannot extract the `http.Request` from it. You can get the `http.Request` from `revel.Controller.Request.In.GetRaw().(*http.Request)` +* `http.Response.Out` Is not the http.Response and is deprecated, you can get the output writer by doing `http.Response.GetWriter()`. You can get the `http.Response` from revel.Controller.Response.Out.Server.GetRaw().(*http.Response)` + +* `Websocket` changes. `revel.ServerWebsocket` is the new type of object you need to declare for controllers +which should need to attach to websockets. Implementation of these objects have been simplified + +Old +``` + +func (c WebSocket) RoomSocket(user string, ws *websocket.Conn) revel.Result { + // Join the room. + subscription := chatroom.Subscribe() + defer subscription.Cancel() + + chatroom.Join(user) + defer chatroom.Leave(user) + + // Send down the archive. + for _, event := range subscription.Archive { + if websocket.JSON.Send(ws, &event) != nil { + // They disconnected + return nil + } + } + + // In order to select between websocket messages and subscription events, we + // need to stuff websocket events into a channel. + newMessages := make(chan string) + go func() { + var msg string + for { + err := websocket.Message.Receive(ws, &msg) + if err != nil { + close(newMessages) + return + } + newMessages <- msg + } + }() +``` +New +``` +func (c WebSocket) RoomSocket(user string, ws revel.ServerWebSocket) revel.Result { + // Join the room. + subscription := chatroom.Subscribe() + defer subscription.Cancel() + + chatroom.Join(user) + defer chatroom.Leave(user) + + // Send down the archive. + for _, event := range subscription.Archive { + if ws.MessageSendJSON(&event) != nil { + // They disconnected + return nil + } + } + + // In order to select between websocket messages and subscription events, we + // need to stuff websocket events into a channel. + newMessages := make(chan string) + go func() { + var msg string + for { + err := ws.MessageReceiveJSON(&msg) + if err != nil { + close(newMessages) + return + } + newMessages <- msg + } + }() +``` +* GORM module has been refactored into modules/orm/gorm + + +### Deprecated methods +* `revel.Request.FormValue()` Is deprecated, you should use methods in the controller.Params to access this data +* `revel.Request.PostFormValue()` Is deprecated, you should use methods in the controller.Params.Form to access this data +* `revel.Request.ParseForm()` Is deprecated - not needed +* `revel.Request.ParseMultipartForm()` Is deprecated - not needed +* `revel.Request.Form` Is deprecated, you should use the controller.Params.Form to access this data +* `revel.Request.MultipartForm` Is deprecated, you should use the controller.Params.Form to access this data +* `revel.TRACE`, `revel.INFO` `revel.WARN` `revel.ERROR` are deprecated. Use new application logger `revel.AppLog` and the controller logger `controller.Log`. See [logging](http://revel.github.io/manual/logging.html) for more details. + +### Features + +* Pluggable server engine support. You can now implement **your own server engine**. This means if you need to listen to more then 1 IP address or port you can implement a custom server engine to do this. By default Revel uses GO http server, but also available is fasthttp server in the revel/modules repository. See the docs for more information on how to implement your own engine. + +### Enhancements +* Controller instances are cached for reuse. This speeds up the request response time and prevents unnecessary garbage collection cycles. + +### Bug fixes + + + + +## v0.17 + +[[revel/revel](https://github.com/revel/revel)] + +* add-validation +* i18-lang-by-param +* Added namespace to routes, controllers +* Added go 1.6 to testing +* Adds the ability to set the language by a url parameter. The route file will need to specify the parameter so that it will be picked up +* Changed url validation logic to regex +* Added new validation mehtods (IPAddr,MacAddr,Domain,URL,PureText) + +[[revel/cmd](https://github.com/revel/cmd)] + +* no changes + +[[revel/config](https://github.com/revel/config)] + +* no changes + +[[revel/modules](https://github.com/revel/modules)] + +* Added Gorm module + +[[revel/cron](https://github.com/revel/cron)] + +* Updated cron task manager +* Added ability to run a specific job, reschedules job if cron is running. + +[[revel/examples](https://github.com/revel/examples)] + +* Gorm module (Example) + +# v0.16.0 + +Deprecating support for golang versions prior to 1.6 +### Breaking Changes + +* `CurrentLocaleRenderArg` to `CurrentLocaleViewArg` for consistency +* JSON requests are now parsed by Revel, if the content type is `text/json` or `application/json`. The raw data is available in `Revel.Controller.Params.JSON`. But you can also use the automatic controller operation to load the data like you would any structure or map. See [here](http://revel.github.io/manual/parameters.html) for more details + +### Features + +* Modular Template Engine #1170 +* Pongo2 engine driver added revel/modules#39 +* Ace engine driver added revel/modules#40 +* Added i18n template support #746 + +### Enhancements + +* JSON request binding #1161 +* revel.SetSecretKey function added #1127 +* ResolveFormat now looks at the extension as well (this sets the content type) #936 +* Updated command to run tests using the configuration revel/cmd#61 + +### Bug fixes + +* Updated documentation typos revel/modules#37 +* Updated order of parameter map assignment #1155 +* Updated cookie lifetime for firefox #1174 +* Added test path for modules, so modules will run tests as well #1162 +* Fixed go profiler module revel/modules#20 + + +# v0.15.0 +@shawncatz released this on 2017-05-11 + +Deprecating support for golang versions prior to 1.7 + +### Breaking Changes + +* None + +### Features + +* None + +### Enhancements + +* Update and improve docs revel/examples#17 revel/cmd#85 + +### Bug fixes + +* Prevent XSS revel/revel#1153 +* Improve error checking for go version detection revel/cmd#86 + +# v0.14.0 +@notzippy released this on 2017-03-24 + +## Changes since v0.13.0 + +#### Breaking Changes +- `revel/revel`: + - change RenderArgs to ViewArgs PR #1135 + - change RenderJson to RenderJSON PR #1057 + - change RenderHtml to RenderHTML PR #1057 + - change RenderXml to RenderXML PR #1057 + +#### Features +- `revel/revel`: + +#### Enhancements +- `revel/revel`: + + +#### Bug Fixes +- `revel/revel`: + + +# v0.13.1 +@jeevatkm released this on 2016-06-07 + +**Bug fix:** +- Windows path fix #1064 + + +# v0.13.0 +@jeevatkm released this on 2016-06-06 + +## Changes since v0.12.0 + +#### Breaking Changes +- `revel/revel`: + - Application Config name changed from `watcher.*` to `watch.*` PR #992, PR #991 + +#### Features +- `revel/revel`: + - Request access log PR #1059, PR #913, #1055 + - Messages loaded from modules too PR #828 +- `revel/cmd`: + - Added `revel version` command emits the revel version and go version revel/cmd#19 + +#### Enhancements +- `revel/revel`: + - Creates log directory if missing PR #1039 + - Added `application/javascript` to accepted headers PR #1022 + - You can change `Server.Addr` value via hook function PR #999 + - Improved deflate/gzip compressor PR #995 + - Consistent config name `watch.*` PR #992, PR #991 + - Defaults to HttpOnly and always secure cookies for non-dev mode #942, PR #943 + - Configurable server Read and Write Timeout via app config #936, PR #940 + - `OnAppStart` hook now supports order param too PR #935 + - Added `PutForm` and `PutFormCustom` helper method in `testing.TestSuite` #898 + - Validator supports UTF-8 string too PR #891, #841 + - Added `InitServer` method that returns `http.HandlerFunc` PR #879 + - Symlink aware processing Views, Messages and Watch mode PR #867, #673 + - Added i18n settings support unknown format PR #852 + - i18n: Make Message Translation pluggable PR #768 + - jQuery `min-2.2.4` & Bootstrap `min-3.3.6` version updated in `skeleton/public` #1063 +- `revel/cmd`: + - Revel identifies current `GOPATH` and performs `new` command; relative to directory revel/revel#1004 + - Installs package dependencies during a build PR revel/cmd#43 + - Non-200 response of test case request will correctly result into error PR revel/cmd#38 + - Websockets SSL support in `dev` mode PR revel/cmd#32 + - Won't yell about non-existent directory while cleaning PR revel/cmd#31, #908 + - [x] non-fatal errors when building #908 + - Improved warnings about route generation PR revel/cmd#25 + - Command is Symlink aware PR revel/cmd#20 + - `revel package` & `revel build` now supports environment mode PR revel/cmd#14 + - `revel clean` now cleans generated routes too PR revel/cmd#6 +- `revel/config`: + - Upstream `robfig/config` refresh and import path updated from `github.com/revel/revel/config` to `github.com/revel/config`, PR #868 + - Config loading order and external configuration to override application configuration revel/config#4 [commit](https://github.com/revel/revel/commit/f3a422c228994978ae0a5dd837afa97248b26b41) + - Application config error will produce insight on error PR revel/config#3 [commit](https://github.com/revel/config/commit/85a123061070899a82f59c5ef6187e8fb4457f64) +- `revel/modules`: + - Testrunner enhancements + - Minor improvement on testrunner module PR #820, #895 + - Add Test Runner panels per test group PR revel/modules#12 +- `revel/revel.github.io`: + - Update `index.md` and homepage (change how samples repo is installed) PR [#85](https://github.com/revel/revel.github.io/pull/85) + - Couple of UI improvements PR [#93](https://github.com/revel/revel.github.io/pull/93) + - Updated techempower benchmarks Round 11 [URL](http://www.techempower.com/benchmarks/#section=data-r11) + - Docs updated for v0.13 release +- Cross-Platform Support + - Slashes should be normalized in paths #260, PR #1028, PR #928 + +#### Bug Fixes +- `revel/revel`: + - Binder: Multipart `io.Reader` parameters needs to be closed #756 + - Default Date & Time Format correct in skeleton PR #1062, #878 + - Addressed with alternative for `json: unsupported type: <-chan struct {}` on Go 1.6 revel/revel#1037 + - Addressed one edge case, invalid Accept-Encoding header causes panic revel/revel#914 + + +# v0.11.3 +@brendensoares released this on 2015-01-04 + +This is a minor release to address a critical bug (#824) in v0.11.2. + +Everybody is strongly encouraged to rebuild their projects with the latest version of Revel. To do it, execute the commands: + +``` sh +$ go get -u github.com/revel/cmd/revel + +$ revel build github.com/myusername/myproject /path/to/destination/folder +``` + + +# v0.11.2 +on 2014-11-23 + +This is a minor release to address a critical bug in v0.11.0. + +Everybody is strongly encouraged to rebuild their projects with the latest version of Revel. To do it, execute the commands: + +``` sh +$ go get -u github.com/revel/cmd/revel + +$ revel build github.com/myusername/myproject /path/to/destination/folder +``` + + +# v0.11.1 +@pushrax released this on 2014-10-27 + +This is a minor release to address a compilation error in v0.11.0. + + +# v0.12.0 +@brendensoares released this on 2015-03-25 + +Changes since v0.11.3: + +## Breaking Changes +1. Add import path to new `testing` sub-package for all Revel tests. For example: + +``` go +package tests + +import "github.com/revel/revel/testing" + +type AppTest struct { + testing.TestSuite +} +``` +1. We've relocated modules to a dedicated repo. Make sure you update your `conf/app.conf`. For example, change: + +``` ini +module.static=github.com/revel/revel/modules/static +module.testrunner = github.com/revel/revel/modules/testrunner +``` + +to the new paths: + +``` ini +module.static=github.com/revel/modules/static +module.testrunner = github.com/revel/modules/testrunner +``` + +## [ROADMAP] Focus: Improve Internal Organization + +The majority of our effort here is increasing the modularity of the code within Revel so that further development can be done more productively while keeping documentation up to date. +- `revel/revel.github.io` + - [x] Improve docs #[43](https://github.com/revel/revel.github.io/pull/43) +- `revel/revel`: + - [x] Move the `revel/revel/harness` to the `revel/cmd` repo since it's only used during build time. #[714](https://github.com/revel/revel/issues/714) + - [x] Move `revel/revel/modules` to the `revel/modules` repo #[785](https://github.com/revel/revel/issues/785) + - [x] Move `revel/revel/samples` to the `revel/samples` repo #[784](https://github.com/revel/revel/issues/784) + - [x] `testing` TestSuite #[737](https://github.com/revel/revel/issues/737) #[810](https://github.com/revel/revel/issues/810) + - [x] Feature/sane http timeout defaults #[837](https://github.com/revel/revel/issues/837) PR#[843](https://github.com/revel/revel/issues/843) Bug Fix PR#[860](https://github.com/revel/revel/issues/860) + - [x] Eagerly load templates in dev mode #[353](https://github.com/revel/revel/issues/353) PR#[844](https://github.com/revel/revel/pull/844) + - [x] Add an option to trim whitespace from rendered HTML #[800](https://github.com/revel/revel/issues/800) + - [x] Remove built-in mailer in favor of 3rd party package #[783](https://github.com/revel/revel/issues/783) + - [x] Allow local reverse proxy access to jobs module status page for IPv4/6 #[481](https://github.com/revel/revel/issues/481) PR#[6](https://github.com/revel/modules/pull/6) PR#[7](https://github.com/revel/modules/pull/7) + - [x] Add default http.Status code for render methods. #[728](https://github.com/revel/revel/issues/728) + - [x] add domain for cookie #[770](https://github.com/revel/revel/issues/770) PR#[882](https://github.com/revel/revel/pull/882) + - [x] production mode panic bug #[831](https://github.com/revel/revel/issues/831) PR#[881](https://github.com/revel/revel/pull/881) + - [x] Fixes template loading order whether watcher is enabled or not #[844](https://github.com/revel/revel/issues/844) + - [x] Fixes reverse routing wildcard bug PR#[886](https://github.com/revel/revel/pull/886) #[869](https://github.com/revel/revel/issues/869) + - [x] Fixes router app start bug without routes. PR #[855](https://github.com/revel/revel/pull/855) + - [x] Friendly URL template errors; Fixes template `url` func "index out of range" when param is `undefined` #[811](https://github.com/revel/revel/issues/811) PR#[880](https://github.com/revel/revel/pull/880) + - [x] Make result compression conditional PR#[888](https://github.com/revel/revel/pull/888) + - [x] ensure routes are loaded before returning from OnAppStart callback PR#[884](https://github.com/revel/revel/pull/884) + - [x] Use "302 Found" HTTP code for redirect PR#[900](https://github.com/revel/revel/pull/900) + - [x] Fix broken fake app tests PR#[899](https://github.com/revel/revel/pull/899) + - [x] Optimize search of template names PR#[885](https://github.com/revel/revel/pull/885) +- `revel/cmd`: + - [x] track current Revel version #[418](https://github.com/revel/revel/issues/418) PR#[858](https://github.com/revel/revel/pull/858) + - [x] log path error After revel build? #[763](https://github.com/revel/revel/issues/763) + - [x] Use a separate directory for revel project binaries #[17](https://github.com/revel/cmd/pull/17) #[819](https://github.com/revel/revel/issues/819) + - [x] Overwrite generated app files instead of deleting directory #[551](https://github.com/revel/revel/issues/551) PR#[23](https://github.com/revel/cmd/pull/23) +- `revel/modules`: + - [x] Adds runtime pprof/trace support #[9](https://github.com/revel/modules/pull/9) +- Community Goals: + - [x] Issue labels #[545](https://github.com/revel/revel/issues/545) + - [x] Sync up labels/milestones in other repos #[721](https://github.com/revel/revel/issues/721) + - [x] Update the Revel Manual to reflect current features + - [x] [revel/revel.github.io/32](https://github.com/revel/revel.github.io/issues/32) + - [x] [revel/revel.github.io/39](https://github.com/revel/revel.github.io/issues/39) + - [x] Docs are obsolete, inaccessible TestRequest.testSuite #[791](https://github.com/revel/revel/issues/791) + - [x] Some questions about revel & go docs #[793](https://github.com/revel/revel/issues/793) + - [x] RFCs to organize features #[827](https://github.com/revel/revel/issues/827) + +[Full list of commits](https://github.com/revel/revel/compare/v0.11.3...v0.12.0) + + +# v0.11.0 +@brendensoares released this on 2014-10-26 + +Note, Revel 0.11 requires Go 1.3 or higher. + +Changes since v0.10: + +[BUG] #729 Adding define inside the template results in an error (Changes how template file name case insensitivity is handled) + +[ENH] #769 Add swap files to gitignore +[ENH] #766 Added passing in build flags to the go build command +[ENH] #761 Fixing cross-compiling issue #456 setting windows path from linux +[ENH] #759 Include upload sample's tests in travis +[ENH] #755 Changes c.Action to be the action method name's letter casing per #635 +[ENH] #754 Adds call stack display to runtime panic in browser to match console +[ENH] #740 Redis Cache: Add timeouts. +[ENH] #734 watcher: treat fsnotify Op as a bitmask +[ENH] #731 Second struct in type revel fails to find the controller +[ENH] #725 Testrunner: show response info +[ENH] #723 Improved compilation errors and open file from error page +[ENH] #720 Get testrunner path from config file +[ENH] #707 Add log.colorize option to enable/disable colorize +[ENH] #696 Revel file upload testing +[ENH] #694 Install dependencies at build time +[ENH] #693 Prefer extension over Accept header +[ENH] #692 Update fsnotify to v1 API +[ENH] #690 Support zero downtime restarts +[ENH] #687 Tests: request override +[ENH] #685 Persona sample tests and bugfix +[ENH] #598 Added README file to Revel skeleton +[ENH] #591 Realtime rebuild +[ENH] #573 Add AppRoot to allow changing the root path of an application + +[FTR] #606 CSRF Support + +[Full list of commits](https://github.com/revel/revel/compare/v0.10.0...v0.11.0) + + +# v0.10.0 +@brendensoares released this on 2014-08-10 + +Changes since v0.9.1: +- [FTR] #641 - Add "X-HTTP-Method-Override" to router +- [FTR] #583 - Added HttpMethodOverride filter to routes +- [FTR] #540 - watcher flag for refresh on app start +- [BUG] #681 - Case insensitive comparison for websocket upgrades (Fixes IE Websockets ... +- [BUG] #668 - Compression: Properly close gzip/deflate +- [BUG] #667 - Fix redis GetMulti and improve test coverage +- [BUG] #664 - Is compression working correct? +- [BUG] #657 - Redis Cache: panic when testing Ge +- [BUG] #637 - RedisCache: fix Get/GetMulti error return +- [BUG] #621 - Bugfix/router csv error +- [BUG] #618 - Router throws exception when parsing line with multiple default string arguments +- [BUG] #604 - Compression: Properly close gzip/deflate. +- [BUG] #567 - Fixed regex pattern to properly require message files to have a dot in filename +- [BUG] #566 - Compression fails ("unexpected EOF" in tests) +- [BUG] #287 - Don't remove the parent folders containing generated code. +- [BUG] #556 - fix for #534, also added url path to not found message +- [BUG] #534 - Websocket route not found +- [BUG] #343 - validation.Required(funtionCall).Key(...) - reflect.go:715: Failed to generate name for field. +- [ENH] #643 - Documentation Fix in Skeleton for OnAppStart +- [ENH] #674 - Removes custom `eq` template function +- [ENH] #669 - Develop compress closenotifier +- [ENH] #663 - fix for static content type not being set and defaulting to OS +- [ENH] #658 - Minor: fix niggle with import statement +- [ENH] #652 - Update the contributing guidelines +- [ENH] #651 - Use upstream gomemcache again +- [ENH] #650 - Go back to upstream memcached library +- [ENH] #612 - Fix CI package error +- [ENH] #611 - Fix "go vet" problems +- [ENH] #610 - Added MakeMultipartRequest() to the TestSuite +- [ENH] #608 - Develop compress closenotifier +- [ENH] #596 - Expose redis cache options to config +- [ENH] #581 - Make the option template tag type agnostic. +- [ENH] #576 - Defer session instantiation to first set +- [ENH] #565 - Fix #563 -- Some custom template funcs cannot be used in JavaScript cont... +- [ENH] #563 - TemplateFuncs cannot be used in JavaScript context +- [ENH] #561 - Fix missing extension from message file causing panic +- [ENH] #560 - enhancement / templateFunc `firstof` +- [ENH] #555 - adding symlink handling to the template loader and watcher processes +- [ENH] #531 - Update app.conf.template +- [ENH] #520 - Respect controller's Response.Status when action returns nil +- [ENH] #519 - Link to issues +- [ENH] #486 - Support for json compress +- [ENH] #480 - Eq implementation in template.go still necessary ? +- [ENH] #461 - Cron jobs not started until I pull a page +- [ENH] #323 - disable session/set-cookie for `Static.Serve()` + +[Full list of commits](https://github.com/revel/revel/compare/v0.9.1...v0.10.0) + + +# v0.9.1 +@pushrax released this on 2014-03-02 + +Minor patch release to address a couple bugs. + +Changes since v0.9.0: +- [BUG] #529 - Wrong path was used to determine existence of `.git` +- [BUG] #532 - Fix typo for new type `ValidEmail` + +The full list of commits can be found [here](https://github.com/revel/revel/compare/v0.9.0...v0.9.1). + + +# v0.9.0 +@pushrax released this on 2014-02-26 + +## Revel GitHub Organization + +We've moved development of the framework to the @revel GitHub organization, to help manage the project as Revel grows. The old import path is still valid, but will not be updated in the future. + +You'll need to manually update your apps to work with the new import path. This can be done by replacing all instances of `github.com/robfig/revel` with `github.com/revel/revel` in your app, and running: + +``` +$ cd your_app_folder +$ go get -u github.com/howeyc/fsnotify # needs updating +$ go get github.com/revel/revel +$ go get github.com/revel/cmd/revel # command line tools have moved +``` + +**Note:** if you have references to `github.com/robfig/revel/revel` in any files, you need to replace them with `github.com/revel/cmd/revel` _before_ replacing `github.com/robfig/revel`! (note the prefix collision) + +If you have any trouble upgrading or notice something we missed, feel free to hop in the IRC channel (#revel on Freenode) or send the mailing list a message. + +Also note, the documentation is now at [revel.github.io](http://revel.github.io)! + +Changes since v0.8: +- [BUG] #522 - `revel new` bug +- [BUG] - Booking sample error +- [BUG] #504 - File access via URL security issue +- [BUG] #489 - Email validator bug +- [BUG] #475 - File watcher infinite loop +- [BUG] #333 - Extensions in routes break parameters +- [FTR] #472 - Support for 3rd part app skeletons +- [ENH] #512 - Per session expiration methods +- [ENH] #496 - Type check renderArgs[CurrentLocalRenderArg] +- [ENH] #490 - App.conf manual typo +- [ENH] #487 - Make files executable on `revel build` +- [ENH] #482 - Retain input values after form valdiation +- [ENH] #473 - OnAppStart documentation +- [ENH] #466 - JSON error template quoting fix +- [ENH] #464 - Remove unneeded trace statement +- [ENH] #457 - Remove unneeded trace +- [ENH] #508 - Support arbitrary network types +- [ENH] #516 - Add Date and Message-Id mail headers + +The full list of commits can be found [here](https://github.com/revel/revel/compare/v0.8...v0.9.0). + + +# v0.8 +@pushrax released this on 2014-01-06 + +Changes since v0.7: +- [BUG] #379 - HTTP 500 error for not found public path files +- [FTR] #424 - HTTP pprof support +- [FTR] #346 - Redis Cache support +- [FTR] #292 - SMTP Mailer +- [ENH] #443 - Validator constructors to improve `v.Check()` usage +- [ENH] #439 - Basic terminal output coloring +- [ENH] #428 - Improve error message for missing `RenderArg` +- [ENH] #422 - Route embedding for modules +- [ENH] #413 - App version variable +- [ENH] #153 - $GOPATH-wide file watching aka hot loading + + +# v0.6 +@robfig released this on 2013-09-16 + + +