@notzippy notzippy released this Mar 21, 2018 · 5 commits to master since this release

Assets 2

Fix import to point to the fsnotify/fsnotify.v1

@notzippy notzippy released this Feb 7, 2018 · 7 commits to master since this release

Assets 2

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]

  • 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]

  • 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]

@notzippy notzippy released this Nov 1, 2017 · 40 commits to master since this release

Assets 2

New items

  • Server Engine revel/revel#998
    The server engine implementation is described in the docs
  • Go dependencies revel/meta#11
    Update your gopath with the dependencies files in the revel/meta package. Checkout any version of revel from 0.14 till now
  • 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.ResponseWriter from revel.Controller.Response.Out.Server.GetRaw().(*http.ResponseWriter)`

  • 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 mathods

  • 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 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

@notzippy notzippy released this Jul 14, 2017 · 112 commits to master since this release

Assets 2

Critical issue identified details here #1200

@notzippy notzippy released this Jul 12, 2017 · 116 commits to master since this release

Assets 2

CHANGELOG

v0.17

[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]

  • no changes

[revel/config]

  • no changes

[revel/modules]

  • Added Gorm module

[revel/cron]

  • Updated cron task manager
  • Added ability to run a specific job, reschedules job if cron is running.

[revel/examples]

  • Added Gorm module (Example)

@brendensoares brendensoares released this Jun 7, 2017 · 134 commits to master since this release

Assets 2

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 for more details

Features

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

@shawncatz shawncatz released this May 12, 2017 · 156 commits to master since this release

Assets 2

Deprecating support for golang versions prior to 1.7

Breaking Changes

  • None

Features

  • None

Enhancements

Bug fixes

@notzippy notzippy released this Mar 24, 2017 · 161 commits to master since this release

Assets 2

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

  • None

Enhancements

  • None

Bug Fixes

  • None

@jeevatkm jeevatkm released this Jun 7, 2016 · 233 commits to master since this release

Assets 2

Bug fix:

@jeevatkm jeevatkm released this Jun 6, 2016 · 235 commits to master since this release

Assets 2

Changes since v0.12.0

Breaking Changes

  • revel/revel:
    • Application Config name changed from watcher.* to watch.* PR #992, PR #991

Features

  • revel/revel:
  • 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
      • 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
    • Application config error will produce insight on error PR revel/config#3 commit
  • revel/modules:
    • Testrunner enhancements
  • revel/revel.github.io:
    • Update index.md and homepage (change how samples repo is installed) PR #85
    • Couple of UI improvements PR #93
    • Updated techempower benchmarks Round 11 URL
    • Docs updated for v0.13 release
  • Cross-Platform Support

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