celluloid 0.17.4 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +300 -81
  3. data/CONDUCT.md +13 -0
  4. data/CONTRIBUTING.md +39 -0
  5. data/README.md +54 -155
  6. data/REFACTOR.md +1 -0
  7. data/architecture.md +120 -0
  8. data/examples/basic_usage.rb +1 -1
  9. data/examples/configurations.rb +78 -0
  10. data/examples/futures.rb +1 -1
  11. data/examples/ring.rb +5 -4
  12. data/examples/simple_pmap.rb +1 -1
  13. data/examples/stack.rb +2 -2
  14. data/examples/supervisors_and_registry.rb +82 -0
  15. data/examples/timers.rb +2 -2
  16. data/lib/celluloid/actor/system.rb +13 -29
  17. data/lib/celluloid/actor.rb +27 -17
  18. data/lib/celluloid/autostart.rb +6 -1
  19. data/lib/celluloid/call/async.rb +2 -0
  20. data/lib/celluloid/call/sync.rb +10 -3
  21. data/lib/celluloid/calls.rb +13 -12
  22. data/lib/celluloid/cell.rb +5 -9
  23. data/lib/celluloid/condition.rb +3 -3
  24. data/lib/celluloid/core_ext.rb +0 -2
  25. data/lib/celluloid/debug.rb +3 -0
  26. data/lib/celluloid/exceptions.rb +2 -2
  27. data/lib/celluloid/future.rb +8 -10
  28. data/lib/celluloid/group/pool.rb +1 -3
  29. data/lib/celluloid/group/spawner.rb +2 -6
  30. data/lib/celluloid/group.rb +12 -8
  31. data/lib/celluloid/internals/call_chain.rb +15 -0
  32. data/lib/celluloid/internals/cpu_counter.rb +62 -0
  33. data/lib/celluloid/internals/handlers.rb +42 -0
  34. data/lib/celluloid/internals/links.rb +38 -0
  35. data/lib/celluloid/internals/logger.rb +104 -0
  36. data/lib/celluloid/internals/method.rb +34 -0
  37. data/lib/celluloid/internals/properties.rb +32 -0
  38. data/lib/celluloid/internals/receivers.rb +64 -0
  39. data/lib/celluloid/internals/registry.rb +102 -0
  40. data/lib/celluloid/internals/responses.rb +46 -0
  41. data/lib/celluloid/internals/signals.rb +24 -0
  42. data/lib/celluloid/internals/stack/dump.rb +12 -0
  43. data/lib/celluloid/internals/stack/states.rb +72 -0
  44. data/lib/celluloid/internals/stack/summary.rb +12 -0
  45. data/lib/celluloid/internals/stack.rb +74 -0
  46. data/lib/celluloid/internals/task_set.rb +51 -0
  47. data/lib/celluloid/internals/thread_handle.rb +52 -0
  48. data/lib/celluloid/internals/uuid.rb +40 -0
  49. data/lib/celluloid/logging/incident.rb +21 -0
  50. data/lib/celluloid/logging/incident_logger.rb +147 -0
  51. data/lib/celluloid/logging/incident_reporter.rb +49 -0
  52. data/lib/celluloid/logging/log_event.rb +20 -0
  53. data/lib/celluloid/logging/ring_buffer.rb +64 -0
  54. data/lib/celluloid/mailbox/evented.rb +13 -5
  55. data/lib/celluloid/mailbox.rb +22 -9
  56. data/lib/celluloid/notifications.rb +95 -0
  57. data/lib/celluloid/pool.rb +6 -0
  58. data/lib/celluloid/probe.rb +81 -0
  59. data/lib/celluloid/proxy/abstract.rb +9 -9
  60. data/lib/celluloid/proxy/async.rb +1 -1
  61. data/lib/celluloid/proxy/block.rb +2 -2
  62. data/lib/celluloid/proxy/cell.rb +1 -1
  63. data/lib/celluloid/proxy/future.rb +2 -4
  64. data/lib/celluloid/proxy/sync.rb +1 -3
  65. data/lib/celluloid/rspec.rb +22 -33
  66. data/lib/celluloid/supervision/configuration/injections.rb +8 -0
  67. data/lib/celluloid/supervision/configuration/instance.rb +113 -0
  68. data/lib/celluloid/supervision/configuration.rb +169 -0
  69. data/lib/celluloid/supervision/constants.rb +123 -0
  70. data/lib/celluloid/supervision/container/behavior/pool.rb +71 -0
  71. data/lib/celluloid/supervision/container/behavior/tree.rb +23 -0
  72. data/lib/celluloid/supervision/container/behavior.rb +89 -0
  73. data/lib/celluloid/supervision/container/injections.rb +8 -0
  74. data/lib/celluloid/supervision/container/instance.rb +116 -0
  75. data/lib/celluloid/supervision/container/pool.rb +210 -0
  76. data/lib/celluloid/supervision/container.rb +144 -0
  77. data/lib/celluloid/supervision/service.rb +27 -0
  78. data/lib/celluloid/supervision/supervise.rb +34 -0
  79. data/lib/celluloid/supervision/validation.rb +40 -0
  80. data/lib/celluloid/supervision/version.rb +5 -0
  81. data/lib/celluloid/supervision.rb +17 -0
  82. data/lib/celluloid/system_events.rb +11 -6
  83. data/lib/celluloid/task/fibered.rb +6 -2
  84. data/lib/celluloid/task/threaded.rb +3 -3
  85. data/lib/celluloid/task.rb +25 -12
  86. data/lib/celluloid/test.rb +5 -2
  87. data/lib/celluloid/thread.rb +0 -2
  88. data/lib/celluloid/version.rb +1 -1
  89. data/lib/celluloid.rb +74 -64
  90. data/spec/celluloid/block_spec.rb +29 -32
  91. data/spec/celluloid/calls_spec.rb +5 -15
  92. data/spec/celluloid/future_spec.rb +7 -1
  93. data/spec/celluloid/internals/cpu_counter_spec.rb +129 -0
  94. data/spec/celluloid/internals/links_spec.rb +43 -0
  95. data/spec/celluloid/internals/properties_spec.rb +40 -0
  96. data/spec/celluloid/internals/registry_spec.rb +62 -0
  97. data/spec/celluloid/internals/stack/dump_spec.rb +4 -0
  98. data/spec/celluloid/internals/stack/summary_spec.rb +4 -0
  99. data/spec/celluloid/internals/thread_handle_spec.rb +60 -0
  100. data/spec/celluloid/internals/uuid_spec.rb +9 -0
  101. data/spec/celluloid/logging/ring_buffer_spec.rb +36 -0
  102. data/spec/celluloid/mailbox/evented_spec.rb +11 -22
  103. data/spec/celluloid/misc/leak_spec.rb +3 -4
  104. data/spec/celluloid/notifications_spec.rb +140 -0
  105. data/spec/celluloid/probe_spec.rb +102 -0
  106. data/spec/celluloid/proxy_spec.rb +30 -30
  107. data/spec/celluloid/supervision/behavior_spec.rb +74 -0
  108. data/spec/celluloid/supervision/configuration_spec.rb +181 -0
  109. data/spec/celluloid/supervision/container_spec.rb +72 -0
  110. data/spec/celluloid/supervision/instance_spec.rb +13 -0
  111. data/spec/celluloid/supervision/root_spec.rb +28 -0
  112. data/spec/celluloid/supervision/supervisor_spec.rb +93 -0
  113. data/spec/celluloid/task/fibered_spec.rb +1 -3
  114. data/spec/celluloid/task/threaded_spec.rb +1 -3
  115. data/spec/shared/actor_examples.rb +58 -33
  116. data/spec/shared/group_examples.rb +2 -2
  117. data/spec/shared/mailbox_examples.rb +1 -1
  118. data/spec/shared/stack_examples.rb +87 -0
  119. data/spec/shared/task_examples.rb +2 -3
  120. data/spec/spec_helper.rb +2 -4
  121. data/spec/support/configure_rspec.rb +2 -3
  122. data/spec/support/coverage.rb +2 -4
  123. data/spec/support/crash_checking.rb +2 -2
  124. data/spec/support/examples/actor_class.rb +3 -8
  125. data/spec/support/examples/call_class.rb +2 -2
  126. data/spec/support/examples/container_class.rb +35 -0
  127. data/spec/support/examples/evented_mailbox_class.rb +1 -2
  128. data/spec/support/examples/stack_classes.rb +58 -0
  129. data/spec/support/examples/stack_methods.rb +23 -0
  130. data/spec/support/examples/subordinate_class.rb +19 -0
  131. data/spec/support/logging.rb +3 -34
  132. data/spec/support/loose_threads.rb +3 -16
  133. data/spec/support/reset_class_variables.rb +5 -1
  134. data/spec/support/stubbing.rb +1 -1
  135. metadata +91 -289
  136. data/culture/CONDUCT.md +0 -28
  137. data/culture/Gemfile +0 -9
  138. data/culture/LICENSE.txt +0 -22
  139. data/culture/README.md +0 -22
  140. data/culture/Rakefile +0 -5
  141. data/culture/SYNC.md +0 -70
  142. data/culture/celluloid-culture.gemspec +0 -18
  143. data/culture/gems/README.md +0 -39
  144. data/culture/gems/dependencies.yml +0 -85
  145. data/culture/gems/loader.rb +0 -101
  146. data/culture/rubocop/README.md +0 -38
  147. data/culture/rubocop/lint.yml +0 -8
  148. data/culture/rubocop/metrics.yml +0 -15
  149. data/culture/rubocop/perf.yml +0 -0
  150. data/culture/rubocop/rubocop.yml +0 -5
  151. data/culture/rubocop/style.yml +0 -57
  152. data/culture/spec/gems_spec.rb +0 -2
  153. data/culture/spec/spec_helper.rb +0 -0
  154. data/culture/spec/sync_spec.rb +0 -2
  155. data/culture/sync.rb +0 -56
  156. data/culture/tasks/rspec.rake +0 -5
  157. data/culture/tasks/rubocop.rake +0 -2
  158. data/lib/celluloid/actor/manager.rb +0 -7
  159. data/lib/celluloid/backported.rb +0 -2
  160. data/lib/celluloid/current.rb +0 -2
  161. data/lib/celluloid/deprecate.rb +0 -21
  162. data/lib/celluloid/fiber.rb +0 -32
  163. data/lib/celluloid/managed.rb +0 -3
  164. data/lib/celluloid/notices.rb +0 -15
  165. data/spec/deprecate/actor_system_spec.rb +0 -72
  166. data/spec/deprecate/block_spec.rb +0 -52
  167. data/spec/deprecate/calls_spec.rb +0 -39
  168. data/spec/deprecate/evented_mailbox_spec.rb +0 -34
  169. data/spec/deprecate/future_spec.rb +0 -32
  170. data/spec/deprecate/internal_pool_spec.rb +0 -4
  171. data/spec/support/env.rb +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d771f8b4e3806d69a02a04d77a5cdd5803cf45601fe7db456ae720a0f241553
4
- data.tar.gz: f1b6038c7e3d9438fea74d7665d1e562f747b13a4e0e1bb58ada9128c4d20738
3
+ metadata.gz: fede4c9c3907c29a0dc303e711077a7b3196fc2acaf3b099ee98b197076c3fdc
4
+ data.tar.gz: f8bd8ffc37cddd24000d66e56d1bafc03796e309101fa4b6f5e02ab5e11f9aac
5
5
  SHA512:
6
- metadata.gz: 51c7670a71727a603bd61d22ed354d2236757f4a8dcf071f337d9bae16f230ebc0cdf1cc37d31a475c635462875e515744993d9f159560ab175dd64ae6663010
7
- data.tar.gz: b726297f6e11cd5b5fe275e7347b4fd85d708a45838d25e5460ace7bd90bf40a83ffd022d48e1243f0a753b008450091bc90171cb8157418b4e2711d023f9a1e
6
+ metadata.gz: dc813a35e9f74a49a0f875d290e41fe6445dfd7f6778b46bd3e19b741446c590e1b05be2bc697e6d8641548165baee2494a49960fa7e3782f71b50a13cb50ee1
7
+ data.tar.gz: 9a47f043d4929f833b05187c88a487351e4f26da10038b1045497ed3c7e0fdf980e4b5fe753d7cc4ae1f2db70d0d5fe5966520e2bdff5f08a558c62d82c12fee
data/CHANGES.md CHANGED
@@ -1,12 +1,155 @@
1
- 0.17.4 (2018-12-20)
2
- -----
3
- * [#773](https://github.com/celluloid/celluloid/pull/773)
4
- Fix the errant 'Couldn't cleanly terminate all actors in 10 seconds!' message
5
- after forking. Fixes celluloid/celluloid#696.
6
- ([@digitalextremist])
7
-
8
- 0.17.3 (2016-01-18)
9
- -----
1
+ ## 0.18.0 (2020-12-05)
2
+
3
+ [0.18.0]: https://github.com/celluloid/celluloid/compare/v0.17.3...v0.18.0
4
+
5
+ * [#804](https://github.com/celluloid/celluloid/pull/804)
6
+ Remove deprecation warnings
7
+
8
+ * [#802](https://github.com/celluloid/celluloid/pull/802)
9
+ Remove lattice link itself.
10
+
11
+ * [#797](https://github.com/celluloid/celluloid/pull/797)
12
+ Update Ruby versions in CI script
13
+
14
+ * [#801](https://github.com/celluloid/celluloid/pull/801)
15
+ Associate Open Collective sponsorship option
16
+
17
+ * [#800](https://github.com/celluloid/celluloid/pull/800)
18
+ Streamline README
19
+
20
+ * [#799](https://github.com/celluloid/celluloid/pull/799)
21
+ Update links, add diagram preview.
22
+
23
+ * [#796](https://github.com/celluloid/celluloid/pull/796)
24
+ Create Class Diagram in Draw.io
25
+
26
+ * [#798](https://github.com/celluloid/celluloid/pull/798)
27
+ Pertinent Newsflash
28
+
29
+ * [#792](https://github.com/celluloid/celluloid/pull/792)
30
+ CI: 2.5.5, 2.6.2
31
+
32
+ * [#788](https://github.com/celluloid/celluloid/pull/788)
33
+ Travis: Include Ruby 2.5, 2.6
34
+
35
+ * [#787](https://github.com/celluloid/celluloid/pull/787)
36
+ Travis config: drop old configuration sudo: false
37
+
38
+ * [#786](https://github.com/celluloid/celluloid/pull/786)
39
+ Travis: use jruby-9.2.5.0
40
+
41
+ * [#783](https://github.com/celluloid/celluloid/pull/783)
42
+ v0.18.0.pre2
43
+
44
+ * [#782](https://github.com/celluloid/celluloid/pull/782)
45
+ Merge 'celluloid-supervision' back into the tree
46
+
47
+ * [#781](https://github.com/celluloid/celluloid/pull/781)
48
+ .gitmodules: No longer used
49
+
50
+ * [#780](https://github.com/celluloid/celluloid/pull/780)
51
+ README.md: Link to unmaintained issue
52
+
53
+ * [#778](https://github.com/celluloid/celluloid/pull/778)
54
+ README.md: Add "maintained: no! (as of 2016)" badge
55
+
56
+ * [#777](https://github.com/celluloid/celluloid/pull/777)
57
+ gemspec: Metadata with supported links
58
+
59
+ * [#776](https://github.com/celluloid/celluloid/pull/776)
60
+ Travis: use jruby-9.2.0.0
61
+
62
+ * [#775](https://github.com/celluloid/celluloid/pull/775)
63
+ Travis: jruby-9.1.17.0
64
+
65
+ * [#769](https://github.com/celluloid/celluloid/pull/769)
66
+ Travis: jruby-9.1.15.0
67
+
68
+ * [#768](https://github.com/celluloid/celluloid/pull/768)
69
+ Travis: use latest JRuby
70
+
71
+ * [#767](https://github.com/celluloid/celluloid/pull/767)
72
+ CHANGES: Add GitHub compare link on each heading
73
+
74
+ * [#766](https://github.com/celluloid/celluloid/pull/766)
75
+ Fix celluloid/celluloid#758
76
+
77
+ * [#765](https://github.com/celluloid/celluloid/pull/765)
78
+ Travis: jruby-9.1.13.0
79
+
80
+ * [#761](https://github.com/celluloid/celluloid/pull/761)
81
+ Travis: jruby-9.1.12.0
82
+
83
+ * [#760](https://github.com/celluloid/celluloid/pull/760)
84
+ Travis: jruby-9.1.10.0
85
+
86
+ * [#759](https://github.com/celluloid/celluloid/pull/759)
87
+ Travis: jruby-9.1.9.0
88
+
89
+ * [#757](https://github.com/celluloid/celluloid/pull/757)
90
+ parameterize error message so old and new Rubies match text
91
+
92
+ * [#756](https://github.com/celluloid/celluloid/pull/756)
93
+ Travis: latest stable rubies
94
+
95
+ * [#754](https://github.com/celluloid/celluloid/pull/754)
96
+ README: Fix badge rendering in Markdown
97
+
98
+ * [#753](https://github.com/celluloid/celluloid/pull/753)
99
+ Travis: use jruby-9.1.8.0
100
+
101
+ * [#752](https://github.com/celluloid/celluloid/pull/752)
102
+ Misspellings
103
+
104
+ * [#749](https://github.com/celluloid/celluloid/pull/749)
105
+ Return false from Celluloid.running? if Celluloid.boot hasn't been called
106
+
107
+ * [#751](https://github.com/celluloid/celluloid/pull/751)
108
+ Travis: Use JRuby 9.1.7.0
109
+
110
+ * [#740](https://github.com/celluloid/celluloid/pull/740)
111
+ Global variables: stop the bleeding
112
+
113
+ * [#739](https://github.com/celluloid/celluloid/pull/739)
114
+ Remove hacks around old MRIs, JRuby, and rbx
115
+
116
+ * [#738](https://github.com/celluloid/celluloid/pull/738)
117
+ Update to RuboCop 0.45.0 (with new rubocop.yml policy)
118
+
119
+ * [#737](https://github.com/celluloid/celluloid/pull/737)
120
+ Simplify dependencies: merge 'essentials' and 'culture' repos
121
+
122
+ * [#736](https://github.com/celluloid/celluloid/pull/736)
123
+ Remove $CELLULOID_BACKPORTED and $CELLULOID_MANAGED
124
+
125
+ * [#735](https://github.com/celluloid/celluloid/pull/735)
126
+ Require Ruby 2.2.6+
127
+
128
+ * [#729](https://github.com/celluloid/celluloid/pull/729)
129
+ Remove mysterious Fiber.yield
130
+
131
+ * [#721](https://github.com/celluloid/celluloid/pull/721)
132
+ Instruction for cloning Celluloid via github
133
+
134
+ * [#715](https://github.com/celluloid/celluloid/pull/715)
135
+ fix error response reference in Future#cancel
136
+
137
+ * [#712](https://github.com/celluloid/celluloid/pull/712)
138
+ Add RBX-3 to the build
139
+
140
+ * [#711](https://github.com/celluloid/celluloid/pull/711)
141
+ Added bundler cache
142
+
143
+ * [#709](https://github.com/celluloid/celluloid/pull/709)
144
+ Fix autostart. Fixes https://github.com/celluloid/celluloid/issues/698
145
+
146
+ * [#705](https://github.com/celluloid/celluloid/pull/705)
147
+ Adding method source code path to backtrace
148
+
149
+ ## [0.17.3] (2016-01-18)
150
+
151
+ [0.17.3]: https://github.com/celluloid/celluloid/compare/v0.17.2...v0.17.3
152
+
10
153
  * [#701](https://github.com/celluloid/celluloid/pull/701)
11
154
  Conditions in loose threads loop does not take into account the difference between
12
155
  backtraces from ruby 2.0.0 and greater than. Fixes celluloid/celluloid-io#165.
@@ -40,31 +183,41 @@
40
183
  * [#666](https://github.com/celluloid/celluloid/pull/666)
41
184
  Don't catch IOError.
42
185
 
43
- 0.17.2 (2015-09-30)
44
- -----
186
+ ## [0.17.2] (2015-09-30)
187
+
188
+ [0.17.2]: https://github.com/celluloid/celluloid/compare/v0.17.1.2...v0.17.2
189
+
45
190
  * Revamped test suite, using shared RSpec configuration layer provided by Celluloid itself.
46
191
  * Updated gem dependencies provided by Celluloid::Sync... extraneous gems removed, or marked as development dependencies.
47
192
  * Clean up deprecation notes.
48
193
 
49
- 0.17.1.2 (2015-08-21)
50
- -----
194
+ ## [0.17.1.2] (2015-08-21)
195
+
196
+ [0.17.1.2]: https://github.com/celluloid/celluloid/compare/v0.17.1.1...v0.17.1.2
197
+
51
198
  * Fixes to posted markdown content.
52
199
  * Pull in new gem dependencies.
53
200
 
54
- 0.17.1.1 (2015-08-07)
55
- -----
201
+ ## [0.17.1.1] (2015-08-07)
202
+
203
+ [0.17.1.1]: https://github.com/celluloid/celluloid/compare/v0.17.1...v0.17.1.1
204
+
56
205
  * Revert "no task to suspend" code from #232.
57
206
 
58
- 0.17.1 (2015-08-06)
59
- -----
207
+ ## [0.17.1] (2015-08-06)
208
+
209
+ [0.17.1]: https://github.com/celluloid/celluloid/compare/v0.17.0...v0.17.1
210
+
60
211
  * `Celluloid::ActorSystem` moved to `Celluloid::Actor::System`, and from `celluloid/actor_system.rb` to `celluloid/actor/system.rb`
61
212
  * Added extensible API for defining new SystemEvents, and having them handled... without everyone changing `Actor#handle_system_event`.
62
213
  * Deprecated Task::TerminatedError & Task::TimeoutError... Consolidated in exceptions.rb, inherited from Exceptions vs. StandardError.
63
214
  * General round-up of all "errors" emitted throughout Celluloid, to either be derived from `Celluloid::Error` or `Celluloid::Interruption`.
64
215
  * Added ability to pass a block to `Condition#wait` which runs a `{ |value| ... }` type block if present, once the value is obtained by waiting.
65
216
 
66
- 0.17.0 (2015-07-04)
67
- -----
217
+ ## [0.17.0] (2015-07-04)
218
+
219
+ [0.17.0]: https://github.com/celluloid/celluloid/compare/v0.16.0...v0.17.0
220
+
68
221
  * Fix $CELLULOID_TEST warnings
69
222
  * Massive overhaul of test suite, end-to-end.
70
223
  * Make "Terminating task" log messages debug-level events
@@ -94,8 +247,10 @@
94
247
  * Implement `Group::Manager` as base for future `Group::Unlocker` and other such systems traversing `ActorSystem#group` regularly.
95
248
  * Reduce number of supervisors instantiated by `ActorSystem` by consolidating them down to `Service::Root` container instances.
96
249
 
97
- 0.16.0 (2014-09-04)
98
- -----
250
+ ## [0.16.0] (2014-09-04)
251
+
252
+ [0.16.0]: https://github.com/celluloid/celluloid/compare/v0.15.2...v0.16.0
253
+
99
254
  * Factor apart Celluloid::Cell (concurrent objects) from Celluloid::Actor
100
255
  * Introduce Celluloid::ActorSystem as an abstraction around the backend
101
256
  actor implementation (idea borrowed from Akka)
@@ -113,16 +268,22 @@
113
268
  * Better thread names on JRuby for easier debugging
114
269
  * Thread safety fixes to internal thread pool
115
270
 
116
- 0.15.2 (2013-10-06)
117
- -----
271
+ ## [0.15.2] (2013-10-06)
272
+
273
+ [0.15.2]: https://github.com/celluloid/celluloid/compare/v0.15.1...v0.15.2
274
+
118
275
  * require 'celluloid/test' for at_exit-free testing
119
276
 
120
- 0.15.1 (2013-09-06)
121
- -----
277
+ ## [0.15.1] (2013-09-06)
278
+
279
+ [0.15.1]: https://github.com/celluloid/celluloid/compare/v0.15.0...v0.15.1
280
+
122
281
  * Only raise on nested tasks if $CELLULOID_DEBUG is set
123
282
 
124
- 0.15.0 (2013-09-04)
125
- -----
283
+ ## [0.15.0] (2013-09-04)
284
+
285
+ [0.15.0]: https://github.com/celluloid/celluloid/compare/v0.14.0...v0.15.0
286
+
126
287
  * Remove legacy support for "bang"-method based async invocation
127
288
  * Generic timeout support with Celluloid#timeout
128
289
  * Implement recursion detection for #inspect, avoiding infinite loop bugs
@@ -137,8 +298,10 @@
137
298
  * Reimplement signal system on top of Conditions
138
299
  * Add metadata like the current method to Celluloid::StackDumps
139
300
 
140
- 0.14.0 (2013-05-07)
141
- -----
301
+ ## [0.14.0] (2013-05-07)
302
+
303
+ [0.14.0]: https://github.com/celluloid/celluloid/compare/v0.13.0...v0.14.0
304
+
142
305
  * Use a Thread-subclass for Celluloid
143
306
  * Implement actor-local variables
144
307
  * Add helper methods to the class
@@ -152,8 +315,10 @@
152
315
  * Execute blocks on the sender by default
153
316
  * Fix CPU counter on windows
154
317
 
155
- 0.13.0
156
- -----
318
+ ## [0.13.0]
319
+
320
+ [0.13.0]: https://github.com/celluloid/celluloid/compare/v0.12.4...v0.13.0
321
+
157
322
  * API change: Require Celluloid with: require 'celluloid/autostart' to
158
323
  automatically start support actors and configure at_exit handler which
159
324
  automatically terminates all actors.
@@ -167,8 +332,10 @@
167
332
  * Celluloid#call_chain_id provides UUIDs for calls across actors
168
333
  * Give all thread locals a :celluloid_* prefix
169
334
 
170
- 0.12.4
171
- -----
335
+ ## [0.12.4]
336
+
337
+ [0.12.4]: https://github.com/celluloid/celluloid/compare/v0.12.3...v0.12.4
338
+
172
339
  * Bugfix: Clear dead/crashed actors out of links
173
340
  * Bugfix: Exclusive mode was broken
174
341
  * Bugfix: Celluloid::SupervisionGroup#run was broken
@@ -178,17 +345,24 @@
178
345
  * Use #public_send to dispatch Celluloid methods
179
346
  * #idle_size and #busy_size for Celluloid::PoolManager
180
347
 
181
- 0.12.3
182
- -----
348
+ ## [0.12.3]
349
+
350
+ [0.12.3]: https://github.com/celluloid/celluloid/compare/v0.12.2...v0.12.3
351
+
352
+
183
353
  * Bugfix: Ensure exclusive mode works correctly for per-method case
184
354
  * Bugfix: Exit handlers were not being inherited correctly
185
355
 
186
- 0.12.2
187
- -----
356
+ ## [0.12.2]
357
+
358
+ [0.12.2]: https://github.com/celluloid/celluloid/compare/v0.12.1...v0.12.2
359
+
188
360
  * Disable IncidentReporter by default
189
361
 
190
- 0.12.1
191
- -----
362
+ ## [0.12.1]
363
+
364
+ [0.12.1]: https://github.com/celluloid/celluloid/compare/v0.12.0...v0.12.1
365
+
192
366
  * Fix bug in unsetting of exclusive mode
193
367
  * New incident report system for providing better debugging reports
194
368
  * Revert BasicObject proxies for now... they are causing problems
@@ -198,8 +372,10 @@
198
372
  * Remove Celluloid#alive? as it cannot be called in any manner that will ever
199
373
  return anything but true, rendering it useless
200
374
 
201
- 0.12.0
202
- -----
375
+ ## [0.12.0]
376
+
377
+ [0.12.0]: https://github.com/celluloid/celluloid/compare/v0.11.1...v0.12.0
378
+
203
379
  * Alternative async syntax: actor.async.method in lieu of actor.method!
204
380
  Original syntax still available but will be removed in Celluloid 1.0
205
381
  * Alternative future syntax: actor.future.method in lieu of future(:method)
@@ -222,8 +398,10 @@
222
398
  defined by use_mailbox. This is now fixed.
223
399
  * `exclusive` class method without arguments makes the whole actor exclusive
224
400
 
225
- 0.11.1
226
- -----
401
+ ## [0.11.1]
402
+
403
+ [0.11.1]: https://github.com/celluloid/celluloid/compare/v0.11.0...v0.11.1
404
+
227
405
  * 'exclusive' class method marks methods as always exclusive and runs them
228
406
  outside of a Fiber (useful if you need more stack than Fibers provide)
229
407
  * Celluloid::PoolManager returns its own class when #class is called, instead
@@ -232,8 +410,10 @@
232
410
  * Celluloid::Timers extracted into the timers gem, which Celluloid now
233
411
  uses for its own timers
234
412
 
235
- 0.11.0
236
- -----
413
+ ## [0.11.0]
414
+
415
+ [0.11.0]: https://github.com/celluloid/celluloid/compare/v0.10.0...v0.11.0
416
+
237
417
  * Celluloid::Application constant permanently removed
238
418
  * Celluloid::Pool removed in favor of Celluloid.pool
239
419
  * Celluloid::Group renamed to Celluloid::SupervisionGroup, old name is
@@ -247,22 +427,28 @@
247
427
  * abort can now accept a string instead of an exception object and will raise
248
428
  RuntimeError in the caller's context
249
429
 
250
- 0.10.0
251
- -----
430
+ ## [0.10.0]
431
+
432
+ [0.10.0]: https://github.com/celluloid/celluloid/compare/v0.9.1...v0.10.0
433
+
252
434
  * Celluloid::Actor.current is now the de facto way to obtain the current actor
253
435
  * #terminate now uses system messages, making termination take priority over
254
436
  other pending methods
255
437
  * #terminate! provides asynchronous termination
256
438
 
257
- 0.9.1
258
- -----
439
+ ## [0.9.1]
440
+
441
+ [0.9.1]: https://github.com/celluloid/celluloid/compare/v0.9.0...v0.9.1
442
+
259
443
  * Recurring timers with Celluloid#every(n) { ... }
260
444
  * Obtain UUIDs with Celluloid.uuid
261
445
  * Obtain the number of CPU cores available with Celluloid.cores
262
446
  * Celluloid::Pool defaults to one actor per CPU core max by default
263
447
 
264
- 0.9.0
265
- -----
448
+ ## [0.9.0]
449
+
450
+ [0.9.0]: https://github.com/celluloid/celluloid/compare/v0.8.0...v0.9.0
451
+
266
452
  * Celluloid::Pool supervises pools of actors
267
453
  * Graceful shutdown which calls #terminate on all actors
268
454
  * Celluloid::Actor.all returns all running actors
@@ -271,8 +457,10 @@
271
457
  * Celluloid.exception_handler { |ex| ... } defines a callback for notifying
272
458
  exceptions (for use with Airbrake, exception_notifier, etc.)
273
459
 
274
- 0.8.0
275
- -----
460
+ ## [0.8.0]
461
+
462
+ [0.8.0]: https://github.com/celluloid/celluloid/compare/v0.7.2...v0.8.0
463
+
276
464
  * Celluloid::Application is now Celluloid::Group
277
465
  * Futures no longer use a thread unless created with a block
278
466
  * No more future thread-leaks! Future threads auto-terminate now
@@ -283,20 +471,26 @@
283
471
  * Celluloid::FSMs are no longer actors themselves
284
472
  * Benchmarks using benchmark_suite
285
473
 
286
- 0.7.2
287
- -----
474
+ ## [0.7.2]
475
+
476
+ [0.7.2]: https://github.com/celluloid/celluloid/compare/v0.7.1...v0.7.2
477
+
288
478
  * Workaround fiber problems on JRuby 1.6.5.1 in addition to 1.6.5
289
479
  * Fix class displayed when inspecting dead actors
290
480
 
291
- 0.7.1
292
- -----
481
+ ## [0.7.1]
482
+
483
+ [0.7.1]: https://github.com/celluloid/celluloid/compare/v0.7.0...v0.7.1
484
+
293
485
  * More examples!
294
486
  * Cancel all pending tasks when actors crash
295
487
  * Log all errors that occur during signaling failures
296
488
  * Work around thread-local issues on rbx (see 52325ecd)
297
489
 
298
- 0.7.0
299
- -----
490
+ ## [0.7.0]
491
+
492
+ [0.7.0]: https://github.com/celluloid/celluloid/compare/v0.6.2...v0.7.0
493
+
300
494
  * Celluloid::Task abstraction replaces Celluloid::Fiber
301
495
  * Celluloid#tasks API to introspect on running tasks
302
496
  * Move Celluloid::IO into its own gem, celluloid-io
@@ -310,22 +504,28 @@
310
504
  * Celluloid.receive and Celluloid#receive now accept an optional timeout
311
505
  * Celluloid::Mailbox#receive now accepts an optional timeout
312
506
 
313
- 0.6.2
314
- -----
507
+ ## [0.6.2]
508
+
509
+ [0.6.2]: https://github.com/celluloid/celluloid/compare/v0.6.1...v0.6.2
510
+
315
511
  * List all registered actors with Celluloid::Actor.registered
316
512
  * All logging now handled through Celluloid::Logger
317
513
  * Rescue DeadActorError in Celluloid::ActorProxy#inspect
318
514
 
319
- 0.6.1
320
- -----
515
+ ## [0.6.1]
516
+
517
+ [0.6.1]: https://github.com/celluloid/celluloid/compare/v0.6.0...v0.6.1
518
+
321
519
  * Celluloid#links obtains Celluloid::Links for a given actor
322
520
  * The #class method is now proxied to actors
323
521
  * Celluloid::Fiber replaces the Celluloid.fiber and Celluloid.resume_fiber API
324
522
  * Use Thread.mailbox instead of Thread.current.mailbox to obtain the mailbox
325
523
  for the current thread
326
524
 
327
- 0.6.0
328
- -----
525
+ ## [0.6.0]
526
+
527
+ [0.6.0]: https://github.com/celluloid/celluloid/compare/v0.5.0...v0.6.0
528
+
329
529
  * Celluloid::Application classes for describing the structure of applications
330
530
  built with Celluloid
331
531
  * Methods of actors can now participate in the actor protocol directly via
@@ -338,8 +538,10 @@
338
538
  * Add Celluloid.fiber and Celluloid.resume_fiber to allow extension APIs to
339
539
  participate in the Celluloid fiber protocol
340
540
 
341
- 0.5.0
342
- -----
541
+ ## [0.5.0]
542
+
543
+ [0.5.0]: https://github.com/celluloid/celluloid/compare/v0.4.0...v0.5.0
544
+
343
545
  * "include Celluloid::Actor" no longer supported. Use "include Celluloid"
344
546
  * New Celluloid::IO module for actors that multiplex IO operations
345
547
  * Major overhaul of Celluloid::Actor internals (see 25e22cc1)
@@ -354,8 +556,21 @@
354
556
  * Magically skip ahead a few version numbers to impart the magnitude of this
355
557
  release. It's my versioning scheme and I can do what I wanna.
356
558
 
357
- 0.2.2
358
- -----
559
+ ## [0.4.0]
560
+
561
+ [0.4.0]: https://github.com/celluloid/celluloid/compare/v0.3.0...v0.4.0
562
+
563
+ * This version was mysteriously lost to the sands of time
564
+
565
+ ## [0.3.0]
566
+
567
+ [0.3.0]: https://github.com/celluloid/celluloid/compare/v0.2.2...v0.3.0
568
+
569
+ * This version was also mysteriously lost to the sands of time
570
+
571
+ ## [0.2.2]
572
+
573
+ [0.2.2]: https://github.com/celluloid/celluloid/compare/v0.2.1...v0.2.2
359
574
 
360
575
  * AbortErrors now reraise in caller scope and get a caller-focused backtrace
361
576
  * Log failed async calls instead of just letting them fail silently
@@ -363,14 +578,15 @@
363
578
  * Actors can now make async calls to themselves
364
579
  * Resolve crashes that occur when sending responses to exited/dead callers
365
580
 
366
- 0.2.1
367
- -----
581
+ ## [0.2.1]
582
+
583
+ [0.2.1]: https://github.com/celluloid/celluloid/compare/v0.2.0...v0.2.1
368
584
 
369
585
  * Hack around a bug of an indeterminate cause (2baba3d2)
370
- * COLON!#@!
371
586
 
372
- 0.2.0
373
- -----
587
+ ## [0.2.0]
588
+
589
+ [0.2.0]: https://github.com/celluloid/celluloid/compare/v0.1.0...v0.2.0
374
590
 
375
591
  * Support for future method calls with MyActor#future
376
592
  * Initial signaling support via MyActor#signal and MyActor#wait
@@ -379,8 +595,10 @@
379
595
  * Add an underscore prefix to all of Celluloid's instance variables so they don't
380
596
  clash with user-defined ones.
381
597
 
382
- 0.1.0
383
- -----
598
+ ## [0.1.0]
599
+
600
+ [0.1.0]: https://github.com/celluloid/celluloid/compare/v0.0.3...v0.1.0
601
+
384
602
  * Fiber-based reentrant actors. Requires Ruby 1.9
385
603
  * MyActor.new (where MyActor includes Celluloid::Actor) is now identical to .spawn
386
604
  * Terminate actors with MyActor#terminate
@@ -389,14 +607,15 @@
389
607
  * Synchronization now based on ConditionVariables instead of Celluloid::Waker
390
608
  * Determine if you're in actor scope with Celluloid.actor?
391
609
 
392
- 0.0.3
393
- -----
610
+ ## [0.0.3]
611
+
612
+ [0.0.3]: https://github.com/celluloid/celluloid/compare/v0.0.1...v0.0.3
613
+
394
614
  * Remove self-referential dependency in gemspec
395
615
 
396
- 0.0.1
397
- -----
616
+ ## 0.0.1
617
+
398
618
  * Initial release
399
619
 
400
- [@digitalextremist]: https://github.com/digitalextremist
401
620
  [@ioquatix]: https://github.com/ioquatix
402
621
  [@TiagoCardoso1983]: https://github.com/TiagoCardoso1983
data/CONDUCT.md ADDED
@@ -0,0 +1,13 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
4
+
5
+ We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion.
6
+
7
+ Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
8
+
9
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
10
+
11
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
12
+
13
+ This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,39 @@
1
+ # Contribution Guidelines
2
+
3
+ If you are seeking support, or for discussions about Celluloid, you can use [the mailing list](http://groups.google.com/group/celluloid-ruby) or the IRC channel, #celluloid on freenode.
4
+
5
+ If you encounter an issue with Celluloid itself, you should go through the following checklist:
6
+
7
+ * Is this a known bug or are you falling into a common trap? Check the [Gotchas wiki page](https://github.com/celluloid/celluloid/wiki/Gotchas).
8
+ * Is there already an issue filed which looks like your issue? Check the [issue tracker](https://github.com/celluloid/celluloid/issues).
9
+ * Is the problem present in the latest released version of Celluloid? Upgrade and check!
10
+ * Is the problem present on the master branch of Celluloid? [Run pre-release](#running-pre-release-celluloid) from source control and check!
11
+
12
+ If you don't get anywhere with this checklist, please feel free to [file a bug report](#filing-a-bug-report).
13
+
14
+ ## Running pre-release Celluloid
15
+
16
+ If you encounter a bug, it's entirely possible that it has already been fixed but not yet included in a released version. You can establish this by trying to run your application with a pre-release version of Celluloid direct from source control. You can do this by modifying your application's Gemfile as follows:
17
+
18
+ ```ruby
19
+ gem 'celluloid', github: 'celluloid', submodules: true
20
+ ```
21
+
22
+ If it is suggested to you that you try a different branch, add `branch: 'somebranch'`.
23
+
24
+ If the problem is resolved, feel free to voice your desire for a new release of Celluloid on IRC (`irc.freenode.net/#celluloid`).
25
+
26
+ If it persists, you should consider [filing a bug report](#filing-a-bug-report).
27
+
28
+ ## Filing a bug report
29
+
30
+ * Bug reports should be filed on the [GitHub issue tracker](https://github.com/celluloid/celluloid/issues). Bug reports should contain the following things:
31
+ * A sensible subject that helps quickly identify the issue.
32
+ * Full steps to reproduce the issue, including minimal reproduction code. A minimal reproduction means only what is necessary to display the problem and nothing more. This is perhaps the most important thing, don't skip it!
33
+ * Output from a reproduction.
34
+ * Full references for version numbers (of Celluloid, dependencies, Ruby, Operating System, etc). One easy way to do this is to post your Gemfile.lock, though you will still need to tell us what version of Ruby is in use.
35
+ * See: [Triage Process](https://github.com/celluloid/celluloid/wiki/Triage-Process)
36
+ * Some more guidelines on filing good bug reports:
37
+ * http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
38
+ * http://itscommonsensestupid.blogspot.com/2008/07/tips-to-write-good-bug-report.html
39
+ * http://timheuer.com/blog/archive/2011/10/12/anatomy-of-a-good-bug-report.aspx