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.
|