roby 0.7.3 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. data/History.txt +7 -5
  2. data/Manifest.txt +91 -16
  3. data/README.txt +24 -24
  4. data/Rakefile +92 -64
  5. data/app/config/app.yml +42 -43
  6. data/app/config/init.rb +26 -0
  7. data/benchmark/alloc_misc.rb +123 -0
  8. data/benchmark/discovery_latency.rb +67 -0
  9. data/benchmark/garbage_collection.rb +48 -0
  10. data/benchmark/genom.rb +31 -0
  11. data/benchmark/transactions.rb +62 -0
  12. data/bin/roby +1 -1
  13. data/bin/roby-log +16 -6
  14. data/doc/guide/.gitignore +2 -0
  15. data/doc/guide/config.yaml +34 -0
  16. data/doc/guide/ext/init.rb +14 -0
  17. data/doc/guide/ext/previous_next.rb +40 -0
  18. data/doc/guide/ext/rdoc_links.rb +33 -0
  19. data/doc/guide/index.rdoc +16 -0
  20. data/doc/guide/overview.rdoc +62 -0
  21. data/doc/guide/plan_modifications.rdoc +67 -0
  22. data/doc/guide/src/abstraction/achieve_with.page +8 -0
  23. data/doc/guide/src/abstraction/forwarding.page +8 -0
  24. data/doc/guide/src/abstraction/hierarchy.page +19 -0
  25. data/doc/guide/src/abstraction/index.page +28 -0
  26. data/doc/guide/src/abstraction/task_models.page +13 -0
  27. data/doc/guide/src/basics.template +6 -0
  28. data/doc/guide/src/basics/app.page +139 -0
  29. data/doc/guide/src/basics/code_examples.page +33 -0
  30. data/doc/guide/src/basics/dry.page +69 -0
  31. data/doc/guide/src/basics/errors.page +443 -0
  32. data/doc/guide/src/basics/events.page +179 -0
  33. data/doc/guide/src/basics/hierarchy.page +275 -0
  34. data/doc/guide/src/basics/index.page +11 -0
  35. data/doc/guide/src/basics/log_replay/goForward_1.png +0 -0
  36. data/doc/guide/src/basics/log_replay/goForward_2.png +0 -0
  37. data/doc/guide/src/basics/log_replay/goForward_3.png +0 -0
  38. data/doc/guide/src/basics/log_replay/goForward_4.png +0 -0
  39. data/doc/guide/src/basics/log_replay/goForward_5.png +0 -0
  40. data/doc/guide/src/basics/log_replay/hierarchy_error_1.png +0 -0
  41. data/doc/guide/src/basics/log_replay/hierarchy_error_2.png +0 -0
  42. data/doc/guide/src/basics/log_replay/hierarchy_error_3.png +0 -0
  43. data/doc/guide/src/basics/log_replay/plan_repair_1.png +0 -0
  44. data/doc/guide/src/basics/log_replay/plan_repair_2.png +0 -0
  45. data/doc/guide/src/basics/log_replay/plan_repair_3.png +0 -0
  46. data/doc/guide/src/basics/log_replay/plan_repair_4.png +0 -0
  47. data/doc/guide/src/basics/log_replay/roby_log_main_window.png +0 -0
  48. data/doc/guide/src/basics/log_replay/roby_log_relation_window.png +0 -0
  49. data/doc/guide/src/basics/log_replay/roby_replay_event_representation.png +0 -0
  50. data/doc/guide/src/basics/plan_objects.page +71 -0
  51. data/doc/guide/src/basics/relations_display.page +203 -0
  52. data/doc/guide/src/basics/roby_cycle_overview.png +0 -0
  53. data/doc/guide/src/basics/shell.page +102 -0
  54. data/doc/guide/src/basics/summary.page +32 -0
  55. data/doc/guide/src/basics/tasks.page +357 -0
  56. data/doc/guide/src/basics_shell_header.txt +16 -0
  57. data/doc/guide/src/cycle/cycle-overview.png +0 -0
  58. data/doc/guide/src/cycle/cycle-overview.svg +208 -0
  59. data/doc/guide/src/cycle/error_handling.page +168 -0
  60. data/doc/guide/src/cycle/error_instantaneous_repair.png +0 -0
  61. data/doc/guide/src/cycle/error_instantaneous_repair.svg +1224 -0
  62. data/doc/guide/src/cycle/garbage_collection.page +10 -0
  63. data/doc/guide/src/cycle/index.page +23 -0
  64. data/doc/guide/src/cycle/propagation.page +154 -0
  65. data/doc/guide/src/cycle/propagation_diamond.png +0 -0
  66. data/doc/guide/src/cycle/propagation_diamond.svg +1279 -0
  67. data/doc/guide/src/default.css +319 -0
  68. data/doc/guide/src/default.template +74 -0
  69. data/doc/guide/src/htmldoc.metainfo +20 -0
  70. data/doc/guide/src/htmldoc.virtual +18 -0
  71. data/doc/guide/src/images/bodybg.png +0 -0
  72. data/doc/guide/src/images/contbg.png +0 -0
  73. data/doc/guide/src/images/footerbg.png +0 -0
  74. data/doc/guide/src/images/gradient1.png +0 -0
  75. data/doc/guide/src/images/gradient2.png +0 -0
  76. data/doc/guide/src/index.page +7 -0
  77. data/doc/guide/src/introduction/index.page +29 -0
  78. data/doc/guide/src/introduction/install.page +133 -0
  79. data/doc/{papers.rdoc → guide/src/introduction/publications.page} +5 -2
  80. data/doc/{videos.rdoc → guide/src/introduction/videos.page} +4 -2
  81. data/doc/guide/src/plugins/fault_tolerance.page +44 -0
  82. data/doc/guide/src/plugins/index.page +11 -0
  83. data/doc/guide/src/plugins/subsystems.page +45 -0
  84. data/doc/guide/src/relations/dependency.page +89 -0
  85. data/doc/guide/src/relations/index.page +12 -0
  86. data/doc/misc/update_github +24 -0
  87. data/doc/tutorials/02-GoForward.rdoc +3 -3
  88. data/ext/graph/graph.cc +46 -0
  89. data/lib/roby.rb +57 -22
  90. data/lib/roby/app.rb +132 -112
  91. data/lib/roby/app/plugins/rake.rb +21 -0
  92. data/lib/roby/app/rake.rb +0 -7
  93. data/lib/roby/app/run.rb +1 -1
  94. data/lib/roby/app/scripts/distributed.rb +1 -2
  95. data/lib/roby/app/scripts/generate/bookmarks.rb +1 -1
  96. data/lib/roby/app/scripts/results.rb +2 -1
  97. data/lib/roby/app/scripts/run.rb +6 -2
  98. data/lib/roby/app/scripts/shell.rb +11 -11
  99. data/lib/roby/config.rb +1 -1
  100. data/lib/roby/decision_control.rb +62 -3
  101. data/lib/roby/distributed.rb +4 -0
  102. data/lib/roby/distributed/base.rb +8 -0
  103. data/lib/roby/distributed/communication.rb +12 -8
  104. data/lib/roby/distributed/connection_space.rb +61 -44
  105. data/lib/roby/distributed/distributed_object.rb +1 -1
  106. data/lib/roby/distributed/notifications.rb +22 -30
  107. data/lib/roby/distributed/peer.rb +13 -8
  108. data/lib/roby/distributed/proxy.rb +5 -5
  109. data/lib/roby/distributed/subscription.rb +4 -4
  110. data/lib/roby/distributed/transaction.rb +3 -3
  111. data/lib/roby/event.rb +176 -110
  112. data/lib/roby/exceptions.rb +12 -4
  113. data/lib/roby/execution_engine.rb +1604 -0
  114. data/lib/roby/external_process_task.rb +225 -0
  115. data/lib/roby/graph.rb +0 -6
  116. data/lib/roby/interface.rb +221 -137
  117. data/lib/roby/log/console.rb +5 -3
  118. data/lib/roby/log/data_stream.rb +94 -16
  119. data/lib/roby/log/dot.rb +8 -8
  120. data/lib/roby/log/event_stream.rb +13 -3
  121. data/lib/roby/log/file.rb +43 -18
  122. data/lib/roby/log/gui/basic_display_ui.rb +89 -0
  123. data/lib/roby/log/gui/chronicle_view_ui.rb +90 -0
  124. data/lib/roby/log/gui/data_displays.rb +4 -5
  125. data/lib/roby/log/gui/data_displays_ui.rb +146 -0
  126. data/lib/roby/log/gui/relations.rb +18 -18
  127. data/lib/roby/log/gui/relations_ui.rb +120 -0
  128. data/lib/roby/log/gui/relations_view_ui.rb +144 -0
  129. data/lib/roby/log/gui/replay.rb +41 -13
  130. data/lib/roby/log/gui/replay_controls.rb +3 -0
  131. data/lib/roby/log/gui/replay_controls.ui +133 -110
  132. data/lib/roby/log/gui/replay_controls_ui.rb +249 -0
  133. data/lib/roby/log/hooks.rb +19 -18
  134. data/lib/roby/log/logger.rb +7 -6
  135. data/lib/roby/log/notifications.rb +4 -4
  136. data/lib/roby/log/plan_rebuilder.rb +20 -22
  137. data/lib/roby/log/relations.rb +44 -16
  138. data/lib/roby/log/server.rb +1 -4
  139. data/lib/roby/log/timings.rb +88 -19
  140. data/lib/roby/plan-object.rb +135 -11
  141. data/lib/roby/plan.rb +408 -224
  142. data/lib/roby/planning/loops.rb +32 -25
  143. data/lib/roby/planning/model.rb +157 -51
  144. data/lib/roby/planning/task.rb +47 -20
  145. data/lib/roby/query.rb +128 -92
  146. data/lib/roby/relations.rb +254 -136
  147. data/lib/roby/relations/conflicts.rb +6 -9
  148. data/lib/roby/relations/dependency.rb +358 -0
  149. data/lib/roby/relations/ensured.rb +0 -1
  150. data/lib/roby/relations/error_handling.rb +0 -1
  151. data/lib/roby/relations/events.rb +0 -2
  152. data/lib/roby/relations/executed_by.rb +26 -11
  153. data/lib/roby/relations/planned_by.rb +14 -14
  154. data/lib/roby/robot.rb +46 -0
  155. data/lib/roby/schedulers/basic.rb +34 -0
  156. data/lib/roby/standalone.rb +4 -0
  157. data/lib/roby/standard_errors.rb +21 -15
  158. data/lib/roby/state/events.rb +5 -4
  159. data/lib/roby/support.rb +107 -6
  160. data/lib/roby/task-operations.rb +23 -19
  161. data/lib/roby/task.rb +522 -148
  162. data/lib/roby/task_index.rb +80 -0
  163. data/lib/roby/test/common.rb +283 -44
  164. data/lib/roby/test/distributed.rb +53 -37
  165. data/lib/roby/test/testcase.rb +9 -204
  166. data/lib/roby/test/tools.rb +3 -3
  167. data/lib/roby/transactions.rb +154 -111
  168. data/lib/roby/transactions/proxy.rb +40 -7
  169. data/manifest.xml +20 -0
  170. data/plugins/fault_injection/README.txt +0 -3
  171. data/plugins/fault_injection/Rakefile +2 -8
  172. data/plugins/fault_injection/app.rb +1 -1
  173. data/plugins/fault_injection/fault_injection.rb +3 -3
  174. data/plugins/fault_injection/test/test_fault_injection.rb +19 -25
  175. data/plugins/subsystems/README.txt +0 -3
  176. data/plugins/subsystems/Rakefile +2 -7
  177. data/plugins/subsystems/app.rb +27 -16
  178. data/plugins/subsystems/test/app/config/init.rb +3 -0
  179. data/plugins/subsystems/test/app/planners/main.rb +1 -1
  180. data/plugins/subsystems/test/app/tasks/services.rb +1 -1
  181. data/plugins/subsystems/test/test_subsystems.rb +23 -16
  182. data/test/distributed/test_communication.rb +32 -15
  183. data/test/distributed/test_connection.rb +28 -26
  184. data/test/distributed/test_execution.rb +59 -54
  185. data/test/distributed/test_mixed_plan.rb +34 -34
  186. data/test/distributed/test_plan_notifications.rb +26 -26
  187. data/test/distributed/test_protocol.rb +57 -48
  188. data/test/distributed/test_query.rb +11 -7
  189. data/test/distributed/test_remote_plan.rb +71 -71
  190. data/test/distributed/test_transaction.rb +50 -47
  191. data/test/mockups/external_process +28 -0
  192. data/test/planning/test_loops.rb +163 -119
  193. data/test/planning/test_model.rb +3 -3
  194. data/test/planning/test_task.rb +27 -7
  195. data/test/relations/test_conflicts.rb +3 -3
  196. data/test/relations/test_dependency.rb +324 -0
  197. data/test/relations/test_ensured.rb +2 -2
  198. data/test/relations/test_executed_by.rb +94 -19
  199. data/test/relations/test_planned_by.rb +11 -9
  200. data/test/suite_core.rb +6 -3
  201. data/test/suite_distributed.rb +1 -0
  202. data/test/suite_planning.rb +1 -0
  203. data/test/suite_relations.rb +2 -2
  204. data/test/tasks/test_external_process.rb +126 -0
  205. data/test/{test_thread_task.rb → tasks/test_thread_task.rb} +17 -20
  206. data/test/test_bgl.rb +21 -1
  207. data/test/test_event.rb +229 -155
  208. data/test/test_exceptions.rb +79 -80
  209. data/test/test_execution_engine.rb +987 -0
  210. data/test/test_gui.rb +1 -1
  211. data/test/test_interface.rb +11 -5
  212. data/test/test_log.rb +18 -7
  213. data/test/test_log_server.rb +1 -0
  214. data/test/test_plan.rb +229 -395
  215. data/test/test_query.rb +193 -35
  216. data/test/test_relations.rb +88 -8
  217. data/test/test_state.rb +55 -37
  218. data/test/test_support.rb +1 -1
  219. data/test/test_task.rb +371 -218
  220. data/test/test_testcase.rb +32 -16
  221. data/test/test_transactions.rb +211 -170
  222. data/test/test_transactions_proxy.rb +37 -19
  223. metadata +169 -71
  224. data/.gitignore +0 -29
  225. data/doc/styles/allison.css +0 -314
  226. data/doc/styles/allison.js +0 -316
  227. data/doc/styles/allison.rb +0 -276
  228. data/doc/styles/jamis.rb +0 -593
  229. data/lib/roby/control.rb +0 -746
  230. data/lib/roby/executives/simple.rb +0 -30
  231. data/lib/roby/propagation.rb +0 -562
  232. data/lib/roby/relations/hierarchy.rb +0 -239
  233. data/lib/roby/transactions/updates.rb +0 -139
  234. data/test/relations/test_hierarchy.rb +0 -158
  235. data/test/test_control.rb +0 -399
  236. data/test/test_propagation.rb +0 -210
@@ -1,8 +1,10 @@
1
- === 0.7.3
2
-
3
- * fix needed update to run on latest activesupport
4
- This is probably the last release of 0.7. The 'next' branch will become 0.8 as
5
- soon as it is tested enough
1
+ === 0.8.0
2
+ * major refactoring of the core code, to make it easier to reuse parts of the
3
+ framework
4
+ * some major usability improvements in the shell. In particular, planning
5
+ methods can now be properly documented.
6
+ * a lot of small changes
7
+ * tested during the Sauc-E competition in 2009 ... and working well !
6
8
 
7
9
  === 0.7.2
8
10
 
@@ -1,4 +1,3 @@
1
- .gitignore
2
1
  History.txt
3
2
  License-fr.txt
4
3
  License.txt
@@ -28,9 +27,86 @@ app/scripts/shell
28
27
  app/scripts/test
29
28
  app/tasks/.gitattributes
30
29
  app/tasks/ROBOT/.gitattributes
30
+ benchmark/alloc_misc.rb
31
+ benchmark/discovery_latency.rb
32
+ benchmark/garbage_collection.rb
33
+ benchmark/genom.rb
34
+ benchmark/transactions.rb
31
35
  bin/roby
32
36
  bin/roby-log
33
37
  bin/roby-shell
38
+ doc/guide/.gitignore
39
+ doc/guide/config.yaml
40
+ doc/guide/ext/init.rb
41
+ doc/guide/ext/previous_next.rb
42
+ doc/guide/ext/rdoc_links.rb
43
+ doc/guide/index.rdoc
44
+ doc/guide/overview.rdoc
45
+ doc/guide/plan_modifications.rdoc
46
+ doc/guide/src/abstraction/achieve_with.page
47
+ doc/guide/src/abstraction/forwarding.page
48
+ doc/guide/src/abstraction/hierarchy.page
49
+ doc/guide/src/abstraction/index.page
50
+ doc/guide/src/abstraction/task_models.page
51
+ doc/guide/src/basics.template
52
+ doc/guide/src/basics/app.page
53
+ doc/guide/src/basics/code_examples.page
54
+ doc/guide/src/basics/dry.page
55
+ doc/guide/src/basics/errors.page
56
+ doc/guide/src/basics/events.page
57
+ doc/guide/src/basics/hierarchy.page
58
+ doc/guide/src/basics/index.page
59
+ doc/guide/src/basics/log_replay/goForward_1.png
60
+ doc/guide/src/basics/log_replay/goForward_2.png
61
+ doc/guide/src/basics/log_replay/goForward_3.png
62
+ doc/guide/src/basics/log_replay/goForward_4.png
63
+ doc/guide/src/basics/log_replay/goForward_5.png
64
+ doc/guide/src/basics/log_replay/hierarchy_error_1.png
65
+ doc/guide/src/basics/log_replay/hierarchy_error_2.png
66
+ doc/guide/src/basics/log_replay/hierarchy_error_3.png
67
+ doc/guide/src/basics/log_replay/plan_repair_1.png
68
+ doc/guide/src/basics/log_replay/plan_repair_2.png
69
+ doc/guide/src/basics/log_replay/plan_repair_3.png
70
+ doc/guide/src/basics/log_replay/plan_repair_4.png
71
+ doc/guide/src/basics/log_replay/roby_log_main_window.png
72
+ doc/guide/src/basics/log_replay/roby_log_relation_window.png
73
+ doc/guide/src/basics/log_replay/roby_replay_event_representation.png
74
+ doc/guide/src/basics/plan_objects.page
75
+ doc/guide/src/basics/relations_display.page
76
+ doc/guide/src/basics/roby_cycle_overview.png
77
+ doc/guide/src/basics/shell.page
78
+ doc/guide/src/basics/summary.page
79
+ doc/guide/src/basics/tasks.page
80
+ doc/guide/src/basics_shell_header.txt
81
+ doc/guide/src/cycle/cycle-overview.png
82
+ doc/guide/src/cycle/cycle-overview.svg
83
+ doc/guide/src/cycle/error_handling.page
84
+ doc/guide/src/cycle/error_instantaneous_repair.png
85
+ doc/guide/src/cycle/error_instantaneous_repair.svg
86
+ doc/guide/src/cycle/garbage_collection.page
87
+ doc/guide/src/cycle/index.page
88
+ doc/guide/src/cycle/propagation.page
89
+ doc/guide/src/cycle/propagation_diamond.png
90
+ doc/guide/src/cycle/propagation_diamond.svg
91
+ doc/guide/src/default.css
92
+ doc/guide/src/default.template
93
+ doc/guide/src/htmldoc.metainfo
94
+ doc/guide/src/htmldoc.virtual
95
+ doc/guide/src/images/bodybg.png
96
+ doc/guide/src/images/contbg.png
97
+ doc/guide/src/images/footerbg.png
98
+ doc/guide/src/images/gradient1.png
99
+ doc/guide/src/images/gradient2.png
100
+ doc/guide/src/index.page
101
+ doc/guide/src/introduction/index.page
102
+ doc/guide/src/introduction/install.page
103
+ doc/guide/src/introduction/publications.page
104
+ doc/guide/src/introduction/videos.page
105
+ doc/guide/src/plugins/fault_tolerance.page
106
+ doc/guide/src/plugins/index.page
107
+ doc/guide/src/plugins/subsystems.page
108
+ doc/guide/src/relations/dependency.page
109
+ doc/guide/src/relations/index.page
34
110
  doc/images/event_generalization.png
35
111
  doc/images/exception_propagation_1.png
36
112
  doc/images/exception_propagation_2.png
@@ -49,18 +125,13 @@ doc/images/roby_replay_first_state.png
49
125
  doc/images/roby_replay_relations.png
50
126
  doc/images/roby_replay_startup.png
51
127
  doc/images/task_event_generalization.png
52
- doc/papers.rdoc
53
- doc/styles/allison.css
54
- doc/styles/allison.js
55
- doc/styles/allison.rb
56
- doc/styles/jamis.rb
128
+ doc/misc/update_github
57
129
  doc/tutorials/01-GettingStarted.rdoc
58
130
  doc/tutorials/02-GoForward.rdoc
59
131
  doc/tutorials/03-PlannedPath.rdoc
60
132
  doc/tutorials/04-EventPropagation.rdoc
61
133
  doc/tutorials/05-ErrorHandling.rdoc
62
134
  doc/tutorials/06-Overview.rdoc
63
- doc/videos.rdoc
64
135
  ext/droby/dump.cc
65
136
  ext/droby/extconf.rb
66
137
  ext/graph/algorithm.cc
@@ -72,6 +143,7 @@ ext/graph/undirected_dfs.hh
72
143
  ext/graph/undirected_graph.hh
73
144
  lib/roby.rb
74
145
  lib/roby/app.rb
146
+ lib/roby/app/plugins/rake.rb
75
147
  lib/roby/app/rake.rb
76
148
  lib/roby/app/run.rb
77
149
  lib/roby/app/scripts/distributed.rb
@@ -84,7 +156,6 @@ lib/roby/app/scripts/shell.rb
84
156
  lib/roby/app/scripts/test.rb
85
157
  lib/roby/basic_object.rb
86
158
  lib/roby/config.rb
87
- lib/roby/control.rb
88
159
  lib/roby/decision_control.rb
89
160
  lib/roby/distributed.rb
90
161
  lib/roby/distributed/base.rb
@@ -100,7 +171,8 @@ lib/roby/distributed/subscription.rb
100
171
  lib/roby/distributed/transaction.rb
101
172
  lib/roby/event.rb
102
173
  lib/roby/exceptions.rb
103
- lib/roby/executives/simple.rb
174
+ lib/roby/execution_engine.rb
175
+ lib/roby/external_process_task.rb
104
176
  lib/roby/graph.rb
105
177
  lib/roby/interface.rb
106
178
  lib/roby/log.rb
@@ -145,18 +217,19 @@ lib/roby/planning.rb
145
217
  lib/roby/planning/loops.rb
146
218
  lib/roby/planning/model.rb
147
219
  lib/roby/planning/task.rb
148
- lib/roby/propagation.rb
149
220
  lib/roby/query.rb
150
221
  lib/roby/relations.rb
151
222
  lib/roby/relations/conflicts.rb
223
+ lib/roby/relations/dependency.rb
152
224
  lib/roby/relations/ensured.rb
153
225
  lib/roby/relations/error_handling.rb
154
226
  lib/roby/relations/events.rb
155
227
  lib/roby/relations/executed_by.rb
156
- lib/roby/relations/hierarchy.rb
157
228
  lib/roby/relations/influence.rb
158
229
  lib/roby/relations/planned_by.rb
159
230
  lib/roby/robot.rb
231
+ lib/roby/schedulers/basic.rb
232
+ lib/roby/standalone.rb
160
233
  lib/roby/standard_errors.rb
161
234
  lib/roby/state.rb
162
235
  lib/roby/state/events.rb
@@ -167,6 +240,7 @@ lib/roby/state/state.rb
167
240
  lib/roby/support.rb
168
241
  lib/roby/task-operations.rb
169
242
  lib/roby/task.rb
243
+ lib/roby/task_index.rb
170
244
  lib/roby/test/common.rb
171
245
  lib/roby/test/distributed.rb
172
246
  lib/roby/test/tasks/empty_task.rb
@@ -177,7 +251,7 @@ lib/roby/test/tools.rb
177
251
  lib/roby/thread_task.rb
178
252
  lib/roby/transactions.rb
179
253
  lib/roby/transactions/proxy.rb
180
- lib/roby/transactions/updates.rb
254
+ manifest.xml
181
255
  plugins/fault_injection/History.txt
182
256
  plugins/fault_injection/README.txt
183
257
  plugins/fault_injection/Rakefile
@@ -212,35 +286,36 @@ test/distributed/test_protocol.rb
212
286
  test/distributed/test_query.rb
213
287
  test/distributed/test_remote_plan.rb
214
288
  test/distributed/test_transaction.rb
289
+ test/mockups/external_process
215
290
  test/mockups/tasks.rb
216
291
  test/planning/test_loops.rb
217
292
  test/planning/test_model.rb
218
293
  test/planning/test_task.rb
219
294
  test/relations/test_conflicts.rb
295
+ test/relations/test_dependency.rb
220
296
  test/relations/test_ensured.rb
221
297
  test/relations/test_executed_by.rb
222
- test/relations/test_hierarchy.rb
223
298
  test/relations/test_planned_by.rb
224
299
  test/suite_core.rb
225
300
  test/suite_distributed.rb
226
301
  test/suite_planning.rb
227
302
  test/suite_relations.rb
303
+ test/tasks/test_external_process.rb
304
+ test/tasks/test_thread_task.rb
228
305
  test/test_bgl.rb
229
- test/test_control.rb
230
306
  test/test_event.rb
231
307
  test/test_exceptions.rb
308
+ test/test_execution_engine.rb
232
309
  test/test_gui.rb
233
310
  test/test_interface.rb
234
311
  test/test_log.rb
235
312
  test/test_log_server.rb
236
313
  test/test_plan.rb
237
- test/test_propagation.rb
238
314
  test/test_query.rb
239
315
  test/test_relations.rb
240
316
  test/test_state.rb
241
317
  test/test_support.rb
242
318
  test/test_task.rb
243
319
  test/test_testcase.rb
244
- test/test_thread_task.rb
245
320
  test/test_transactions.rb
246
321
  test/test_transactions_proxy.rb
data/README.txt CHANGED
@@ -1,8 +1,8 @@
1
1
  = Roby: a plan manager for robot control in Ruby
2
2
 
3
- http://roby.rubyforge.org
4
- http://www.rubyforge.org/projects/roby
5
- http://github.com/doudou/roby (dev. repository)
3
+ http://sites.google.com/sites/rubyinmotion
4
+ http://doudou.github.com/roby
5
+ http://github.com/doudou/roby
6
6
 
7
7
  <b>Note for Gem users</b> While using the normal RDoc generator, the
8
8
  documentation generation process of Roby is a bit modified. In particular, the
@@ -33,6 +33,16 @@ Roby is:
33
33
  * (G)UI tools for interacting/controlling the living system.
34
34
  * all of that in a multi-robot context.
35
35
 
36
+
37
+ Roby is the result of my PhD. As such, my PhD thesis can be considered as a
38
+ design document for the system. If you want an overview of the principles, you
39
+ can also refer to the two publications I did. See {this
40
+ page}[link:files/doc/papers_rdoc.html] for the list of publication and the
41
+ associated PDF files.
42
+
43
+ {This overview}[link:files/doc/overview_rdoc.html] also provides a more in-depth
44
+ overview of the implementation itself.
45
+
36
46
  == Acknowledgments
37
47
 
38
48
  This work has been supported by the DGA (http://www.defense.gouv.fr/dga) which
@@ -40,15 +50,6 @@ financed my PhD and the LAAS/CNRS (http://www.laas.fr), where I did it. It is
40
50
  now supported by the DFKI (http://www.dfki.de) where I currently work and use
41
51
  this plan manager.
42
52
 
43
- == Related publications
44
-
45
- Roby is the result of my PhD. As such, my PhD thesis can be considered as a
46
- design document for the system. If you want an overview of the principles, you
47
- can also refer to the two publications I did.
48
-
49
- See {this page}[link:files/doc/papers_rdoc.html] for the list of publication
50
- and the associated PDF files.
51
-
52
53
  == Videos
53
54
 
54
55
  The videos that are available show some capabilities of the system. Frankly you
@@ -58,10 +59,15 @@ when it is meaningful.
58
59
 
59
60
  See {here}[link:files/doc/videos_rdoc.html] for the available videos.
60
61
 
61
- == Tutorials
62
+ == Documentation
63
+
64
+ The documentation is split into four parts:
65
+ * the API documentation (see left pane on this window)
66
+ * the {User's Guide}[link:files/doc/using/index_rdoc.html]
67
+ * the {Developer's Guide}[link:files/doc/extending/index_rdoc.html]
62
68
 
63
- A set of tutorials describe Roby's main features and let you experiment with
64
- them:
69
+ Finally, a set of tutorials describe Roby's main features and let you experiment
70
+ with them:
65
71
  1. the GettingStarted[link:files/doc/tutorials/01-GettingStarted_rdoc.html] tutorial makes
66
72
  you start a brand new Roby application and explains its structure.
67
73
  2. the GoForward[link:files/doc/tutorials/02-GoForward_rdoc.html] tutorial shows how to create
@@ -153,14 +159,8 @@ dependencies (boost with boost/graph), you can simply install it with
153
159
 
154
160
  == Installing from source
155
161
 
156
- First, install all the required dependencies. Then, get the sources either
157
- from a release tarball or the RubyForge git
158
- repository[http://rubyforge.org/projects/roby], or from the development
159
- one[http://github.com/doudou/roby].
160
-
161
- Once the source is installed, run
162
- rake setup
162
+ You can also install from scratch with {this guide}[link:files/doc/install_rdoc.html]
163
163
 
164
- Define first the BOOST_DIR environment variable to Boost's installation path if
165
- that path is non-standard.
164
+ You may have to first define the BOOST_DIR environment variable to Boost's
165
+ installation path if that path is non-standard.
166
166
 
data/Rakefile CHANGED
@@ -1,28 +1,32 @@
1
1
  $LOAD_PATH.unshift File.expand_path('lib', File.dirname(__FILE__))
2
2
  require 'enumerator'
3
+ require 'hoe'
3
4
  require 'roby/config'
4
5
 
5
6
  begin
6
7
  require 'hoe'
7
8
  namespace 'dist' do
8
- hoe = Hoe.new('roby', Roby::VERSION) do |p|
9
- p.developer 'Sylvain Joyeux', 'sylvain.joyeux@m4x.org'
10
-
11
- p.summary = 'A plan-based control framework for autonomous systems'
12
- p.url = p.paragraphs_of('README.txt', 1).join("\n\n")
13
- p.description = p.paragraphs_of('README.txt', 3..5).join("\n\n")
14
- p.description +=
15
- "\n\nSee the README.txt file at http://roby.rubyforge.org for more
16
- informations, including links to tutorials and demonstration videos"
17
- p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
18
- p.post_install_message = p.paragraphs_of('README.txt', 2).join("\n\n")
19
-
20
- p.extra_deps << ['facets', '>= 2.0'] << 'activesupport' << ['utilrb', '>= 1.3.1'] <<
21
- ['rake', '>= 0.8.3']
22
- p.extra_dev_deps << 'flexmock'
23
- if p.respond_to? :need_rdoc=
24
- p.need_rdoc = false
25
- end
9
+ hoe = Hoe.spec 'roby' do
10
+ self.developer 'Sylvain Joyeux', 'sylvain.joyeux@m4x.org'
11
+
12
+ self.summary = 'A plan-based control framework for autonomous systems'
13
+ self.url = paragraphs_of('README.txt', 1).join("\n\n")
14
+ self.description = paragraphs_of('README.txt', 3..5).join("\n\n")
15
+ self.description +=
16
+ "\n\nSee doudou.github.com/roby for more informations, including links to
17
+ tutorials and demonstration videos"
18
+ self.changes = paragraphs_of('History.txt', 0..1).join("\n\n")
19
+ self.post_install_message = paragraphs_of('README.txt', 2).join("\n\n")
20
+
21
+ self.extra_deps <<
22
+ ['facets', '>= 2.0'] <<
23
+ ['utilrb', '>= 1.3.1']
24
+
25
+ self.extra_dev_deps <<
26
+ ['rdoc', '>= 2.4'] <<
27
+ ['webgen', '>= 0.5']
28
+
29
+ self.need_rdoc = false
26
30
  end
27
31
  hoe.spec.extensions <<
28
32
  'ext/droby/extconf.rb' <<
@@ -35,19 +39,22 @@ informations, including links to tutorials and demonstration videos"
35
39
 
36
40
  hoe.spec.rdoc_options <<
37
41
  '--main' << 'README.txt' <<
38
- "--inline-source" <<
39
42
  "--accessor" << "attribute" <<
40
43
  "--accessor" << "attr_predicate"
41
44
 
42
- if !hoe.respond_to? :need_rdoc=
43
- # This sucks, I know, but Hoe's handling of documentation is not
44
- # enough for me
45
- tasks = Rake.application.instance_variable_get :@tasks
46
- tasks.delete_if { |n, _| n =~ /dist:(re|clobber_|)docs/ }
47
- end
45
+ task 'dist:package' => 'uic'
46
+ Rake.clear_tasks(/doc/)
47
+
48
+ desc 'update the pages that are displayed on doudou.github.com/roby'
49
+ task "publish_docs" => "doc:all" do
50
+ if !system( File.join("doc", "misc", "update_github") )
51
+ raise "cannot update the gh-pages branch"
52
+ end
53
+ end
48
54
  end
49
- rescue
55
+ rescue Exception => e
50
56
  puts "cannot setup Hoe, distribution is disabled"
57
+ puts "error is: #{e.message}"
51
58
  end
52
59
 
53
60
  def build_extension(name, soname = name)
@@ -68,7 +75,7 @@ def clean_extension(name, soname = name)
68
75
  end
69
76
  end
70
77
 
71
- task :cruise => [:setup, :recore_docs, :test]
78
+ task :cruise => [:setup, 'doc:recore', :test]
72
79
 
73
80
  #########
74
81
  # Test-related targets
@@ -106,6 +113,10 @@ task :clean => 'dist:clean' do
106
113
  end
107
114
 
108
115
  UIFILES = %w{relations.ui relations_view.ui data_displays.ui replay_controls.ui basic_display.ui chronicle_view.ui}
116
+ UIFILES.each do |file|
117
+ file "lib/roby/log/gui/#{file}" => 'uic'
118
+ end
119
+
109
120
  desc 'generate all Qt UI files using rbuic4'
110
121
  task :uic do
111
122
  rbuic = 'rbuic4'
@@ -126,45 +137,62 @@ end
126
137
  #
127
138
  # This redefines Hoe's targets for documentation, as the documentation
128
139
  # generation is not flexible enough for us
129
- namespace 'doc' do
130
- require 'roby/app/rake'
131
- Rake::RDocTask.new("core") do |rdoc|
132
- rdoc.options << "--inline-source" << "--accessor" << "attribute" << "--accessor" << "attr_predicate"
133
- rdoc.rdoc_dir = 'doc/rdoc/core'
134
- rdoc.title = "Roby Core"
135
- rdoc.template = Roby::Rake.rdoc_template
136
- rdoc.options << '--main' << 'README.txt'
137
- rdoc.rdoc_files.include('README.txt', 'TODO.txt', 'History.txt')
138
- rdoc.rdoc_files.include('lib/**/*.rb', 'ext/**/*.cc')
139
- rdoc.rdoc_files.include('doc/videos.rdoc', 'doc/papers.rdoc')
140
- rdoc.rdoc_files.include('doc/tutorials/**/*')
141
- rdoc.rdoc_files.exclude('lib/roby/test/**/*', 'lib/roby/app/**/*', 'lib/roby/log/gui/*')
142
- end
143
140
 
144
- Rake::RDocTask.new("tutorials") do |rdoc|
145
- rdoc.options << "--inline-source" << "--accessor" << "attribute" << "--accessor" << "attr_predicate"
146
- rdoc.rdoc_dir = 'doc/rdoc/tutorials'
147
- rdoc.title = "Roby Tutorials"
148
- rdoc.template = Roby::Rake.rdoc_template
149
- rdoc.options << '--main' << 'README.txt'
150
- rdoc.rdoc_files.include('README.txt', 'TODO.txt', 'History.txt')
151
- rdoc.rdoc_files.include('doc/videos.rdoc', 'doc/papers.rdoc')
152
- rdoc.rdoc_files.include('doc/tutorials/**/*')
153
- end
141
+ # This is for the user's guide
142
+ begin
143
+ require 'webgen/webgentask'
144
+ require 'rdoc/task'
145
+ do_doc = true
146
+ rescue LoadError => e
147
+ STDERR.puts "webgen and/or the rdoc Gem are not available, documentation generation disabled"
148
+ STDERR.puts " Ruby reported the following load error: #{e.message}"
149
+ end
154
150
 
155
- def plugins_documentation_generation(target_prefix)
156
- task "plugins_#{target_prefix}docs" do
157
- Roby::Rake.invoke_plugin_target("#{target_prefix}docs")
151
+ if do_doc
152
+ namespace 'doc' do
153
+ require 'roby/app/rake'
154
+ RDoc::Task.new("api") do |rdoc|
155
+ rdoc.rdoc_dir = 'doc/html/api'
156
+ rdoc.title = "Roby Core"
157
+ rdoc.options << '--show-hash'
158
+ rdoc.rdoc_files.include('lib/**/*.rb', 'ext/**/*.cc')
159
+ rdoc.rdoc_files.exclude('lib/roby/test/**/*', 'lib/roby/app/**/*', 'lib/roby/log/gui/*')
160
+ end
161
+
162
+ Webgen::WebgenTask.new('guide') do |website|
163
+ website.clobber_outdir = true
164
+ website.directory = File.join(Dir.pwd, 'doc', 'guide')
165
+ website.config_block = lambda do |config|
166
+ config['output'] = ['Webgen::Output::FileSystem', File.join(Dir.pwd, 'doc', 'html')]
167
+ end
168
+ end
169
+
170
+ def plugins_documentation_generation(target_prefix)
171
+ task "plugins_#{target_prefix}docs" do
172
+ Roby::Rake.invoke_plugin_target("#{target_prefix}docs")
173
+ end
174
+ end
175
+ desc 'generate the documentation for all installed plugins'
176
+ plugins_documentation_generation ''
177
+ desc 'remove the documentation for all installed plugins'
178
+ plugins_documentation_generation 'clobber_'
179
+ desc 'regenerate the documentation for all installed plugins'
180
+ plugins_documentation_generation 're'
181
+
182
+ desc 'generate all documentation'
183
+ task 'all' => ['doc:guide', 'doc:api', 'doc:plugins_docs']
184
+ desc 'removes all documentation'
185
+ task 'clobber' do
186
+ FileUtils.rm_rf File.join('doc', 'html')
187
+ end
188
+
189
+ desc 'regenerate all documentation'
190
+ task 'redocs' do
191
+ FileUtils.rm_rf File.join('doc', 'html')
192
+ if !system('rake', 'doc:all')
193
+ raise "failed to regenerate documentation"
194
+ end
158
195
  end
159
196
  end
160
- desc 'generate the documentation for all installed plugins'
161
- plugins_documentation_generation ''
162
- desc 'remove the documentation for all installed plugins'
163
- plugins_documentation_generation 'clobber_'
164
- desc 'regenerate the documentation for all installed plugins'
165
- plugins_documentation_generation 're'
166
197
  end
167
-
168
- task 'docs' => ['doc:core', 'doc:plugins_docs']
169
- task 'clobber_docs' => ['doc:clobber_core', 'doc:plugins_clobber_docs']
170
- task 'redocs' => ['doc:recore', 'doc:replugins_docs']
198
+ task 'clobber_docs' => 'doc:clobber'