From 5aaec72634f5b80f4fc863a9ad9463bf3da4799d Mon Sep 17 00:00:00 2001 From: "Gerasimos (Makis) Maropoulos" Date: Tue, 7 Feb 2017 02:37:35 +0200 Subject: [PATCH] Update to 6.1.4 - Align with the improved kataras/go-sessions --- HISTORY.md | 28 +++++++++++++++++++++++----- README.md | 8 +++++--- configuration.go | 15 --------------- iris.go | 14 ++++++-------- 4 files changed, 34 insertions(+), 31 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index d64691b0..357ec4e8 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -17,7 +17,7 @@ Users should prepare their apps for: Iris is bigger than it was, we need to keep a limit on the exported functions to help users understand the flow much easier. Users often asked questions about built'n features and functions usage because they are being confused of the big public API (`iris.` vs `app := iris.New(); app.`). This removal will also let me to describe the types with more sense. - + - NEW feature: `app.Adapt(iris.Policy)` which you will be able to adapt a **custom http router**, **custom template functions**, **custom http router wrappers**, **flow events** and much more. I'll cover these on book and examples when it will be released. - Replace: `.Plugins.` with `EventPolicy`: `app.Adapt(iris.EventPolicy{ Boot: func(*iris.Framework){}} )`. @@ -29,19 +29,37 @@ Users should prepare their apps for: - Replace: `.AcquireCtx/.ReleaseCtx` with `app.Context.Acquire/Release/Run`. -- NEW feature: able to pass an `func(http.ResponseWriter, *http.Request, http.HandlerFunc)` third-party net/http middleware like normal -iris.HandlerFunc with `iris.ToHandler`. (I already pushed that to the current version, because I think it will make your life easier now). +- IMPROVEMENT: Now you're able to pass an `func(http.ResponseWriter, *http.Request, http.HandlerFunc)` third-party net/http middleware(Chain-of-responsibility pattern) using the `iris.ToHandler` wrapper func without any other custom boilerplate. + * already pushed to the current version -- FIX: `iris run main.go` didn't reload the app on file changes when saving a source file via some IDEs, + +- FIX: [iris run main.go](https://github.com/kataras/iris/tree/master/iris#run) not reloading when file changes maden by some of the IDEs, because they do override the operating system's fs signals. The majority of -editors worked before but I couldn't let some developers without support. (I already pushed that to the current version) +editors worked before but I couldn't let some developers without support. + * already pushed to the current version + - FIX: custom routers not working well with static file serving, reverse routing and per-party http custom errors. +- IMPROVEMENT: [Sessions manager](https://github.com/kataras/go-sessions) works even faster now. + * already pushed to the current version + + - NEW: HTTP/2 Push `context.Push` The full list of next version's features among with one by one steps to refactor your code in breaking-cases will be noticed here when it will be released. +## 6.1.3 -> 6.1.4 + +- FIX: [iris run main.go](https://github.com/kataras/iris/tree/master/iris#run) not reloading when file changes maden by some of the IDEs, +because they do override the operating system's fs signals. The majority of +editors worked before but I couldn't let some developers without support. + +- IMPROVEMENT: Now you're able to pass an `func(http.ResponseWriter, *http.Request, http.HandlerFunc)` third-party net/http middleware(Chain-of-responsibility pattern) using the `iris.ToHandler` wrapper func without any other custom boilerplate. + +- IMPROVEMENT: [Sessions manager](https://github.com/kataras/go-sessions) works even faster now. + + ## 6.1.2 -> 6.1.3 - Added a configuration field `iris.Config.DisableBodyConsumptionOnUnmarshal` diff --git a/README.md b/README.md index e7907b8a..d8425568 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@

Logo created by an Iris community member, @OneebMalik + alt="Logo created by an Iris community member, https://github.com/OneebMalik" + title="Logo created by an Iris community member, https://github.com/OneebMalik">
@@ -20,7 +21,7 @@
-CHANGELOG/HISTORY +CHANGELOG/HISTORY Examples @@ -199,6 +200,7 @@ Today I spend all my days and nights coding for Iris, and I'm happy about this, - Star the project, will help you to follow the upcoming features. - [Donate](https://github.com/kataras/iris/blob/master/DONATIONS.md), if you can afford any cost. - Write an article about Iris or even post a Tweet. +- Do Pull Requests on the [iris-contrib](https://github.com/iris-contrib) organisation's repositories, like book and examples. If you are interested in contributing to the Iris project, please see the document [CONTRIBUTING](https://github.com/kataras/iris/blob/master/.github/CONTRIBUTING.md). @@ -216,7 +218,7 @@ Besides the fact that we have a [community chat][Chat] for questions or reports Versioning ------------ -Current: **v6.1.3** +Current: **v6.1.4** v5: https://github.com/kataras/iris/tree/5.0.0 diff --git a/configuration.go b/configuration.go index 84c25d7b..d2cc030f 100644 --- a/configuration.go +++ b/configuration.go @@ -557,17 +557,6 @@ var ( } } - // OptionSessionsGcDuration every how much duration(GcDuration) the memory should be clear for unused cookies (GcDuration) - // for example: time.Duration(2)*time.Hour. it will check every 2 hours if cookie hasn't be used for 2 hours, - // deletes it from backend memory until the user comes back, then the session continue to work as it was - // - // Default 2 hours - OptionSessionsGcDuration = func(val time.Duration) OptionSet { - return func(c *Configuration) { - c.Sessions.GcDuration = val - } - } - // OptionSessionsDisableSubdomainPersistence set it to true in order dissallow your q subdomains to have access to the session cookie // Defaults to false OptionSessionsDisableSubdomainPersistence = func(val bool) OptionSet { @@ -585,8 +574,6 @@ var ( const ( // DefaultCookieName the secret cookie's name for sessions DefaultCookieName = "irissessionid" - // DefaultSessionGcDuration is the default Session Manager's GCDuration , which is 2 hours - DefaultSessionGcDuration = time.Duration(2) * time.Hour // DefaultCookieLength is the default Session Manager's CookieLength, which is 32 DefaultCookieLength = 32 ) @@ -598,9 +585,7 @@ func DefaultSessionsConfiguration() SessionsConfiguration { CookieLength: DefaultCookieLength, DecodeCookie: false, Expires: 0, - GcDuration: DefaultSessionGcDuration, DisableSubdomainPersistence: false, - DisableAutoGC: true, } } diff --git a/iris.go b/iris.go index 06f2ba20..fa5b6e6d 100644 --- a/iris.go +++ b/iris.go @@ -81,7 +81,7 @@ const ( // IsLongTermSupport flag is true when the below version number is a long-term-support version IsLongTermSupport = false // Version is the current version number of the Iris web framework - Version = "6.1.3" + Version = "6.1.4" banner = ` _____ _ |_ _| (_) @@ -315,8 +315,9 @@ func New(setters ...OptionSetter) *Framework { // the whole ws configuration and websocket server is really initialized only on first OnConnection s.Websocket = NewWebsocketServer(s) - // set the sessions, look .initialize for its GC - s.sessions = sessions.New(sessions.DisableAutoGC(true)) + // set the sessions in order to UseSessionDB to work + // see Build state + s.sessions = sessions.New() } // routing @@ -423,11 +424,8 @@ func (s *Framework) Build() { } } - // init, starts the session manager if the Cookie configuration field is not empty - if s.Config.Sessions.Cookie != "" { - // re-set the configuration field for any case - s.sessions.Set(s.Config.Sessions, sessions.DisableAutoGC(false)) - } + // set the user's configuration (may changed after .New()) + s.sessions.Set(s.Config.Sessions) // prepare the mux runtime fields again, for any case s.mux.setCorrectPath(!s.Config.DisablePathCorrection)