Skip to content

Commit

Permalink
Merge pull request #75 from roidrage/v0.9.0-prep
Browse files Browse the repository at this point in the history
v0.9.0 prep
  • Loading branch information
meatballhat authored Jul 2, 2016
2 parents 378234b + f144569 commit 2ace1fa
Show file tree
Hide file tree
Showing 8 changed files with 185 additions and 132 deletions.
305 changes: 184 additions & 121 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,158 +1,221 @@
redis-session-store history
===========================
# Change Log

## v0.8.1 (2016-01-25)
**ATTN**: This project uses [semantic versioning](http://semver.org/).

* Support for Rails 5 and Rack 2
* Expand error support for redis-rb v3 gem
## [Unreleased]

## v0.8.0 (2014-08-28)
## [0.9.0] - 2016-07-02
### Added
- [`CODE_OF_CONDUCT.md`](./CODE_OF_CONDUCT.md)
- Method alias for `#delete_session` -> `#destroy_session`

* Allow for injection of custom redis client
* Explicitly declare actionpack dependency
* Spec updates for rspec 3
### Changed
- Tested version of Ruby 2 up to 2.3.1
- Session config examples to use `redis: { url: '...' }`

## v0.7.0 (2014-04-22)
### Removed
- Ruby 1.9.3 support due to Rack 2 requirements

* Fix issue #38, we now delay writing to redis until a session exists. This is
a backwards-incompatible change, as it removes the `on_sid_collision` option.
There is now no checking for sid collisions, however that is very unlikely.
## [0.8.1] - 2016-01-25
### Added
- Support for Rails 5 and Rack 2

## v0.6.6 (2014-04-08)
### Changed
- Error support for redis-rb v3 gem

* Fix issue #37, use correct constant for `ENV_SESSION_OPTIONS_KEY` if not
passed.
## [0.8.0] - 2014-08-28
### Added
- Allow for injection of custom redis client
- Explicitly declare actionpack dependency

## v0.6.5 (2014-04-04)
### Changed
- Spec updates for rspec 3

* Fix issue #36, use setnx to get a new session id instead of get. This
prevents a very rare id collision.
## [0.7.0] - 2014-04-22
### Fixed
- Issue #38, we now delay writing to redis until a session exists. This is a
backwards-incompatible change, as it removes the `on_sid_collision` option.
There is now no checking for sid collisions, however that is very unlikely.

## v0.6.4 (2014-04-04)
## [0.6.6] - 2014-04-08
### Fixed
- Issue #37, use correct constant for `ENV_SESSION_OPTIONS_KEY` if not passed.

* Reverting `setnx` usage in v0.6.3 so we can change our sessions.
## [0.6.5] - 2014-04-04
### Fixed
- Issue #36, use setnx to get a new session id instead of get. This prevents a
very rare id collision.

## v0.6.3 (2014-04-01)
## [0.6.4] - 2014-04-04
### Removed
- `#setnx` usage in v0.6.3 so we can change our sessions

* Reverting the `#setnx` change in `0.6.2` as it behaved badly under
load, hitting yet another race condition issue and pegging the CPU.
* Setting session ID with a multi-call `#setnx` and `#expire` instead of
## [0.6.3] - 2014-04-01
### Changed
- Setting session ID with a multi-call `#setnx` and `#expire` instead of
`#setex`.

## v0.6.2 (2014-03-31)
### Removed
- `#setnx` change in v0.6.2 as it behaved badly under load, hitting yet another
race condition issue and pegging the CPU.

* Use `#setnx` instead of `#get` when checking for session ID
collisions, which is slightly more paranoid and should help avoid a
particularly nasty edge case.
## [0.6.2] - 2014-03-31
### Changed
- Use `#setnx` instead of `#get` when checking for session ID collisions, which
is slightly more paranoid and should help avoid a particularly nasty edge
case.

## v0.6.1 (2014-03-17)
## [0.6.1] - 2014-03-17
### Fixed
- Compatibility with `ActionDispatch::Request::Session::Options` when destroying
sessions.

* Fix compatibility with `ActionDispatch::Request::Session::Options`
when destroying sessions.
## [0.6.0] - 2014-03-17
### Added
- Custom serializer configuration
- Custom handling capability for session load errors

## v0.6.0 (2014-03-17)
### Changed
- Always destroying sessions that cannot be loaded

* Add custom serializer configuration
* Add custom handling capability for session load errors
* Always destroying sessions that cannot be loaded
## [0.5.0] - 2014-03-16
### Added
- Support for `on_sid_collision` handler option
- Support for `on_redis_down` handler option

## v0.5.0 (2014-03-16)

* Keep generating session IDs until one is found that doesn't collide
### Changed
- Keep generating session IDs until one is found that doesn't collide
with existing session IDs
* Add support for `on_sid_collision` handler option
* Add support for `on_redis_down` handler option
* **BACKWARD INCOMPATIBLE** Drop support for `:raise_errors` option

## v0.4.2 (2014-03-14)

* Renaming `load_session` method to not conflict with AbstractStore
### Removed
- **BACKWARD INCOMPATIBLE** Drop support for `:raise_errors` option

## v0.4.1 (yanked) (2014-03-13)
## [0.4.2] - 2014-03-14
### Changed
- Renaming `load_session` method to not conflict with AbstractStore

* Regenerate session ID when session is missing
## [0.4.1] - (2014-03-13) [YANKED]
### Changed
- Regenerate session ID when session is missing

## v0.4.0 (2014-02-19)
## [0.4.0] - 2014-02-19
### Added
- Support for `ENV_SESSION_OPTIONS_KEY` rack env option
- Support for `:raise_errors` session option (kinda like Dalli)

* Add support for `ENV_SESSION_OPTIONS_KEY` rack env option
* Add support for `:raise_errors` session option (kinda like Dalli)
* Increasing test coverage
### Changed
- Increasing test coverage

## v0.3.1 (2014-02-19)
## [0.3.1] - 2014-02-19
### Added
- `#destroy_session` method

* Add `#destroy_session` method
* Clean up remaining RuboCop offenses
* Documentation updates
### Changed
- Clean up remaining RuboCop offenses
- Documentation updates

## v0.3.0 (2014-02-13)
## [0.3.0] - 2014-02-13
### Added
- Rails 3 compatibility
- Add test coverage

* Rails 3 compatibility
* Switch from minitest to rspec
* Add test coverage
* RuboCop cleanup
### Changed
- Switch from minitest to rspec
- RuboCop cleanup

## v0.2.4 (2014-03-16)

* Keep generating session IDs until one is found that doesn't collide
## [0.2.4] - 2014-03-16
### Changed
- Keep generating session IDs until one is found that doesn't collide
with existing session IDs

## v0.2.3 (2014-03-14)

* Renaming `load_session` method to not conflict with AbstractStore

## v0.2.2 (yanked) (2014-03-13)

* Regenerate session ID when session is missing

## v0.2.1 (2013-09-17)

* Add explicit MIT license metadata in gemspec

## v0.2.0 (2013-09-13)

* Use `@redis.setex` when expiry provided, else `@redis.set`
* Gemfile, gemspec, and git updates
* Nest redis-specific options inside a `:redis` key of session options
* Add `#destroy` method
* Rescue only `Errno::ECONNREFUSED` exceptions
* Handle `nil` cookies during `#destroy`
* Add Travis integration
* Add some minimal tests to ensure backward compatibility session options

## v0.1.9 (2012-03-06)

## v0.1.8 (2010-12-09)

* Remove use of `@redis.pipelined`

## v0.1.7 (2010-12-08)

* Using latest redis gem API

## v0.1.6 (2010-04-18)

* Using pipelined format with `set` and `expire`
* Changing default port from 6370 to 6379

## v0.1.5 (2010-04-07)

## v0.1.4 (2010-03-26)

* Changed redis parameter from `:server` to `:host`

## v0.1.3 (2009-12-30)

* Documentation updates

## v0.1.2 (2009-12-30)

* Documentation updates

## v0.1.1 (2009-12-30)

* library file renamed to `redis-session-store.rb` to play nicely with
## [0.2.3] - 2014-03-14
### Changed
- Renaming `load_session` method to not conflict with AbstractStore

## [0.2.2] - 2014-03-13 [YANKED]
### Changed
- Regenerate session ID when session is missing

## [0.2.1] - 2013-09-17
### Added
- Explicit MIT license metadata in gemspec

## [0.2.0] - 2013-09-13
### Added
- Gemfile, gemspec, and git updates
- `#destroy` method
- Travis integration
- Some minimal tests to ensure backward compatibility session options

### Changed
- Nest redis-specific options inside a `:redis` key of session options
- Rescue only `Errno::ECONNREFUSED` exceptions
- Handle `nil` cookies during `#destroy`

## [0.1.9] - 2012-03-06
### Changed
- Use `@redis.setex` when expiry provided, else `@redis.set`
- gemification
- Options hash to no longer expect redis options at same level

## [0.1.8] - 2010-12-09
### Removed
- Use of `@redis.pipelined`

## 0.1.7 - 2010-12-08
### Changed
- Using latest redis gem API

## 0.1.6 - 2010-04-18
### Changed
- Using pipelined format with `set` and `expire`
- Changing default port from 6370 to 6379

## 0.1.5 - 2010-04-07

## 0.1.4 - 2010-03-26
### Changed
- Redis parameter from `:server` to `:host`

## 0.1.3 - 2009-12-30
### Changed
- Documentation updates

## 0.1.2 - 2009-12-30
### Changed
- Documentation updates

## 0.1.1 - 2009-12-30
### Changed
- library file renamed to `redis-session-store.rb` to play nicely with
rails require

## v0.1 (2009-12-30)

* first working version
## 0.1 - 2009-12-30
### Added
- first working version

[Unreleased]: https://github.com/roidrage/redis-session-store/compare/v0.9.0...HEAD
[0.9.0]: https://github.com/roidrage/redis-session-store/compare/v0.8.1...v0.9.0
[0.8.1]: https://github.com/roidrage/redis-session-store/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/roidrage/redis-session-store/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/roidrage/redis-session-store/compare/v0.6.6...v0.7.0
[0.6.6]: https://github.com/roidrage/redis-session-store/compare/v0.6.5...v0.6.6
[0.6.5]: https://github.com/roidrage/redis-session-store/compare/v0.6.4...v0.6.5
[0.6.4]: https://github.com/roidrage/redis-session-store/compare/v0.6.3...v0.6.4
[0.6.3]: https://github.com/roidrage/redis-session-store/compare/v0.6.2...v0.6.3
[0.6.2]: https://github.com/roidrage/redis-session-store/compare/v0.6.1...v0.6.2
[0.6.1]: https://github.com/roidrage/redis-session-store/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/roidrage/redis-session-store/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/roidrage/redis-session-store/compare/v0.4.2...v0.5.0
[0.4.2]: https://github.com/roidrage/redis-session-store/compare/v0.4.1...v0.4.2
[0.4.1]: https://github.com/roidrage/redis-session-store/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/roidrage/redis-session-store/compare/v0.3.1...v0.4.0
[0.3.1]: https://github.com/roidrage/redis-session-store/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/roidrage/redis-session-store/compare/v0.2.4...v0.3.0
[0.2.4]: https://github.com/roidrage/redis-session-store/compare/v0.2.3...v0.2.4
[0.2.3]: https://github.com/roidrage/redis-session-store/compare/v0.2.2...v0.2.3
[0.2.2]: https://github.com/roidrage/redis-session-store/compare/v0.2.1...v0.2.2
[0.2.1]: https://github.com/roidrage/redis-session-store/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/roidrage/redis-session-store/compare/v0.1.9...v0.2.0
[0.1.9]: https://github.com/roidrage/redis-session-store/compare/v0.1.8...v0.1.9
[0.1.8]: https://github.com/roidrage/redis-session-store/compare/v0.1.7...v0.1.8
1 change: 0 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# vim:fileencoding=utf-8
source 'https://rubygems.org'

gemspec
1 change: 0 additions & 1 deletion Rakefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# vim:fileencoding=utf-8
require 'bundler/gem_tasks'
require 'rspec/core/rake_task'
require 'rubocop/rake_task'
Expand Down
3 changes: 1 addition & 2 deletions lib/redis-session-store.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# vim:fileencoding=utf-8
require 'redis'

# Redis session storage for Rails, and for Rails only. Derived from
# the MemCacheStore code, simply dropping in Redis instead.
class RedisSessionStore < ActionDispatch::Session::AbstractStore
VERSION = '0.8.1'.freeze
VERSION = '0.9.0'.freeze
# Rails 3.1 and beyond defines the constant elsewhere
unless defined?(ENV_SESSION_OPTIONS_KEY)
if Rack.release.split('.').first.to_i > 1
Expand Down
2 changes: 0 additions & 2 deletions redis-session-store.gemspec
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# vim:fileencoding=utf-8

Gem::Specification.new do |gem|
gem.name = 'redis-session-store'
gem.authors = ['Mathias Meyer']
Expand Down
1 change: 0 additions & 1 deletion spec/redis_session_store_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# vim:fileencoding=utf-8
require 'json'

describe RedisSessionStore do
Expand Down
2 changes: 0 additions & 2 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# vim:fileencoding=utf-8

require 'simplecov'
require_relative 'support'
require 'fakeredis/rspec'
Expand Down
2 changes: 0 additions & 2 deletions spec/support.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# vim:fileencoding=utf-8

unless defined?(Rack::Session::Abstract::ENV_SESSION_OPTIONS_KEY)
module Rack
module Session
Expand Down

0 comments on commit 2ace1fa

Please sign in to comment.