-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to gopkg.in/stack.v1 when available. #34
Comments
I imagine the API compatibility guarantees apply to all subpackages. As soon as it's ready, we can go to v3, even if that's the only API change. The nice part about having versions is that we can do it often and not be worried about breaking clients. There's no reason to 'batch' API changes up all together. |
Agreed. As for gopkg.in/stack, it now builds and passes all of its tests on all versions of Go back to 1.0. I'm pretty happy with the API with the exception of CallStack.Format. That one still bugs me a bit. |
gopkg.in/stack.v1 is now available. I have pushed branch newstack that uses it. This change breaks the v2 API in four ways.
Using the new stack package incurs some performance trade offs, but keep in mind that the old stack package takes some short cuts that we have since learned are not valid in all cases. The new stack package aims for correctness. As a result the minimal overhead of creating a log record has gone up. On the other hand the Format method of the new stack package is faster, so we gain some of the time back, but only when using one of the stack based handlers. The base overhead is paid by all users.
|
Closed by #79. |
The log15/stack package is moving to it's own repository as gopkg.in/stack.v?. This issue is here to remind us to use it when ready.
Also, I'm not sure how to interpret the API compatibility rules for gopkg.in as they relate to nested packages. Clearly log15 does not expose any types from log15/stack, so the main package is free to change its dependency without impacting clients. But what do we do with log15/stack then? I suppose we must keep it available at gopkg.in/inconshreveable/log15.v2/stack in case anyone has used it as a stand alone package. A v3 of log15 could then drop the stack folder going forward.
Thoughts?
The text was updated successfully, but these errors were encountered: