alexedwards / scs

HTTP Session Management for Go
MIT License
2.13k stars 166 forks source link

Add go.mod file for go modules support #56

Closed spekary closed 5 years ago

jpfluger commented 5 years ago

Until v2 comes out, I created a modules fork. It's not merge-able for a number of reasons. Here are steps to reproduce. Note that I am testing redis only and not the other stores.

go mod init github.com/HANDLE/scs
go mod edit --require github.com/gomodule/redigo@master
go mod tidy

Currently gomodule/redigo does not support go modules. Go modules by default grab the latest tag. In the case of gomodule/redigo, v2.0.0 points to a commit from March 14, 2018 and v1.7.0 is from Dec 13, 2018. The require statement I used pulls the latest commit in the master branch which is March 22, 2019. The older tagged commits also had references to garyburd/redigo (last commit of April 4, 2018) so the go.sum file references both gomodule/redigo and garyburd/redigo repositories as dependencies! Using the master repo solves that issue but increases the burden on the maintainer/community to update the semantic versioning dependencies on session stores within go.sum.

alexedwards commented 5 years ago

Thanks for creating the fork.

I'm actively working on v2.0.0 at the moment, and think it will be ready for release sometime next week. As part of this, I'm planning to keep the 'dependency-free' session stores (i.e all the SQL DB stores) as part of the main scs repository, but migrate the others (like redisstore and memcachedstore) to independent repositories. This should help keep everyone's go.sum files and dependency graphs nice and clean in a module-enabled world.

alexedwards commented 5 years ago

This is now addressed in the latest release (v2.0.0). In the end, I opted to make scs a multi-module repository, instead of breaking out the sessions stores into separate repositories. I've been testing this for a few days, and everything seems to be functioning as it should.