roby 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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'