Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-10-16 Thread Petr Vobornik

On 10/15/2013 03:30 PM, Ana Krivokapic wrote:

On 10/02/2013 02:20 PM, Petr Vobornik wrote:

On 09/16/2013 05:24 PM, Ana Krivokapic wrote:

On 09/11/2013 12:44 PM, Petr Vobornik wrote:

Hello,



snip





I looked into the documentation effort and (ruby dependency discussion aside) I
don't have any major objections. I like how the generated pages look, and they
are intuitive and easy to navigate.

A couple of nitpicks:

1) There are some spelling mistakes (e.g. Apllication_controller)

Fixed


2) Bulleted lists are not rendered nicely in the html output (see for example
the doc string for _base.Builder property 'string_mode'. I think a list needs to
look like this in the source code:

  /**
   * This is a list:
   *
   * - 'element1'
   * - 'element2'
   *
   */

as opposed to this:

  /**
   * This is a list:
   * - 'element1'
   * - 'element2'
   */



Fixed on many places. Also fixed the same issue in some code examples.

- _base.Builder doc was heavily revised
- added doc comments to ./plugin_loader

All patches are rebased but just patches 452 and 453 are changed.


Looks good, ACK.



Pushed to master

--
Petr Vobornik

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-10-15 Thread Ana Krivokapic
On 10/02/2013 02:20 PM, Petr Vobornik wrote:
 On 09/16/2013 05:24 PM, Ana Krivokapic wrote:
 On 09/11/2013 12:44 PM, Petr Vobornik wrote:
 Hello,


 snip



 I looked into the documentation effort and (ruby dependency discussion 
 aside) I
 don't have any major objections. I like how the generated pages look, and 
 they
 are intuitive and easy to navigate.

 A couple of nitpicks:

 1) There are some spelling mistakes (e.g. Apllication_controller)
 Fixed

 2) Bulleted lists are not rendered nicely in the html output (see for example
 the doc string for _base.Builder property 'string_mode'. I think a list 
 needs to
 look like this in the source code:

  /**
   * This is a list:
   *
   * - 'element1'
   * - 'element2'
   *
   */

 as opposed to this:

  /**
   * This is a list:
   * - 'element1'
   * - 'element2'
   */


 Fixed on many places. Also fixed the same issue in some code examples.

 - _base.Builder doc was heavily revised
 - added doc comments to ./plugin_loader

 All patches are rebased but just patches 452 and 453 are changed.

Looks good, ACK.

-- 
Regards,

Ana Krivokapic
Associate Software Engineer
FreeIPA team
Red Hat Inc.

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-16 Thread Martin Kosek
On 09/13/2013 08:31 PM, Dmitri Pal wrote:
 On 09/13/2013 09:12 AM, Simo Sorce wrote:
 On Fri, 2013-09-13 at 13:54 +0200, Petr Vobornik wrote:
...
 Well my concern remains that if we want to change later it will take
 some effort, but I guess it is better to have improved docs now and take
 care of the 'ruby' problem later if it becomes an issue.

 I find it amusing we have to use ruby to document javascript though, you
 would think javascript is a good enough language to do that :-D

 Simo.

 I take this as an ack for JSDuck.

Right. Until we find that using ruby is indeed a blocker or until we find some
way to get rid of ruby without degrading Web UI docs quality...

Martin

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-16 Thread Ana Krivokapic
On 09/11/2013 12:44 PM, Petr Vobornik wrote:
 Hello,

 This is a part of documentation effort which started couple month ago.
 Attached patches improves devel documentation of Web UI. Mostly by annotating
 source code and then processing it by JSDuck tool[1].

 The documentation is not complete - most plugins and member of some core
 widgets and facets are not annotated yet. I'm sending it now because I need to
 focus on more pressing tickets.

 You can see current state at my fedorapeople page [2].

 I also converted 5 guides/articles which I wrote some time ago. Guides are
 also part of the JSDuck app [3].

 The idea is to regularly generate the doc and place it on docs.freeipa.org
 (not in production at the moment) so all doc would be on one place.

 Installation of JSDuck is documented on their page [4]. Basically it requires
 ruby and JSDuck gem.

 Usage:
 $ cd install/ui/doc
 $ make

 Documentation is generated into: install/ui/build/code_doc directory

 [1] https://github.com/senchalabs/jsduck
 [2] http://pvoborni.fedorapeople.org/doc
 [3] http://pvoborni.fedorapeople.org/doc/#!/guide
 [4] https://github.com/senchalabs/jsduck/wiki/Installation


 ___
 Freeipa-devel mailing list
 Freeipa-devel@redhat.com
 https://www.redhat.com/mailman/listinfo/freeipa-devel

I looked into the documentation effort and (ruby dependency discussion aside) I
don't have any major objections. I like how the generated pages look, and they
are intuitive and easy to navigate.

A couple of nitpicks:

1) There are some spelling mistakes (e.g. Apllication_controller)

2) Bulleted lists are not rendered nicely in the html output (see for example
the doc string for _base.Builder property 'string_mode'. I think a list needs to
look like this in the source code:

/**
 * This is a list:
 *
 * - 'element1'
 * - 'element2'
 *
 */

as opposed to this:

/**
 * This is a list:
 * - 'element1'
 * - 'element2'
 */

-- 
Regards,

Ana Krivokapic
Associate Software Engineer
FreeIPA team
Red Hat Inc.

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-13 Thread Petr Vobornik

On 09/12/2013 09:22 PM, Simo Sorce wrote:

On Thu, 2013-09-12 at 14:54 -0400, Dmitri Pal wrote:

On 09/12/2013 09:14 AM, Simo Sorce wrote:

On Thu, 2013-09-12 at 07:50 +0200, Martin Kosek wrote:

On 09/11/2013 11:24 PM, Dmitri Pal wrote:

On 09/11/2013 12:28 PM, Simo Sorce wrote:

On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:

Hello,

This is a part of documentation effort which started couple month
ago.
Attached patches improves devel documentation of Web UI. Mostly by
annotating source code and then processing it by JSDuck tool[1].

The documentation is not complete - most plugins and member of some
core
widgets and facets are not annotated yet. I'm sending it now because
I
need to focus on more pressing tickets.

You can see current state at my fedorapeople page [2].

I also converted 5 guides/articles which I wrote some time ago.
Guides
are also part of the JSDuck app [3].

The idea is to regularly generate the doc and place it on
docs.freeipa.org (not in production at the moment) so all doc would
be
on one place.

Installation of JSDuck is documented on their page [4]. Basically it
requires ruby and JSDuck gem.

Usage:
$ cd install/ui/doc
$ make

Documentation is generated into: install/ui/build/code_doc directory

[1] https://github.com/senchalabs/jsduck
[2] http://pvoborni.fedorapeople.org/doc
[3] http://pvoborni.fedorapeople.org/doc/#!/guide
[4] https://github.com/senchalabs/jsduck/wiki/Installation

I would rather not grow a dependency on Ruby in the freeIPA project.
Are there any alternatives ?

Simo.


Is it dev side dependency? We might have issues if we need gems during
build process that are not a part of distro.

This is only one of the problems.


This a UI Doc building dependency, i.e. not needed when package is installed.
So someone/something doing a release and releasing the doc will need the ruby +
respective rubygem installed.

If we want to automate the build and let the doc be built for example on koji,
I am afraid we would have to step back from using jsDuck, or let Petr package
it in Fedora since he used it despite my previous warnings :-)

The problem is that ruby is still a fast moving target, and we do not
want to waste time fighiting it when (not if) it will break and you find
it just right before a release where you want to build docs.

I really would like to avoid dependencies in Ruby in this project
completely as long as possible.


Petr, we should think if we should keep UI doc and articles in devel repo or if
leave just the anonated code there and move all development articles and guides
to our new doc repo
http://www.freeipa.org/page/Contribute/Documentation

moving to the doc repo does not solve the problem, really, we are still
depending on a) ruby for generating docs, b) someone knowing Ruby to fix
things when they will break.

Simo.


It seems that doxygen does not work for JS for us.
So it is node.js vs. ruby vs. no generated docs.
Since we always can get back to no docs if things go really wrong I do
not see it as an option here.
I do not like either of the other two alternatives. And I do not know
which one would be best if any.


the probelm, if I understood it correctly is that each of this systems
have a different markup language, so switching later would mean also
changing all the markup language in the code, high churn and lot of
wasted work. I am assuming you use javadoc with javascript with doxygen,
what does jsduck uses ?


jsduck, yuidoc, jsdoc and doxygen use some flavor of javadoc. They are 
not compatible though. With regular expressions, existing comments can 
be easily converted ie. into yuidoc. But it would still require some 
additional work because jsduck leverages code introspection, but most of 
the others doesn't so one would have to add the missing information.




Or are we trying to generate just lists of functions from the actual
code ? What is the value if there is no associated description of what
the function does ?

Simo.

It's not just list of members. Added values (general and some jsduck 
specific):


- list of classes grouped by usage (main page)
- list of events which might not be regular member (just a documented one)
- descriptions for functions and properties where purpose is not clear 
from their name

- examples of usage for some classes/members
- inheritance chain parent class, mixin classes, subclasses
- info about which parent's method was overridden by a method
- search (classes, members; doesn't require server side)
- filter by member name
- filter by member type: deprecated/protected/public/inherited
- guides where you can write: 'classname.membername' and it will 
automatically make you a link do relevant doc

Doc build checks:
- check if documented type is declared
- check if member has description
- check if annotation has correct format
- check if member belongs to declared class
- check if overriden member exists
- duplicate members, params

Not sure if I should elaborate more on usecases (experiences 

Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-13 Thread Simo Sorce
On Fri, 2013-09-13 at 13:54 +0200, Petr Vobornik wrote:
 On 09/12/2013 09:22 PM, Simo Sorce wrote:
  On Thu, 2013-09-12 at 14:54 -0400, Dmitri Pal wrote:
  On 09/12/2013 09:14 AM, Simo Sorce wrote:
  On Thu, 2013-09-12 at 07:50 +0200, Martin Kosek wrote:
  On 09/11/2013 11:24 PM, Dmitri Pal wrote:
  On 09/11/2013 12:28 PM, Simo Sorce wrote:
  On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
  Hello,
 
  This is a part of documentation effort which started couple month
  ago.
  Attached patches improves devel documentation of Web UI. Mostly by
  annotating source code and then processing it by JSDuck tool[1].
 
  The documentation is not complete - most plugins and member of some
  core
  widgets and facets are not annotated yet. I'm sending it now because
  I
  need to focus on more pressing tickets.
 
  You can see current state at my fedorapeople page [2].
 
  I also converted 5 guides/articles which I wrote some time ago.
  Guides
  are also part of the JSDuck app [3].
 
  The idea is to regularly generate the doc and place it on
  docs.freeipa.org (not in production at the moment) so all doc would
  be
  on one place.
 
  Installation of JSDuck is documented on their page [4]. Basically it
  requires ruby and JSDuck gem.
 
  Usage:
  $ cd install/ui/doc
  $ make
 
  Documentation is generated into: install/ui/build/code_doc directory
 
  [1] https://github.com/senchalabs/jsduck
  [2] http://pvoborni.fedorapeople.org/doc
  [3] http://pvoborni.fedorapeople.org/doc/#!/guide
  [4] https://github.com/senchalabs/jsduck/wiki/Installation
  I would rather not grow a dependency on Ruby in the freeIPA project.
  Are there any alternatives ?
 
  Simo.
 
  Is it dev side dependency? We might have issues if we need gems during
  build process that are not a part of distro.
  This is only one of the problems.
 
  This a UI Doc building dependency, i.e. not needed when package is 
  installed.
  So someone/something doing a release and releasing the doc will need the 
  ruby +
  respective rubygem installed.
 
  If we want to automate the build and let the doc be built for example on 
  koji,
  I am afraid we would have to step back from using jsDuck, or let Petr 
  package
  it in Fedora since he used it despite my previous warnings :-)
  The problem is that ruby is still a fast moving target, and we do not
  want to waste time fighiting it when (not if) it will break and you find
  it just right before a release where you want to build docs.
 
  I really would like to avoid dependencies in Ruby in this project
  completely as long as possible.
 
  Petr, we should think if we should keep UI doc and articles in devel 
  repo or if
  leave just the anonated code there and move all development articles and 
  guides
  to our new doc repo
  http://www.freeipa.org/page/Contribute/Documentation
  moving to the doc repo does not solve the problem, really, we are still
  depending on a) ruby for generating docs, b) someone knowing Ruby to fix
  things when they will break.
 
  Simo.
 
  It seems that doxygen does not work for JS for us.
  So it is node.js vs. ruby vs. no generated docs.
  Since we always can get back to no docs if things go really wrong I do
  not see it as an option here.
  I do not like either of the other two alternatives. And I do not know
  which one would be best if any.
 
  the probelm, if I understood it correctly is that each of this systems
  have a different markup language, so switching later would mean also
  changing all the markup language in the code, high churn and lot of
  wasted work. I am assuming you use javadoc with javascript with doxygen,
  what does jsduck uses ?
 
 jsduck, yuidoc, jsdoc and doxygen use some flavor of javadoc. They are 
 not compatible though. With regular expressions, existing comments can 
 be easily converted ie. into yuidoc. But it would still require some 
 additional work because jsduck leverages code introspection, but most of 
 the others doesn't so one would have to add the missing information.
 
 
  Or are we trying to generate just lists of functions from the actual
  code ? What is the value if there is no associated description of what
  the function does ?
 
  Simo.
 
 It's not just list of members. Added values (general and some jsduck 
 specific):
 
 - list of classes grouped by usage (main page)
 - list of events which might not be regular member (just a documented one)
 - descriptions for functions and properties where purpose is not clear 
 from their name
 - examples of usage for some classes/members
 - inheritance chain parent class, mixin classes, subclasses
 - info about which parent's method was overridden by a method
 - search (classes, members; doesn't require server side)
 - filter by member name
 - filter by member type: deprecated/protected/public/inherited
 - guides where you can write: 'classname.membername' and it will 
 automatically make you a link do relevant doc
 Doc build checks:
 - check if documented type is declared
 - 

Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-13 Thread Petr Vobornik

On 09/12/2013 07:50 AM, Martin Kosek wrote:

On 09/11/2013 11:24 PM, Dmitri Pal wrote:

On 09/11/2013 12:28 PM, Simo Sorce wrote:

On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:

Hello,

This is a part of documentation effort which started couple month
ago.
Attached patches improves devel documentation of Web UI. Mostly by
annotating source code and then processing it by JSDuck tool[1].

The documentation is not complete - most plugins and member of some
core
widgets and facets are not annotated yet. I'm sending it now because
I
need to focus on more pressing tickets.

You can see current state at my fedorapeople page [2].

I also converted 5 guides/articles which I wrote some time ago.
Guides
are also part of the JSDuck app [3].

The idea is to regularly generate the doc and place it on
docs.freeipa.org (not in production at the moment) so all doc would
be
on one place.

Installation of JSDuck is documented on their page [4]. Basically it
requires ruby and JSDuck gem.

Usage:
$ cd install/ui/doc
$ make

Documentation is generated into: install/ui/build/code_doc directory

[1] https://github.com/senchalabs/jsduck
[2] http://pvoborni.fedorapeople.org/doc
[3] http://pvoborni.fedorapeople.org/doc/#!/guide
[4] https://github.com/senchalabs/jsduck/wiki/Installation


I would rather not grow a dependency on Ruby in the freeIPA project.
Are there any alternatives ?

Simo.


Is it dev side dependency? We might have issues if we need gems during
build process that are not a part of distro.


This a UI Doc building dependency, i.e. not needed when package is installed.
So someone/something doing a release and releasing the doc will need the ruby +
respective rubygem installed.

If we want to automate the build and let the doc be built for example on koji,
I am afraid we would have to step back from using jsDuck, or let Petr package
it in Fedora since he used it despite my previous warnings :-)


The question is if we want to include these docs into some freeipa-doc 
package. I don't think it's necessary. The important thing is to have it 
on the web.


Short overview of other JavaScript doc tools

JSDoc https://github.com/jsdoc3/jsdoc http://usejsdoc.org/
- runs on rhino or can be downloaded by npm
- doc comments need to be too verbose (problems with introspection of 
old class system)
- output is much worse then jsduck (can't find online example, the one 
which I generated is already gone)

- slow

ScriptDoc/AjaxDoc http://ajaxdoc.codeplex.com/
- requires .NET

YUIDoc http://developer.yahoo.com/yui/yuidoc/
- requires node.js
+ nice output http://yuilibrary.com/yui/docs/api/classes/Graph.html
- doesn't do code introspection - every information has to be in doc comment

NaturalDocs http://www.naturaldocs.org/
+ packaged
- only basic JavaScript support (no code introspection)
- don't like the output http://people.apache.org/~jkuhnert/

Doxygen
+ packaged (not sure about JS support)
- the output is pretty bad http://jsunit.berlios.de/classes.html

Dojo Doc
- output requires php
+ nice output https://dojotoolkit.org/api/
~ not sure about code introspection, most likely works only with Dojo 
classes


JSDuck
- ruby
+ IMO best output
+ sufficient code introspection - Works with older and new code
+ fast (compare to JSDoc)


Subjective comparison in specific areas:

- Writing doc comments:
  JSDuck  YUIDoc | DojoDoc | NaturalDocs  JSDoc  Doxygen

- Output (UX)
  JSDuck  YUIDoc | DojoDoc  NaturalDocs  JSDoc  Doxygen

- Packaging
  NaturalDocs | Doxygen  JSDuck | YUIDoc  JSDoc  DojoDoc




Petr, we should think if we should keep UI doc and articles in devel repo or if
leave just the anonated code there and move all development articles and guides
to our new doc repo
http://www.freeipa.org/page/Contribute/Documentation
Martin



The move can be considered only if we want to package the code doc. And 
we might then require freeipa repo for doc generation which is not good.


To avoid it we would have to remove guides from the output app. It's bad 
because it would break or make more difficult links from code [1] to 
guides and vice versa.


[1] https://github.com/senchalabs/jsduck/wiki/%40aside
--
Petr Vobornik

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-13 Thread Simo Sorce
On Thu, 2013-09-12 at 11:02 +0200, Petr Vobornik wrote:
 On 09/12/2013 07:50 AM, Martin Kosek wrote:
  On 09/11/2013 11:24 PM, Dmitri Pal wrote:
  On 09/11/2013 12:28 PM, Simo Sorce wrote:
  On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
  Hello,
 
  This is a part of documentation effort which started couple month
  ago.
  Attached patches improves devel documentation of Web UI. Mostly by
  annotating source code and then processing it by JSDuck tool[1].
 
  The documentation is not complete - most plugins and member of some
  core
  widgets and facets are not annotated yet. I'm sending it now because
  I
  need to focus on more pressing tickets.
 
  You can see current state at my fedorapeople page [2].
 
  I also converted 5 guides/articles which I wrote some time ago.
  Guides
  are also part of the JSDuck app [3].
 
  The idea is to regularly generate the doc and place it on
  docs.freeipa.org (not in production at the moment) so all doc would
  be
  on one place.
 
  Installation of JSDuck is documented on their page [4]. Basically it
  requires ruby and JSDuck gem.
 
  Usage:
  $ cd install/ui/doc
  $ make
 
  Documentation is generated into: install/ui/build/code_doc directory
 
  [1] https://github.com/senchalabs/jsduck
  [2] http://pvoborni.fedorapeople.org/doc
  [3] http://pvoborni.fedorapeople.org/doc/#!/guide
  [4] https://github.com/senchalabs/jsduck/wiki/Installation
 
  I would rather not grow a dependency on Ruby in the freeIPA project.
  Are there any alternatives ?
 
  Simo.
 
  Is it dev side dependency? We might have issues if we need gems during
  build process that are not a part of distro.
 
  This a UI Doc building dependency, i.e. not needed when package is 
  installed.
  So someone/something doing a release and releasing the doc will need the 
  ruby +
  respective rubygem installed.
 
  If we want to automate the build and let the doc be built for example on 
  koji,
  I am afraid we would have to step back from using jsDuck, or let Petr 
  package
  it in Fedora since he used it despite my previous warnings :-)
 
 The question is if we want to include these docs into some freeipa-doc 
 package. I don't think it's necessary. The important thing is to have it 
 on the web.
 
 Short overview of other JavaScript doc tools
 
 JSDoc https://github.com/jsdoc3/jsdoc http://usejsdoc.org/
 - runs on rhino or can be downloaded by npm
 - doc comments need to be too verbose (problems with introspection of 
 old class system)
 - output is much worse then jsduck (can't find online example, the one 
 which I generated is already gone)
 - slow
 
 ScriptDoc/AjaxDoc http://ajaxdoc.codeplex.com/
 - requires .NET
 
 YUIDoc http://developer.yahoo.com/yui/yuidoc/
 - requires node.js
 + nice output http://yuilibrary.com/yui/docs/api/classes/Graph.html
 - doesn't do code introspection - every information has to be in doc comment
 
 NaturalDocs http://www.naturaldocs.org/
 + packaged
 - only basic JavaScript support (no code introspection)
 - don't like the output http://people.apache.org/~jkuhnert/
 
 Doxygen
 + packaged (not sure about JS support)
 - the output is pretty bad http://jsunit.berlios.de/classes.html
 
 Dojo Doc
 - output requires php
 + nice output https://dojotoolkit.org/api/
 ~ not sure about code introspection, most likely works only with Dojo 
 classes
 
 JSDuck
 - ruby
 + IMO best output
 + sufficient code introspection - Works with older and new code
 + fast (compare to JSDoc)
 
 
 Subjective comparison in specific areas:
 
 - Writing doc comments:
JSDuck  YUIDoc | DojoDoc | NaturalDocs  JSDoc  Doxygen
 
 - Output (UX)
JSDuck  YUIDoc | DojoDoc  NaturalDocs  JSDoc  Doxygen
 
 - Packaging
NaturalDocs | Doxygen  JSDuck | YUIDoc  JSDoc  DojoDoc
 

To be honest, I would go with the old and tried doxygen, maybe we can
find a way to make the output not look too bad ?
The output you link up there is the worst thing I have ever seen, but it
is not what I have seen in most other doxygen generated outputs.

This one doesn't look bad:
https://talloc.samba.org/talloc/doc/html/group__talloc__ref.html

This is also generated by doxygen and looks ok to me:
http://dbus.freedesktop.org/doc/api/html/index.html

 
  Petr, we should think if we should keep UI doc and articles in devel repo 
  or if
  leave just the anonated code there and move all development articles and 
  guides
  to our new doc repo
  http://www.freeipa.org/page/Contribute/Documentation
  Martin
 
 
 The move can be considered only if we want to package the code doc. And 
 we might then require freeipa repo for doc generation which is not good.
 
 To avoid it we would have to remove guides from the output app. It's bad 
 because it would break or make more difficult links from code [1] to 
 guides and vice versa.
 
 [1] https://github.com/senchalabs/jsduck/wiki/%40aside

I am not sure to what case the 'bad' and 'have to remove' comemnts apply
to here, can you be more explicit ?

Simo.

-- 
Simo Sorce * Red 

Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-13 Thread Dmitri Pal
On 09/12/2013 09:14 AM, Simo Sorce wrote:
 On Thu, 2013-09-12 at 07:50 +0200, Martin Kosek wrote:
 On 09/11/2013 11:24 PM, Dmitri Pal wrote:
 On 09/11/2013 12:28 PM, Simo Sorce wrote:
 On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
 Hello,

 This is a part of documentation effort which started couple month
 ago. 
 Attached patches improves devel documentation of Web UI. Mostly by 
 annotating source code and then processing it by JSDuck tool[1].

 The documentation is not complete - most plugins and member of some
 core 
 widgets and facets are not annotated yet. I'm sending it now because
 I 
 need to focus on more pressing tickets.

 You can see current state at my fedorapeople page [2].

 I also converted 5 guides/articles which I wrote some time ago.
 Guides 
 are also part of the JSDuck app [3].

 The idea is to regularly generate the doc and place it on 
 docs.freeipa.org (not in production at the moment) so all doc would
 be 
 on one place.

 Installation of JSDuck is documented on their page [4]. Basically it 
 requires ruby and JSDuck gem.

 Usage:
 $ cd install/ui/doc
 $ make

 Documentation is generated into: install/ui/build/code_doc directory

 [1] https://github.com/senchalabs/jsduck
 [2] http://pvoborni.fedorapeople.org/doc
 [3] http://pvoborni.fedorapeople.org/doc/#!/guide
 [4] https://github.com/senchalabs/jsduck/wiki/Installation 
 I would rather not grow a dependency on Ruby in the freeIPA project.
 Are there any alternatives ?

 Simo.

 Is it dev side dependency? We might have issues if we need gems during
 build process that are not a part of distro.
 This is only one of the problems.

 This a UI Doc building dependency, i.e. not needed when package is installed.
 So someone/something doing a release and releasing the doc will need the 
 ruby +
 respective rubygem installed.

 If we want to automate the build and let the doc be built for example on 
 koji,
 I am afraid we would have to step back from using jsDuck, or let Petr package
 it in Fedora since he used it despite my previous warnings :-)
 The problem is that ruby is still a fast moving target, and we do not
 want to waste time fighiting it when (not if) it will break and you find
 it just right before a release where you want to build docs.

 I really would like to avoid dependencies in Ruby in this project
 completely as long as possible.

 Petr, we should think if we should keep UI doc and articles in devel repo or 
 if
 leave just the anonated code there and move all development articles and 
 guides
 to our new doc repo
 http://www.freeipa.org/page/Contribute/Documentation
 moving to the doc repo does not solve the problem, really, we are still
 depending on a) ruby for generating docs, b) someone knowing Ruby to fix
 things when they will break.

 Simo.

It seems that doxygen does not work for JS for us.
So it is node.js vs. ruby vs. no generated docs.
Since we always can get back to no docs if things go really wrong I do
not see it as an option here.
I do not like either of the other two alternatives. And I do not know
which one would be best if any.

-- 
Thank you,
Dmitri Pal

Sr. Engineering Manager for IdM portfolio
Red Hat Inc.


---
Looking to carve out IT costs?
www.redhat.com/carveoutcosts/



___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-13 Thread Dmitri Pal
On 09/12/2013 03:22 PM, Simo Sorce wrote:
 On Thu, 2013-09-12 at 14:54 -0400, Dmitri Pal wrote:
 On 09/12/2013 09:14 AM, Simo Sorce wrote:
 On Thu, 2013-09-12 at 07:50 +0200, Martin Kosek wrote:
 On 09/11/2013 11:24 PM, Dmitri Pal wrote:
 On 09/11/2013 12:28 PM, Simo Sorce wrote:
 On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
 Hello,

 This is a part of documentation effort which started couple month
 ago. 
 Attached patches improves devel documentation of Web UI. Mostly by 
 annotating source code and then processing it by JSDuck tool[1].

 The documentation is not complete - most plugins and member of some
 core 
 widgets and facets are not annotated yet. I'm sending it now because
 I 
 need to focus on more pressing tickets.

 You can see current state at my fedorapeople page [2].

 I also converted 5 guides/articles which I wrote some time ago.
 Guides 
 are also part of the JSDuck app [3].

 The idea is to regularly generate the doc and place it on 
 docs.freeipa.org (not in production at the moment) so all doc would
 be 
 on one place.

 Installation of JSDuck is documented on their page [4]. Basically it 
 requires ruby and JSDuck gem.

 Usage:
 $ cd install/ui/doc
 $ make

 Documentation is generated into: install/ui/build/code_doc directory

 [1] https://github.com/senchalabs/jsduck
 [2] http://pvoborni.fedorapeople.org/doc
 [3] http://pvoborni.fedorapeople.org/doc/#!/guide
 [4] https://github.com/senchalabs/jsduck/wiki/Installation 
 I would rather not grow a dependency on Ruby in the freeIPA project.
 Are there any alternatives ?

 Simo.

 Is it dev side dependency? We might have issues if we need gems during
 build process that are not a part of distro.
 This is only one of the problems.

 This a UI Doc building dependency, i.e. not needed when package is 
 installed.
 So someone/something doing a release and releasing the doc will need the 
 ruby +
 respective rubygem installed.

 If we want to automate the build and let the doc be built for example on 
 koji,
 I am afraid we would have to step back from using jsDuck, or let Petr 
 package
 it in Fedora since he used it despite my previous warnings :-)
 The problem is that ruby is still a fast moving target, and we do not
 want to waste time fighiting it when (not if) it will break and you find
 it just right before a release where you want to build docs.

 I really would like to avoid dependencies in Ruby in this project
 completely as long as possible.

 Petr, we should think if we should keep UI doc and articles in devel repo 
 or if
 leave just the anonated code there and move all development articles and 
 guides
 to our new doc repo
 http://www.freeipa.org/page/Contribute/Documentation
 moving to the doc repo does not solve the problem, really, we are still
 depending on a) ruby for generating docs, b) someone knowing Ruby to fix
 things when they will break.

 Simo.

 It seems that doxygen does not work for JS for us.
 So it is node.js vs. ruby vs. no generated docs.
 Since we always can get back to no docs if things go really wrong I do
 not see it as an option here.
 I do not like either of the other two alternatives. And I do not know
 which one would be best if any.
 the probelm, if I understood it correctly is that each of this systems
 have a different markup language, so switching later would mean also
 changing all the markup language in the code, high churn and lot of
 wasted work. I am assuming you use javadoc with javascript with doxygen,
 what does jsduck uses ?

 Or are we trying to generate just lists of functions from the actual
 code ? What is the value if there is no associated description of what
 the function does ?

I think there are comments that he already added that come with
functions that he is trying to extract.


 Simo.



-- 
Thank you,
Dmitri Pal

Sr. Engineering Manager for IdM portfolio
Red Hat Inc.


---
Looking to carve out IT costs?
www.redhat.com/carveoutcosts/



___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-13 Thread Dmitri Pal
On 09/13/2013 09:12 AM, Simo Sorce wrote:
 On Fri, 2013-09-13 at 13:54 +0200, Petr Vobornik wrote:
 On 09/12/2013 09:22 PM, Simo Sorce wrote:
 On Thu, 2013-09-12 at 14:54 -0400, Dmitri Pal wrote:
 On 09/12/2013 09:14 AM, Simo Sorce wrote:
 On Thu, 2013-09-12 at 07:50 +0200, Martin Kosek wrote:
 On 09/11/2013 11:24 PM, Dmitri Pal wrote:
 On 09/11/2013 12:28 PM, Simo Sorce wrote:
 On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
 Hello,

 This is a part of documentation effort which started couple month
 ago.
 Attached patches improves devel documentation of Web UI. Mostly by
 annotating source code and then processing it by JSDuck tool[1].

 The documentation is not complete - most plugins and member of some
 core
 widgets and facets are not annotated yet. I'm sending it now because
 I
 need to focus on more pressing tickets.

 You can see current state at my fedorapeople page [2].

 I also converted 5 guides/articles which I wrote some time ago.
 Guides
 are also part of the JSDuck app [3].

 The idea is to regularly generate the doc and place it on
 docs.freeipa.org (not in production at the moment) so all doc would
 be
 on one place.

 Installation of JSDuck is documented on their page [4]. Basically it
 requires ruby and JSDuck gem.

 Usage:
 $ cd install/ui/doc
 $ make

 Documentation is generated into: install/ui/build/code_doc directory

 [1] https://github.com/senchalabs/jsduck
 [2] http://pvoborni.fedorapeople.org/doc
 [3] http://pvoborni.fedorapeople.org/doc/#!/guide
 [4] https://github.com/senchalabs/jsduck/wiki/Installation
 I would rather not grow a dependency on Ruby in the freeIPA project.
 Are there any alternatives ?

 Simo.

 Is it dev side dependency? We might have issues if we need gems during
 build process that are not a part of distro.
 This is only one of the problems.

 This a UI Doc building dependency, i.e. not needed when package is 
 installed.
 So someone/something doing a release and releasing the doc will need the 
 ruby +
 respective rubygem installed.

 If we want to automate the build and let the doc be built for example on 
 koji,
 I am afraid we would have to step back from using jsDuck, or let Petr 
 package
 it in Fedora since he used it despite my previous warnings :-)
 The problem is that ruby is still a fast moving target, and we do not
 want to waste time fighiting it when (not if) it will break and you find
 it just right before a release where you want to build docs.

 I really would like to avoid dependencies in Ruby in this project
 completely as long as possible.

 Petr, we should think if we should keep UI doc and articles in devel 
 repo or if
 leave just the anonated code there and move all development articles and 
 guides
 to our new doc repo
 http://www.freeipa.org/page/Contribute/Documentation
 moving to the doc repo does not solve the problem, really, we are still
 depending on a) ruby for generating docs, b) someone knowing Ruby to fix
 things when they will break.

 Simo.

 It seems that doxygen does not work for JS for us.
 So it is node.js vs. ruby vs. no generated docs.
 Since we always can get back to no docs if things go really wrong I do
 not see it as an option here.
 I do not like either of the other two alternatives. And I do not know
 which one would be best if any.
 the probelm, if I understood it correctly is that each of this systems
 have a different markup language, so switching later would mean also
 changing all the markup language in the code, high churn and lot of
 wasted work. I am assuming you use javadoc with javascript with doxygen,
 what does jsduck uses ?
 jsduck, yuidoc, jsdoc and doxygen use some flavor of javadoc. They are 
 not compatible though. With regular expressions, existing comments can 
 be easily converted ie. into yuidoc. But it would still require some 
 additional work because jsduck leverages code introspection, but most of 
 the others doesn't so one would have to add the missing information.

 Or are we trying to generate just lists of functions from the actual
 code ? What is the value if there is no associated description of what
 the function does ?

 Simo.

 It's not just list of members. Added values (general and some jsduck 
 specific):

 - list of classes grouped by usage (main page)
 - list of events which might not be regular member (just a documented one)
 - descriptions for functions and properties where purpose is not clear 
 from their name
 - examples of usage for some classes/members
 - inheritance chain parent class, mixin classes, subclasses
 - info about which parent's method was overridden by a method
 - search (classes, members; doesn't require server side)
 - filter by member name
 - filter by member type: deprecated/protected/public/inherited
 - guides where you can write: 'classname.membername' and it will 
 automatically make you a link do relevant doc
 Doc build checks:
 - check if documented type is declared
 - check if member has description
 - check if annotation has 

Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-12 Thread Simo Sorce
On Thu, 2013-09-12 at 07:50 +0200, Martin Kosek wrote:
 On 09/11/2013 11:24 PM, Dmitri Pal wrote:
  On 09/11/2013 12:28 PM, Simo Sorce wrote:
  On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
  Hello,
 
  This is a part of documentation effort which started couple month
  ago. 
  Attached patches improves devel documentation of Web UI. Mostly by 
  annotating source code and then processing it by JSDuck tool[1].
 
  The documentation is not complete - most plugins and member of some
  core 
  widgets and facets are not annotated yet. I'm sending it now because
  I 
  need to focus on more pressing tickets.
 
  You can see current state at my fedorapeople page [2].
 
  I also converted 5 guides/articles which I wrote some time ago.
  Guides 
  are also part of the JSDuck app [3].
 
  The idea is to regularly generate the doc and place it on 
  docs.freeipa.org (not in production at the moment) so all doc would
  be 
  on one place.
 
  Installation of JSDuck is documented on their page [4]. Basically it 
  requires ruby and JSDuck gem.
 
  Usage:
  $ cd install/ui/doc
  $ make
 
  Documentation is generated into: install/ui/build/code_doc directory
 
  [1] https://github.com/senchalabs/jsduck
  [2] http://pvoborni.fedorapeople.org/doc
  [3] http://pvoborni.fedorapeople.org/doc/#!/guide
  [4] https://github.com/senchalabs/jsduck/wiki/Installation 
 
  I would rather not grow a dependency on Ruby in the freeIPA project.
  Are there any alternatives ?
 
  Simo.
 
  Is it dev side dependency? We might have issues if we need gems during
  build process that are not a part of distro.

This is only one of the problems.

 This a UI Doc building dependency, i.e. not needed when package is installed.
 So someone/something doing a release and releasing the doc will need the ruby 
 +
 respective rubygem installed.
 
 If we want to automate the build and let the doc be built for example on koji,
 I am afraid we would have to step back from using jsDuck, or let Petr package
 it in Fedora since he used it despite my previous warnings :-)

The problem is that ruby is still a fast moving target, and we do not
want to waste time fighiting it when (not if) it will break and you find
it just right before a release where you want to build docs.

I really would like to avoid dependencies in Ruby in this project
completely as long as possible.

 Petr, we should think if we should keep UI doc and articles in devel repo or 
 if
 leave just the anonated code there and move all development articles and 
 guides
 to our new doc repo
 http://www.freeipa.org/page/Contribute/Documentation

moving to the doc repo does not solve the problem, really, we are still
depending on a) ruby for generating docs, b) someone knowing Ruby to fix
things when they will break.

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-12 Thread Simo Sorce
On Thu, 2013-09-12 at 14:54 -0400, Dmitri Pal wrote:
 On 09/12/2013 09:14 AM, Simo Sorce wrote:
  On Thu, 2013-09-12 at 07:50 +0200, Martin Kosek wrote:
  On 09/11/2013 11:24 PM, Dmitri Pal wrote:
  On 09/11/2013 12:28 PM, Simo Sorce wrote:
  On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
  Hello,
 
  This is a part of documentation effort which started couple month
  ago. 
  Attached patches improves devel documentation of Web UI. Mostly by 
  annotating source code and then processing it by JSDuck tool[1].
 
  The documentation is not complete - most plugins and member of some
  core 
  widgets and facets are not annotated yet. I'm sending it now because
  I 
  need to focus on more pressing tickets.
 
  You can see current state at my fedorapeople page [2].
 
  I also converted 5 guides/articles which I wrote some time ago.
  Guides 
  are also part of the JSDuck app [3].
 
  The idea is to regularly generate the doc and place it on 
  docs.freeipa.org (not in production at the moment) so all doc would
  be 
  on one place.
 
  Installation of JSDuck is documented on their page [4]. Basically it 
  requires ruby and JSDuck gem.
 
  Usage:
  $ cd install/ui/doc
  $ make
 
  Documentation is generated into: install/ui/build/code_doc directory
 
  [1] https://github.com/senchalabs/jsduck
  [2] http://pvoborni.fedorapeople.org/doc
  [3] http://pvoborni.fedorapeople.org/doc/#!/guide
  [4] https://github.com/senchalabs/jsduck/wiki/Installation 
  I would rather not grow a dependency on Ruby in the freeIPA project.
  Are there any alternatives ?
 
  Simo.
 
  Is it dev side dependency? We might have issues if we need gems during
  build process that are not a part of distro.
  This is only one of the problems.
 
  This a UI Doc building dependency, i.e. not needed when package is 
  installed.
  So someone/something doing a release and releasing the doc will need the 
  ruby +
  respective rubygem installed.
 
  If we want to automate the build and let the doc be built for example on 
  koji,
  I am afraid we would have to step back from using jsDuck, or let Petr 
  package
  it in Fedora since he used it despite my previous warnings :-)
  The problem is that ruby is still a fast moving target, and we do not
  want to waste time fighiting it when (not if) it will break and you find
  it just right before a release where you want to build docs.
 
  I really would like to avoid dependencies in Ruby in this project
  completely as long as possible.
 
  Petr, we should think if we should keep UI doc and articles in devel repo 
  or if
  leave just the anonated code there and move all development articles and 
  guides
  to our new doc repo
  http://www.freeipa.org/page/Contribute/Documentation
  moving to the doc repo does not solve the problem, really, we are still
  depending on a) ruby for generating docs, b) someone knowing Ruby to fix
  things when they will break.
 
  Simo.
 
 It seems that doxygen does not work for JS for us.
 So it is node.js vs. ruby vs. no generated docs.
 Since we always can get back to no docs if things go really wrong I do
 not see it as an option here.
 I do not like either of the other two alternatives. And I do not know
 which one would be best if any.

the probelm, if I understood it correctly is that each of this systems
have a different markup language, so switching later would mean also
changing all the markup language in the code, high churn and lot of
wasted work. I am assuming you use javadoc with javascript with doxygen,
what does jsduck uses ?

Or are we trying to generate just lists of functions from the actual
code ? What is the value if there is no associated description of what
the function does ?

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-11 Thread Simo Sorce
On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
 Hello,
 
 This is a part of documentation effort which started couple month
 ago. 
 Attached patches improves devel documentation of Web UI. Mostly by 
 annotating source code and then processing it by JSDuck tool[1].
 
 The documentation is not complete - most plugins and member of some
 core 
 widgets and facets are not annotated yet. I'm sending it now because
 I 
 need to focus on more pressing tickets.
 
 You can see current state at my fedorapeople page [2].
 
 I also converted 5 guides/articles which I wrote some time ago.
 Guides 
 are also part of the JSDuck app [3].
 
 The idea is to regularly generate the doc and place it on 
 docs.freeipa.org (not in production at the moment) so all doc would
 be 
 on one place.
 
 Installation of JSDuck is documented on their page [4]. Basically it 
 requires ruby and JSDuck gem.
 
 Usage:
 $ cd install/ui/doc
 $ make
 
 Documentation is generated into: install/ui/build/code_doc directory
 
 [1] https://github.com/senchalabs/jsduck
 [2] http://pvoborni.fedorapeople.org/doc
 [3] http://pvoborni.fedorapeople.org/doc/#!/guide
 [4] https://github.com/senchalabs/jsduck/wiki/Installation 


I would rather not grow a dependency on Ruby in the freeIPA project.
Are there any alternatives ?

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-11 Thread Dmitri Pal
On 09/11/2013 12:28 PM, Simo Sorce wrote:
 On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
 Hello,

 This is a part of documentation effort which started couple month
 ago. 
 Attached patches improves devel documentation of Web UI. Mostly by 
 annotating source code and then processing it by JSDuck tool[1].

 The documentation is not complete - most plugins and member of some
 core 
 widgets and facets are not annotated yet. I'm sending it now because
 I 
 need to focus on more pressing tickets.

 You can see current state at my fedorapeople page [2].

 I also converted 5 guides/articles which I wrote some time ago.
 Guides 
 are also part of the JSDuck app [3].

 The idea is to regularly generate the doc and place it on 
 docs.freeipa.org (not in production at the moment) so all doc would
 be 
 on one place.

 Installation of JSDuck is documented on their page [4]. Basically it 
 requires ruby and JSDuck gem.

 Usage:
 $ cd install/ui/doc
 $ make

 Documentation is generated into: install/ui/build/code_doc directory

 [1] https://github.com/senchalabs/jsduck
 [2] http://pvoborni.fedorapeople.org/doc
 [3] http://pvoborni.fedorapeople.org/doc/#!/guide
 [4] https://github.com/senchalabs/jsduck/wiki/Installation 

 I would rather not grow a dependency on Ruby in the freeIPA project.
 Are there any alternatives ?

 Simo.

Is it dev side dependency? We might have issues if we need gems during
build process that are not a part of distro.

-- 
Thank you,
Dmitri Pal

Sr. Engineering Manager for IdM portfolio
Red Hat Inc.


---
Looking to carve out IT costs?
www.redhat.com/carveoutcosts/



___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 451-458 Web UI devel and source code documentation

2013-09-11 Thread Martin Kosek
On 09/11/2013 11:24 PM, Dmitri Pal wrote:
 On 09/11/2013 12:28 PM, Simo Sorce wrote:
 On Wed, 2013-09-11 at 12:44 +0200, Petr Vobornik wrote:
 Hello,

 This is a part of documentation effort which started couple month
 ago. 
 Attached patches improves devel documentation of Web UI. Mostly by 
 annotating source code and then processing it by JSDuck tool[1].

 The documentation is not complete - most plugins and member of some
 core 
 widgets and facets are not annotated yet. I'm sending it now because
 I 
 need to focus on more pressing tickets.

 You can see current state at my fedorapeople page [2].

 I also converted 5 guides/articles which I wrote some time ago.
 Guides 
 are also part of the JSDuck app [3].

 The idea is to regularly generate the doc and place it on 
 docs.freeipa.org (not in production at the moment) so all doc would
 be 
 on one place.

 Installation of JSDuck is documented on their page [4]. Basically it 
 requires ruby and JSDuck gem.

 Usage:
 $ cd install/ui/doc
 $ make

 Documentation is generated into: install/ui/build/code_doc directory

 [1] https://github.com/senchalabs/jsduck
 [2] http://pvoborni.fedorapeople.org/doc
 [3] http://pvoborni.fedorapeople.org/doc/#!/guide
 [4] https://github.com/senchalabs/jsduck/wiki/Installation 

 I would rather not grow a dependency on Ruby in the freeIPA project.
 Are there any alternatives ?

 Simo.

 Is it dev side dependency? We might have issues if we need gems during
 build process that are not a part of distro.

This a UI Doc building dependency, i.e. not needed when package is installed.
So someone/something doing a release and releasing the doc will need the ruby +
respective rubygem installed.

If we want to automate the build and let the doc be built for example on koji,
I am afraid we would have to step back from using jsDuck, or let Petr package
it in Fedora since he used it despite my previous warnings :-)

Petr, we should think if we should keep UI doc and articles in devel repo or if
leave just the anonated code there and move all development articles and guides
to our new doc repo
http://www.freeipa.org/page/Contribute/Documentation

Martin

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel