UNPKG

5.43 kBMarkdownView Raw
1### v3.1.0 (2014-07-28):
2
3* Updated to use `async-listener@0.4.7` to pick up bug fixes.
4
5### v3.0.0 (2013-12-14):
6
7* Removed the notion of a "default" or "global" context per namespace. It only
8 existed to create a simpler interface for developing and testing the module,
9 and created the potential for nasty information disclosure bugs (see [issue
10 #14](https://github.com/othiym23/node-continuation-local-storage/issues/14)
11 for details). This is potentially a breaking change, if you're depending on
12 the global context, so semver says we have to bump the major version.
13* Added this changelog.
14
15### v2.6.2 (2013-12-07):
16
17* `async-listener` and `emitter-listener` dependency refresh.
18
19### v2.6.1 (2013-11-29):
20
21* `emitter-listener` has been extracted from `shimmer` into a standalone
22 module for `namespace.bindEmitter()`.
23
24### v2.6.0 (2013-11-27):
25
26* When an error is thrown in a CLS-bound continuation chain, attach the active
27 context for the namespace to which the chain is bound. This is necessary
28 because CLS and asyncListeners actually do too good a job of cleaning up
29 after errors, and so they don't escape the continuation chain. New Relic
30 needs the context so it can get the transaction active when the error
31 happened for error tracing.
32
33### v2.5.2 (2013-10-30):
34
35* `async-listener` dependency refresh for better support of node 0.8.0 - 0.8.3.
36
37### v2.5.1 (2013-10-27):
38
39* `async-listener` dependency refresh.
40
41### v2.5.0 (2013-10-27):
42
43* Relax the requirement that CLS contexts be pushed and popped from a stack,
44 instead treating them as a set. This allows context interleaving (i.e.
45 using the lower-level `namespace.enter()` and `namespace.exit()` API without
46 any strict ordering dependencies). Everything works, but this still makes me
47 a little uneasy.
48* EEs can now be bound to multiple namespaces, although this is likely to be
49 slow.
50
51### v2.4.4 (2013-10-27):
52
53* Even if you use an EE bound to a namespace outside a continuation chain, it
54 shouldn't explode.
55
56### v2.4.3 (2013-10-16):
57
58* `async-listener` dependency refresh.
59
60### v2.4.2 (2013-10-13):
61
62* More tweaks for `async-listener` error handlers (just a dependency refresh).
63
64### v2.4.1 (2013-10-12):
65
66* `async-listener` error listeners have gotten lots of tweaks. Update to newest
67 API.
68* Only exit namespace context on error if a continuation chain is active.
69
70### v2.4.0 (2013-10-11):
71
72* `async-listener` now supports error listeners. Update to newest API.
73* Namespace context should be exited on asynchronous errors.
74
75### v2.3.4 (2013-10-03):
76
77* When EEs are in the middle of emitting, make sure that calls to
78 `emitter.removeListener` are testing against non-monkeypatched versions of
79 the event handlers (necessary so certain Connect middleware functions, such
80 as `connect.limit`, run correctly).
81
82### v2.3.3 (2013-10-02):
83
84* Ensure handler rebinding gets called even in case of errors.
85* Be consistent about making sure contexts are kept in a sane state when errors
86 are thrown in EEs.
87
88### v2.3.2 (2013-10-02):
89
90* Guard `on` / `addListener` remonkeypatching in `namespace.bindEmitter()` so
91 that `shimmer` is only called to rebind if the monkeypatched versions have
92 actually been replaced.
93* Don't try to call emit if there are no listeners on a bound EE.
94* Don't use `setImmediate` in tests, because it's not available in Node 0.8.x.
95
96### v2.3.1 (2013-10-01):
97
98* Update to newest version of `async-listener`.
99* Fix typo.
100
101### v2.3.0 (2013-09-30):
102
103* EventEmitters can now be bound to CLS namespaces. Because EEs act as coupling
104 points between asynchronous domains, it's necessary for the EE binding to
105 capture the CLS context both when the listener is added, and when a matching
106 handler is firing because of a matching event being emitted.
107
108### v2.2.1 (2013-09-30):
109
110* More tweaks to conform with `asyncListener` API changes.
111* Many more test cases to ensure `asyncListener` stuff is working with Node
112 0.8.x.
113
114### v2.2.0 (2013-09-26):
115
116* Square up with latest `async-listener` / node PR #6011 changes.
117
118### v2.1.2 (2013-09-09):
119
120* Document `namespace.createContext()`.
121* Fix issue where a value was *always* being returned from `namespace.run()`,
122 even on error.
123
124### v2.1.1 (2013-09-03):
125
126* Clean up minor typo in docs.
127
128### v2.1.0 (2013-09-03):
129
130* Incorporate documentation from failed CLS PR.
131* `namespace.bind()` now also always exits the domain, even on error.
132* Namespaces can be destroyed.
133* `cls.reset()` allows tests to nuke all existing namespaces (use with care
134 obviously).
135
136### v2.0.0 (2013-09-01):
137
138* Use `async-listener` polyfill instead of `cls-glue`.
139* Incorporate tests from `cls-glue`.
140
141### v1.1.1 (2013-09-01):
142
143* Namespace exits context even on error.
144
145### v1.1.0 (2013-07-30):
146
147* Split createContext so it's part of the namespace API.
148* Tweak error message to be more informative.
149
150### v1.0.1 (2013-07-25):
151
152* Correct Tim's email address.
153
154### v1.0.0 (2013-07-25):
155
156* Each application of CLS is allocated its own "namespace", which bind data to
157 continuation chains, either using `.run()` or `.bind()` to create a new
158 nested context. These nested contexts are prototype chains that point back to
159 a "default" / "global" context, with the default context for each namespace
160 being a prototype-free "data bag" created with `Object.create(null)`.
161
162### v0.1.1 (2013-05-03):
163
164* Document progress thus far.
165
166### v0.1.0 (2013-05-03):
167
168* First attempt: basic API, docs, and tests.