Merge lp:~teknico/juju-gui/1086512-revise-docs into lp:juju-gui/experimental
- 1086512-revise-docs
- Merge into trunk
Status: | Merged | ||||
---|---|---|---|---|---|
Merged at revision: | 276 | ||||
Proposed branch: | lp:~teknico/juju-gui/1086512-revise-docs | ||||
Merge into: | lp:juju-gui/experimental | ||||
Diff against target: |
713 lines (+290/-251) 8 files modified
HACKING (+197/-0) Makefile (+4/-2) README (+37/-197) docs/architecture.rst (+29/-30) docs/d3-component-framework.rst (+8/-8) docs/index.rst (+1/-0) docs/process.rst (+6/-6) docs/style-guide.rst (+8/-8) |
||||
To merge this branch: | bzr merge lp:~teknico/juju-gui/1086512-revise-docs | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Juju GUI Hackers | Pending | ||
Review via email: mp+139226@code.launchpad.net |
Commit message
Description of the change
Put deploy docs in README, add HACKING.
Move the development instructions from the README file to a newly created HACKING one, update them, link the HACKING into the docs. Put deploying instructions in the README file. Revise all docs updating them, and fixing markup and links.
Nicola Larosa (teknico) wrote : | # |
Francesco Banconi (frankban) wrote : | # |
Gary Poster (gary) wrote : | # |
Land with changes
Hi Nicola. Thank you for this branch. It has many improvements.
Please either accept my suggested changes (which I'd prefer ;-) ) or let
me know why you don't want to.
Thanks
Gary
https:/
File HACKING (right):
https:/
HACKING:67: the container, and is launched using whichever branch you're
using.
...and it is launched...
https:/
HACKING:94: After which, the gui should be functional (it automatically
polls the
After this, the gui...
https:/
File docs/d3-
https:/
docs/d3-
English rules are usually to capitalize the words of titles, as long as
they are not articles or prepositions. Why did you change that here?
It's not particularly important, but I don't like to see things that
seem to me to be steps backwards. I suggest reverting the three title
capitalization changes in this file.
https:/
docs/d3-
Revert capitalization change, as discussed above.
https:/
docs/d3-
revert, per above discussion.
https:/
File docs/process.rst (right):
https:/
docs/process.rst:2: Process notes
Revert: It was standard English title style before
https:/
docs/process.rst:5: Checklist for starting a branch
revert
https:/
docs/process.
revert
https:/
docs/process.
revert
https:/
docs/process.
revert
https:/
docs/process.
revert
https:/
docs/process.
revert
https:/
docs/process.
revert
https:/
docs/process.
revert
https:/
File docs/style-
https:/
docs/style-
revert
Nicola Larosa (teknico) wrote : | # |
gary.poster wrote:
> Please either accept my suggested changes (which I'd prefer ;-) ) or
let me know
> why you don't want to.
Gary, I will apply your changes.
https:/
> docs/d3-
> English rules are usually to capitalize the words of titles, as long
as they are
> not articles or prepositions. Why did you change that here?
There is a mismatch in title style between the README and Style Guide
files, that do not capitalize them, and the D3 Component Framework and
Process Notes, that do. It becomes apparent when you look at the index
in the generated pages.
Being not very well versed with formal English rules, I felt
capitalization as unusual and kind of "heavy", so decided to remove it.
Since you prefer abiding to those rules I'll revert the changes, and
apply capitalization to the former files too.
- 279. By Nicola Larosa
-
Merged from trunk.
- 280. By Nicola Larosa
-
Revert capitalization changes, make new capitalization changes, add 'sphinx' target to Makefile.
Nicola Larosa (teknico) wrote : | # |
*** Submitted:
Put deploy docs in README, add HACKING.
Move the development instructions from the README file to a newly
created HACKING one, update them, link the HACKING into the docs. Put
deploying instructions in the README file. Revise all docs updating
them, and fixing markup and links.
R=frankban, gary.poster
CC=
https:/
Preview Diff
1 | === added file 'HACKING' |
2 | --- HACKING 1970-01-01 00:00:00 +0000 |
3 | +++ HACKING 2012-12-12 10:07:21 +0000 |
4 | @@ -0,0 +1,197 @@ |
5 | +=========== |
6 | +Development |
7 | +=========== |
8 | + |
9 | +Here is how to develop on this codebase. |
10 | + |
11 | +Developer Install |
12 | +================= |
13 | + |
14 | +Juju GUI uses nodejs based development tools. |
15 | + |
16 | +You'll need nodejs & npm from the ppa:: |
17 | + |
18 | + $ sudo add-apt-repository ppa:chris-lea/node.js |
19 | + $ sudo apt-get update |
20 | + $ sudo apt-get install nodejs npm |
21 | + |
22 | +You also need ImageMagick:: |
23 | + |
24 | + $ sudo apt-get install imagemagick |
25 | + |
26 | +The linter will be installed locally per branch, but if you want editor |
27 | +integration, you may want to install jshint globally in your system:: |
28 | + |
29 | + $ sudo npm install -g jshint |
30 | + |
31 | +For building the docs, you also need sphinx:: |
32 | + |
33 | + $ sudo apt-get install python-sphinx |
34 | + |
35 | +To make releases, you'll need pytz:: |
36 | + |
37 | + $ sudo apt-get install python-tz |
38 | + |
39 | +The gui frontend can be installed with:: |
40 | + |
41 | + $ bzr branch lp:juju-ui trunk |
42 | + $ cd trunk |
43 | + $ make server |
44 | + |
45 | +It may take a while for the server to start the first time as npm will |
46 | +need to download packages. When ready, the server will print: |
47 | + |
48 | +Server listening on 8888 |
49 | + |
50 | +You can then access the GUI at <http://localhost:8888/>. |
51 | + |
52 | +You'll also need to deploy a juju environment with REST api access. |
53 | +Currently that work resides in a pipeline of juju branches. The |
54 | +recommended branch to use as a server is ``lp:~hazmat/juju/rapi-rollup``. |
55 | + |
56 | +You can use it with any environment, but for dev purposes, a local |
57 | +environment works well. One environment option specific to this branch |
58 | +is the api-port. An appropriate sample configuration:: |
59 | + |
60 | + default: dev |
61 | + environments: |
62 | + dev: |
63 | + type: local |
64 | + data-dir: /home/kapil/.juju/local |
65 | + admin-secret: b3a5dee4fb8c4fc9a4db04751e5936f4 |
66 | + default-series: precise |
67 | + juju-origin: ppa |
68 | + api-port: 8081 |
69 | + |
70 | +Note that juju-origin is set to the ppa, the api server runs outside of |
71 | +the container, and is launched using whichever branch you're using. |
72 | + |
73 | +Also note that the api-port should be set at 8081, which the gui's |
74 | +initial environment connection currently defaults to. |
75 | + |
76 | +You'll need to bootstrap the local environment, and deploy one service. |
77 | +The api server needs access to the provisioning credentials which are |
78 | +lazily initialized in juju upon usage. |
79 | + |
80 | +Juju-gui and rapi-rollup can communicate via an encrypted WebSockets |
81 | +connection: to enable it, add the following line to the config above:: |
82 | + |
83 | + api-secure: true |
84 | + |
85 | +You will also need to edit your ``app/config.js`` replacing |
86 | +``ws://localhost:8081/ws`` with ``wss://localhost:8081/ws``. |
87 | + |
88 | +By default, rapi-rollup uses a self-signed certificate; because of that you |
89 | +will need to visit the <https://localhost:8081/ws> WebSockets URL with your |
90 | +browser and accept the included self-signed certificate, or the WebSockets |
91 | +encrypted connection will not work. |
92 | + |
93 | +In order to use a different certificate, you add an api-keys option to the |
94 | +config above: its value will be the path of the directory containing the |
95 | +certificate and the private key, whose filenames will have to be respectively |
96 | +``juju.crt`` and ``juju.key``. |
97 | + |
98 | +After which, the gui should be functional (it automatically polls the |
99 | +api server for establishing a websocket). |
100 | + |
101 | +Running Unit Tests |
102 | +================== |
103 | + |
104 | + $ make test |
105 | + |
106 | +Running Lint |
107 | +============ |
108 | + |
109 | + $ make lint |
110 | + |
111 | +API Documentation |
112 | +================= |
113 | + |
114 | +Generated JavaScript documentation is available in the yuidoc directory after |
115 | +running the command ``make yuidoc``. You can view the docs by running:: |
116 | + |
117 | + $ xdg-open yuidoc/index.html |
118 | + |
119 | +The `documentation <http://yui.github.com/yuidoc/syntax/>`_ for YUIDoc markup |
120 | +is available. |
121 | + |
122 | +Project Documentation |
123 | +===================== |
124 | + |
125 | +The project documentation is available in the ``docs/`` directory. It needs |
126 | +Sphinx:: |
127 | + |
128 | + $ sudo apt-get install python-sphinx |
129 | + |
130 | +Build the documentation:: |
131 | + |
132 | + $ make doc |
133 | + |
134 | +(This will also generate the above mentioned yuidoc documentation.) |
135 | + |
136 | +View it:: |
137 | + |
138 | + $ xdg-open docs/_build/html/index.html |
139 | + |
140 | +Making Releases |
141 | +=============== |
142 | + |
143 | +To make a release, you must either be in a checkout of lp:juju-gui |
144 | +without uncommitted changes, or you must override one of the |
145 | +`pertinent variable names`_ to force a release. |
146 | + |
147 | +.. _`pertinent variable names`: `Potentially Useful Release-Oriented Makefile Variables`_ |
148 | + |
149 | +You also need to have a gpg key, and the python-pytz package installed (as |
150 | +well as launchpadlib, but that is installed by default in Ubuntu). |
151 | + |
152 | +See the Process document (docs/process.rst) for step-by-step checklists to |
153 | +make developer and stable releases. |
154 | + |
155 | +Potentially Useful Release-Oriented Makefile Variables |
156 | +------------------------------------------------------ |
157 | + |
158 | +The following is a list of pertinent Makefile variables. |
159 | + |
160 | +FINAL |
161 | + Set FINAL to any non-empty value to make a final release. This will cause |
162 | + the bzr revno to be omitted from the tarball name, and (if you use the |
163 | + release target) will cause the release to be uploaded to the stable series |
164 | + rather than the trunk series. Example usage:: |
165 | + |
166 | + $ FINAL=1 make release |
167 | + |
168 | +PROD |
169 | + By default, releases will be uploaded to staging.launchpad.net, which is a |
170 | + separate version of Launchpad that uses a temporary database. This can be |
171 | + convenient for trying out the release process in the Makefile without |
172 | + affecting our actual production releases. Set PROD to any non-empty value |
173 | + to send uploads to launchpad.net, the production version of Launchpad, when |
174 | + you are ready to make a real release. |
175 | + |
176 | + Note that you may need to ask the webops to turn off the two-factor |
177 | + authentication on your Launchpad staging account in order for the staging to |
178 | + work. Go to the #launchpad-ops channel on the Canonical IRC server and ask |
179 | + something like "webops, could you disable 2FA on my staging account?" |
180 | + |
181 | + Example usage:: |
182 | + |
183 | + $ PROD=1 make release |
184 | + |
185 | +IS_TRUNK_CHECKOUT |
186 | + Set this to any non-empty value to force the Makefile to believe it is |
187 | + working with a trunk checkout. Example usage:: |
188 | + |
189 | + $ IS_TRUNK_CHECKOUT=1 make release |
190 | + |
191 | +HAS_NO_CHANGES |
192 | + Set this to any non-empty value to force the Makefile to believe that the |
193 | + current code tree has no changes. Example usage:: |
194 | + |
195 | + $ HAS_NO_CHANGES=1 make release |
196 | + |
197 | +IS_SAFE_RELEASE |
198 | + Set this to any non-empty value to force the Makefile to bypass checks of |
199 | + IS_TRUNK_CHECKOUT and HAS_NO_CHANGES. Example usage:: |
200 | + |
201 | + $ IS_SAFE_RELEASE=1 make release |
202 | |
203 | === modified file 'Makefile' |
204 | --- Makefile 2012-12-11 15:54:02 +0000 |
205 | +++ Makefile 2012-12-12 10:07:21 +0000 |
206 | @@ -128,10 +128,12 @@ |
207 | yuidoc/index.html: node_modules/yuidocjs $(JSFILES) |
208 | node_modules/.bin/yuidoc -o yuidoc -x assets app |
209 | |
210 | +sphinx: |
211 | + make -C docs html |
212 | + |
213 | yuidoc: yuidoc/index.html |
214 | |
215 | -doc: yuidoc |
216 | - make -C docs html |
217 | +doc: sphinx yuidoc |
218 | |
219 | $(SPRITE_GENERATED_FILES): node_modules/grunt node_modules/node-spritesheet \ |
220 | $(SPRITE_SOURCE_FILES) |
221 | |
222 | === modified file 'README' |
223 | --- README 2012-12-10 14:20:35 +0000 |
224 | +++ README 2012-12-12 10:07:21 +0000 |
225 | @@ -1,197 +1,37 @@ |
226 | -====== |
227 | -README |
228 | -====== |
229 | - |
230 | -Developer Install |
231 | -================= |
232 | - |
233 | -Juju GUI uses nodejs based development tools. |
234 | - |
235 | -You'll need nodejs & npm from the ppa:: |
236 | - |
237 | - $ sudo add-apt-repository ppa:chris-lea/node.js |
238 | - $ sudo apt-get update |
239 | - $ sudo apt-get install nodejs npm |
240 | - |
241 | -You also need ImageMagick:: |
242 | - |
243 | - $ sudo apt-get install imagemagick |
244 | - |
245 | -The linter will be installed locally per branch, but if you want editor |
246 | -integration, you may want to install jshint globally in your system:: |
247 | - |
248 | - $ sudo npm install -g jshint |
249 | - |
250 | -For building the docs, you also need sphinx:: |
251 | - |
252 | - $ sudo apt-get install python-sphinx |
253 | - |
254 | -To make releases, you'll need pytz:: |
255 | - |
256 | - $ sudo apt-get install python-tz |
257 | - |
258 | -The gui frontend can be installed with:: |
259 | - |
260 | - $ bzr branch lp:juju-ui trunk |
261 | - $ cd trunk |
262 | - $ make server |
263 | - |
264 | -It may take a while for the server to start the first time as npm will |
265 | -need to download packages. When ready, the server will print: |
266 | - |
267 | -Server listening on 8888 |
268 | - |
269 | -You can then access the GUI at http://localhost:8888 |
270 | - |
271 | -You'll also need to deploy a juju environment with REST api access. |
272 | -Currently that work resides in a pipeline of juju branches. The |
273 | -recommended branch to use as a server is ``lp:~hazmat/juju/rapi-delta``. |
274 | - |
275 | -You can use it with any environment, but for dev purposes, a local |
276 | -environment works well. One environment option specific to this branch |
277 | -is the api-port. An appropriate sample configuration:: |
278 | - |
279 | - default: dev |
280 | - environments: |
281 | - dev: |
282 | - type: local |
283 | - data-dir: /home/kapil/.juju/local |
284 | - admin-secret: b3a5dee4fb8c4fc9a4db04751e5936f4 |
285 | - default-series: precise |
286 | - juju-origin: ppa |
287 | - api-port: 8081 |
288 | - |
289 | -Note that juju-origin is set to the ppa, the api server runs outside of |
290 | -the container, and is launched using whichever branch you're using. |
291 | - |
292 | -Also note that the api-port should be set at 8081, which the gui's |
293 | -initial environment connection currently defaults to. |
294 | - |
295 | -You'll need to bootstrap the local environment, and deploy one service. |
296 | -The api server needs access to the provisioning credentials which are |
297 | -lazily initialized in juju upon usage. |
298 | - |
299 | -Juju-gui and rapi-delta can communicate via an encrypted WebSockets |
300 | -connection: to enable it, add the following line to the config above:: |
301 | - |
302 | - api-secure: true |
303 | - |
304 | -You will also need to edit your ``app/config.js`` replacing |
305 | -``ws://localhost:8081/ws`` with ``wss://localhost:8081/ws``. |
306 | - |
307 | -By default, rapi-delta uses a self-signed certificate; because of that you |
308 | -will need to visit the https://localhost:8081/ws WebSockets URL with your |
309 | -browser and accept the included self-signed certificate, or the WebSockets |
310 | -encrypted connection will not work. |
311 | - |
312 | -In order to use a different certificate, you add an api-keys option to the |
313 | -config above: its value will be the path of the directory containing the |
314 | -certificate and the private key, whose filenames will have to be respectively |
315 | -``juju.crt`` and ``juju.key``. |
316 | - |
317 | -After which, the gui should be functional (it automatically polls the |
318 | -api server for establishing a websocket). |
319 | - |
320 | -Running unit tests |
321 | -================== |
322 | - |
323 | - $ xdg-open test/index.html |
324 | - |
325 | -Documentation |
326 | -============= |
327 | - |
328 | -Generated JavaScript documentation is available in the yuidoc directory. |
329 | -Start with the index.html file. You can view the docs by running:: |
330 | - |
331 | - $ xdg-open yuidoc/index.html |
332 | - |
333 | -To regenerate the docs run:: |
334 | - |
335 | - $ make yuidoc |
336 | - |
337 | -The documentation for YUIDoc markup is at |
338 | -http://yui.github.com/yuidoc/syntax/ . |
339 | - |
340 | -Running lint |
341 | -============ |
342 | - |
343 | - $ jshint --config=jshint.config `bzr ls -RV -k file | grep -v assets/` |
344 | - |
345 | -Making releases |
346 | -=============== |
347 | - |
348 | -To make a release, you must either be in a checkout of lp:juju-gui |
349 | -without uncommitted changes, or you must override one of the |
350 | -`pertinent variable names`_ to force a release. |
351 | - |
352 | -.. _`pertinent variable names`: `Potentially Useful Release-Oriented Makefile Variables`_ |
353 | - |
354 | -You also need to have a gpg key, and the python-pytz package installed (as |
355 | -well as launchpadlib, but that is installed by default in Ubuntu). |
356 | - |
357 | -See the Process document (docs/process.rst) for step-by-step checklists to |
358 | -make developer and stable releases. |
359 | - |
360 | -Potentially Useful Release-Oriented Makefile Variables |
361 | ------------------------------------------------------- |
362 | - |
363 | -The following is a list of pertinent Makefile variables. |
364 | - |
365 | -FINAL |
366 | - Set FINAL to any non-empty value to make a final release. This will cause |
367 | - the bzr revno to be omitted from the tarball name, and (if you use the |
368 | - release target) will cause the release to be uploaded to the stable series |
369 | - rather than the trunk series. Example usage:: |
370 | - |
371 | - $ FINAL=1 make release |
372 | - |
373 | -PROD |
374 | - By default, releases will be uploaded to staging.launchpad.net, which is a |
375 | - separate version of Launchpad that uses a temporary database. This can be |
376 | - convenient for trying out the release process in the Makefile without |
377 | - affecting our actual production releases. Set PROD to any non-empty value |
378 | - to send uploads to launchpad.net, the production version of Launchpad, when |
379 | - you are ready to make a real release. |
380 | - |
381 | - Note that you may need to ask the webops to turn off the two-factor |
382 | - authentication on your Launchpad staging account in order for the staging to |
383 | - work. Go to the #launchpad-ops channel on the Canonical IRC server and ask |
384 | - something like "webops, could you disable 2FA on my staging account?" |
385 | - |
386 | - Example usage:: |
387 | - |
388 | - $ PROD=1 make release |
389 | - |
390 | -IS_TRUNK_CHECKOUT |
391 | - Set this to any non-empty value to force the Makefile to believe it is |
392 | - working with a trunk checkout. Example usage:: |
393 | - |
394 | - $ IS_TRUNK_CHECKOUT=1 make release |
395 | - |
396 | -HAS_NO_CHANGES |
397 | - Set this to any non-empty value to force the Makefile to believe that the |
398 | - current code tree has no changes. Example usage:: |
399 | - |
400 | - $ HAS_NO_CHANGES=1 make release |
401 | - |
402 | -IS_SAFE_RELEASE |
403 | - Set this to any non-empty value to force the Makefile to bypass checks of |
404 | - IS_TRUNK_CHECKOUT and HAS_NO_CHANGES. Example usage:: |
405 | - |
406 | - $ IS_SAFE_RELEASE=1 make release |
407 | - |
408 | -More documentation |
409 | -================== |
410 | - |
411 | -Install Sphinx:: |
412 | - |
413 | - $ sudo apt-get install python-sphinx |
414 | - |
415 | -Build the docs:: |
416 | - |
417 | - $ cd docs |
418 | - $ make html |
419 | - |
420 | -View them:: |
421 | - |
422 | - $ xdg-open _build/html/index.html |
423 | +======== |
424 | +Juju-GUI |
425 | +======== |
426 | + |
427 | +Welcome. Juju-GUI is a web-based GUI for `Juju <https://juju.ubuntu.com/>`_. |
428 | +Juju lets you deploy connected services to the cloud in a convenient, |
429 | +vendor-neutral, and powerful way. The GUI lets you visualize and manage |
430 | +your work more intuitively from a web browser. |
431 | + |
432 | +See also: |
433 | + |
434 | +- `The new Juju GUI: because a picture paints a thousand words |
435 | + <http://blog.canonical.com/2012/10/29/the-new-juju-gui-because-a-picture-paints-a-thousand-words/>`_ |
436 | +- a `demo of trunk <http://uistage.jujucharms.com:8080/>`_, which is reset |
437 | + every 15 minutes. |
438 | + |
439 | +Deploy |
440 | +====== |
441 | + |
442 | +There are no official releases of Juju-GUI yet, so you have to get the source |
443 | +code from Launchpad:: |
444 | + |
445 | + $ bzr branch lp:juju-gui |
446 | + |
447 | +The most useful available commands are shown by the command:: |
448 | + |
449 | + $ make help |
450 | + |
451 | +You'll typically want to run one of ``make prod``, ``make debug`` or ``make |
452 | +devel`` to deploy an environment. You might also run ``make test`` to check |
453 | +that everything is ok. You may also run ``make doc`` to generate the available |
454 | +documentation. |
455 | + |
456 | +Configure |
457 | +========= |
458 | + |
459 | +TBD |
460 | |
461 | === modified file 'docs/architecture.rst' |
462 | --- docs/architecture.rst 2012-10-05 09:42:27 +0000 |
463 | +++ docs/architecture.rst 2012-12-12 10:07:21 +0000 |
464 | @@ -6,55 +6,54 @@ |
465 | ======== |
466 | |
467 | MVC YUI |
468 | -~~~~~~~ |
469 | +------- |
470 | |
471 | -Juju-gui is based on yui's backbone style app framework. The official docs |
472 | -for this are highly recommended for developers: |
473 | -http://yuilibrary.com/yui/docs/app/ |
474 | +Juju-gui is based on yui's backbone style app framework. The `official docs |
475 | +<http://yuilibrary.com/yui/docs/app/>`_ are highly recommended for developers. |
476 | |
477 | An overview of the individual pieces. |
478 | |
479 | -- Router - Route dispatch by url, saves and restores url state. |
480 | - http://yuilibrary.com/yui/docs/router/ |
481 | - |
482 | -- Views - Rendering of a view |
483 | - http://yuilibrary.com/yui/docs/view/index.html |
484 | - |
485 | -- Model - Domain objects with change events |
486 | - http://yuilibrary.com/yui/docs/model/ |
487 | - http://yuilibrary.com/yui/docs/model-list/ |
488 | +- `Router <http://yuilibrary.com/yui/docs/router/>`_ - Route dispatch by url, |
489 | + saves and restores url state. |
490 | + |
491 | +- `Views <http://yuilibrary.com/yui/docs/view/index.html>`_ - Rendering of a |
492 | + view. |
493 | + |
494 | +- `Model <http://yuilibrary.com/yui/docs/model/>`_, |
495 | + `ModelList <http://yuilibrary.com/yui/docs/model-list/>`_ - Domain objects |
496 | + with change events. |
497 | |
498 | Environment Integration |
499 | -~~~~~~~~~~~~~~~~~~~~~~~ |
500 | +----------------------- |
501 | |
502 | The gui connects and communicates to the environment over a web socket |
503 | connection. |
504 | |
505 | RPC Calls |
506 | -~~~~~~~~~ |
507 | +--------- |
508 | |
509 | Completion callbacks can be used with any of the methods on the environment. |
510 | Multiple calls are done in parallel. |
511 | |
512 | RPC Events |
513 | -~~~~~~~~~~ |
514 | +---------- |
515 | |
516 | Messages from the backend for known rpc operation results are messaged out as |
517 | Environment events. |
518 | |
519 | Delta Stream |
520 | -~~~~~~~~~~~~ |
521 | +------------ |
522 | |
523 | A stream of object changes, used to update models. |
524 | |
525 | Scenarios |
526 | ---------- |
527 | +~~~~~~~~~ |
528 | |
529 | - new client |
530 | - existing client disconnects and reconnects |
531 | |
532 | Requirements |
533 | ------------- |
534 | +~~~~~~~~~~~~ |
535 | |
536 | :: |
537 | |
538 | @@ -67,14 +66,14 @@ |
539 | -- delta |
540 | |
541 | Questions |
542 | -~~~~~~~~~ |
543 | - |
544 | -Model Composition and relations. |
545 | - |
546 | -relations by id |
547 | - |
548 | -We have multiple object states for a given. |
549 | - |
550 | -Inline combo handler for yui: https://github.com/rgrove/combohandler |
551 | - |
552 | -More complicated but similiar: https://github.com/jafl/YUI-3-Stockpile |
553 | +--------- |
554 | + |
555 | +- Model Composition and relations. |
556 | + |
557 | +- relations by id |
558 | + |
559 | +- We have multiple object states for a given. |
560 | + |
561 | +- Inline combo handler for YUI: <https://github.com/rgrove/combohandler>. |
562 | + |
563 | +- More complicated but similiar: <https://github.com/jafl/YUI-3-Stockpile>. |
564 | |
565 | === modified file 'docs/d3-component-framework.rst' |
566 | --- docs/d3-component-framework.rst 2012-11-29 03:54:35 +0000 |
567 | +++ docs/d3-component-framework.rst 2012-12-12 10:07:21 +0000 |
568 | @@ -15,7 +15,7 @@ |
569 | explain this usage as it exists today. |
570 | |
571 | The framework only models two high level objects, Component and Module. A |
572 | -Component is a top level container around Module objects. The Component |
573 | +Component is a top level container around Module objects. The Component |
574 | provides the implementation of the declarative behavior provided by the |
575 | framework. The Module(s) implement the logical sections of the application. In |
576 | the YUI world it might be common to expect each Module to be the application's |
577 | @@ -76,14 +76,14 @@ |
578 | this point that any d3js synthetic events are bound to the canvas (see the |
579 | section on events below). This separation of phases exists to make the life of |
580 | the Module writer simpler. They can rely on whatever elements they'll be drawing |
581 | - (adding children to an svg object for example) will already have its container |
582 | - properly available due to the renderOnce setup. They can also be sure that |
583 | - any ``update`` driven intermediate data will be computed and available for |
584 | - use in ``render``. This reduces the need for checks in each module to assert |
585 | - the most basic DOM state. |
586 | +(adding children to an svg object for example) will already have its container |
587 | +properly available due to the renderOnce setup. They can also be sure that |
588 | +any ``update`` driven intermediate data will be computed and available for |
589 | +use in ``render``. This reduces the need for checks in each module to assert |
590 | +the most basic DOM state. |
591 | |
592 | -After the initial render its expected that updates to the scene occur via the |
593 | -event handlers in the various modules. Render will not usually need to be called |
594 | +After the initial render its expected that updates to the scene occur via the |
595 | +event handlers in the various modules. Render will not usually need to be called |
596 | more than once unless the entire Component rendering is removed from the DOM and |
597 | then later re-attached. |
598 | |
599 | |
600 | === added symlink 'docs/hacking.rst' |
601 | === target is u'../HACKING' |
602 | === modified file 'docs/index.rst' |
603 | --- docs/index.rst 2012-11-28 12:30:32 +0000 |
604 | +++ docs/index.rst 2012-12-12 10:07:21 +0000 |
605 | @@ -13,6 +13,7 @@ |
606 | :maxdepth: 2 |
607 | |
608 | readme |
609 | + hacking |
610 | style-guide |
611 | architecture |
612 | d3-component-framework |
613 | |
614 | === modified file 'docs/process.rst' |
615 | --- docs/process.rst 2012-12-10 14:20:35 +0000 |
616 | +++ docs/process.rst 2012-12-12 10:07:21 +0000 |
617 | @@ -6,9 +6,9 @@ |
618 | =============================== |
619 | |
620 | - Understand the problem. If you don't, ask and be persistent until you do. |
621 | -- When determining a solution, consider this preferred Software |
622 | - Architecture Cheat Sheet: |
623 | - http://gorban.org/post/32873465932/software-architecture-cheat-sheet |
624 | +- When determining a solution, consider this preferred `Software |
625 | + Architecture Cheat Sheet |
626 | + <http://gorban.org/post/32873465932/software-architecture-cheat-sheet>`_ |
627 | - Have a pre-implementation call with someone about your solution. If you |
628 | are not sure of your solution, prototype before the pre-implementation call. |
629 | - Use TDD. Your prototype might be perfect, but you can still move it aside |
630 | @@ -16,7 +16,7 @@ |
631 | - Update the CHANGES.yaml file with your changes. The newest (topmost) |
632 | section should have the version "unreleased". If not and you are |
633 | making changes, add an "unreleased" section at the top. All other |
634 | - version numbers follow Semantic Versioning (http://semver.org/). |
635 | + version numbers follow `Semantic Versioning <http://semver.org/>`_. |
636 | |
637 | Checklist for Preparing for a Review |
638 | ==================================== |
639 | @@ -79,8 +79,8 @@ |
640 | * Make sure that new code has tests. |
641 | * Make sure you can understand the new code. Ask for clarification if |
642 | necessary. |
643 | - * Consider the advice in this preferred Software Architecture Cheat Sheet. |
644 | - http://gorban.org/post/32873465932/software-architecture-cheat-sheet |
645 | + * Consider the advice in this preferred `Software Architecture Cheat Sheet |
646 | + <http://gorban.org/post/32873465932/software-architecture-cheat-sheet>`_ |
647 | * Make sure changes to a file correspond to the naming conventions and other |
648 | stylistic considerations local to that file, and within our project. |
649 | * Before you ask for a change, think and make sure you can't compromise |
650 | |
651 | === modified file 'docs/style-guide.rst' |
652 | --- docs/style-guide.rst 2012-11-07 18:41:11 +0000 |
653 | +++ docs/style-guide.rst 2012-12-12 10:07:21 +0000 |
654 | @@ -15,7 +15,7 @@ |
655 | indention will be applied. |
656 | |
657 | |
658 | -For loops |
659 | +For Loops |
660 | ========= |
661 | |
662 | Unless you are counting something, for loops (and for-in loops) are a trap. |
663 | @@ -29,7 +29,7 @@ |
664 | should end with a non-blank line). |
665 | |
666 | |
667 | -Object literal formatting |
668 | +Object Literal Formatting |
669 | ========================= |
670 | |
671 | Things you should do: |
672 | @@ -66,7 +66,7 @@ |
673 | errors = utils.validate(values, schema); |
674 | |
675 | |
676 | -Chaining method calls |
677 | +Chaining Method Calls |
678 | ===================== |
679 | |
680 | Some APIs are designed such that mutating method calls return the object being |
681 | @@ -160,13 +160,13 @@ |
682 | ======== |
683 | |
684 | We use YUIDoc to document the applications internals. YUIDoc comments |
685 | -start with "/**" and end with "*/". The Makefile includes a simple |
686 | +start with ``/**`` and end with ``*/``. The Makefile includes a simple |
687 | linter that enforces YUIDoc comments for each function in the |
688 | application. |
689 | |
690 | This simple linting sometimes means that functions that we might not |
691 | otherwise document require documentation. If a one-line comment is |
692 | -sufficient in those situations, a comment of this form may be used: |
693 | +sufficient in those situations, a comment of this form may be used:: |
694 | |
695 | /** Handle errors */ |
696 | error_callback: function(err) { |
697 | @@ -174,7 +174,7 @@ |
698 | } |
699 | |
700 | Most functions (or methods) will call for normal, multi-line YUIDoc |
701 | -comments like this: |
702 | +comments like this:: |
703 | |
704 | /** |
705 | * Frob the thingy. |
706 | @@ -184,5 +184,5 @@ |
707 | * @return {undefined} Side-effects only, eturns nothing. |
708 | */ |
709 | |
710 | -Full documentation for the various YUIDoc directives is at |
711 | -http://yui.github.com/yuidoc/syntax/ . |
712 | +`Full documentation <http://yui.github.com/yuidoc/syntax/>`_ |
713 | +for the various YUIDoc directives is available. |
Reviewers: mp+139226_ code.launchpad. net,
Message:
Please take a look.
Description:
Put deploy docs in README, add HACKING.
Move the development instructions from the README file to a newly
created HACKING one, update them, link the HACKING into the docs. Put
deploying instructions in the README file. Revise all docs updating
them, and fixing markup and links.
https:/ /code.launchpad .net/~teknico/ juju-gui/ 1086512- revise- docs/+merge/ 139226
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/6924047/
Affected files: re.rst component- framework. rst guide.rst
A HACKING
M README
A [revision details]
M docs/architectu
M docs/d3-
M docs/index.rst
M docs/process.rst
M docs/style-