Split up authenticate and yesod-auth?

Hi all, When I started writing the authenticate package, I was the sole author of it, and I understood (to some degree) every protocol I added support for. If there was a bug report, feature request, or anything else, I had a fair idea of either how to solve it or if making the requested change would break something else. Fortunately, many people have contributed to the authenticate (and yesod-auth) packages, and the above paragraph is no longer true. I don't know what's going on with OAuth or Kerberos besides a most basic understanding, and I'm not in a position to maintain those myself. Additionally, some people are discussing adding more backends. While I want to make it clear that I appreciate the contributions, this situation has a few downsides: * When some kind of request or bug report comes to me, I have to route it to the right person, which just adds an extra step to the process. * Same thing when people ask me for assistance. * In theory, when upgrading, I could break code without even knowing it. (I don't think that's actually happened though). * The packages are both becoming rather large. On the flip side, it's very nice to have all the authentication modules centralized as they currently are. So the question is: how should future development continue? I see three choices: 1. Continue as-is. New modules can be added to these two packages, and I'll just route inquiries to the appropriate person. One minor change I'll insist on here is that authors specify in the module docs who the maintainer is, and I'll add them as contributors on Github. 2. No new modules will be accepted into these packages, they'll need to go into their own packages. 3. Even existing modules for which I'm not really the maintainer will be split off into their own packages. For options (2) and (3), we can update the docs for authenticate and yesod-auth to point to external packages that provide additional auth backends. Michael

On Thu, Jan 19, 2012 at 3:53 AM, Michael Snoyman
So the question is: how should future development continue? I see three choices:
1. Continue as-is. New modules can be added to these two packages, and I'll just route inquiries to the appropriate person. One minor change I'll insist on here is that authors specify in the module docs who the maintainer is, and I'll add them as contributors on Github. 2. No new modules will be accepted into these packages, they'll need to go into their own packages. 3. Even existing modules for which I'm not really the maintainer will be split off into their own packages.
For options (2) and (3), we can update the docs for authenticate and yesod-auth to point to external packages that provide additional auth backends.
I don't have any strong opinions, but I'd say (3). Note that yesod-auth could become a "meta"-package like the yesod package itself. Cheers, -- Felipe.

On Thu, Jan 19, 2012 at 12:34 PM, Felipe Almeida Lessa
On Thu, Jan 19, 2012 at 3:53 AM, Michael Snoyman
wrote: So the question is: how should future development continue? I see three choices:
1. Continue as-is. New modules can be added to these two packages, and I'll just route inquiries to the appropriate person. One minor change I'll insist on here is that authors specify in the module docs who the maintainer is, and I'll add them as contributors on Github. 2. No new modules will be accepted into these packages, they'll need to go into their own packages. 3. Even existing modules for which I'm not really the maintainer will be split off into their own packages.
For options (2) and (3), we can update the docs for authenticate and yesod-auth to point to external packages that provide additional auth backends.
I don't have any strong opinions, but I'd say (3). Note that yesod-auth could become a "meta"-package like the yesod package itself.
Cheers,
-- Felipe.
Just to clarify on choice (3). For the backends that I'm still actively maintaining (OpenID, BrowserID, etc), I don't really want to split them up into separate packages, since: 1. They all have the same basic dependencies (mostly http-conduit) 2. It's a pain for me to have to maintain multiple packages 3. I've gotten requests from the distribution maintainers (Debian in particular) to stop exploding the dependency list for yesod. So even under (3), I would want to keep most of the modules that are currently in authenticate and yesod-auth exactly where they are. I'm really talking about moving out the following modules: * Kerberos * OAuth * Possibly rpxnow: I don't use it actively anymore, but it hasn't really changed at all * Possibly Facebook, since there's a shiny new package[1] that might be a better home to its functionality ;) * Possibly HashDB (yesod-auth only) Michael [1] http://hackage.haskell.org/package/fb
participants (2)
-
Felipe Almeida Lessa
-
Michael Snoyman