+1. Before embarking on this work, we need to have a very clear strategy for how we get the generated documentation into the Widget Library and execute aimed at that goal, without getting too distracted by other methods of delivering the documentation.

Thanks,
Nicolaas


On 24 Jul 2012, at 10:03, Bert Pareyn wrote:


Hey all,

To make the JSDocs available in a better way there’s a couple of things we could do. There’s a few things we need to take into account when implementing this and making it available to the public.
Keep the documentation up to date by regenerating it on every commit;
Expose a JSON Feed to the widget SDK that renders the documentation (uses same style as the rest of the SDK) When a release is cut the documentation for that release should be generated and archived; Keep the documentation in a place where all developers will find it (Widget SDK)
Make documentation downloadable (PDF/Print CSS)
Use the Widget Library server to generate documentation
Keeps the docs in one space, easier maintenance
In the long run we want to move other documents to this space as well (Release notes etc.) It’s important to keep in mind that a lot of people won’t be developing on the current master branch but on a release. The default API documentation shown should be the documentation for the latest release. People can still switch to the documentation for the master branch if they would like to.

The structure in the SDK could be something like:
API & Endpoints
Front-end API (this would be the latest release)
Back-end endpoints (this would be the latest release)
3rd party libraries
Previous releases and trunk (This could have pages of documentation or just a zip file containing the archived documentation) I will convert the feedback on this proposal to JIRA tickets by the end of the week, all suggestions and improvements are welcome.

- Bert

On 23 Jul 2012, at 10:15, Bert Pareyn wrote:


Hey Christian,

Thanks for bringing this to list.
For the documentation to be more useful than just grabbing the code and reading the JSDoc the formatting should change (as you already pointed out, +1). It should be available in a place where developers will go to when creating a widget (the widget SDK), not on yet another different URL. As Nico mentioned, the API's are the functions we really want to have that documentation for.

I think that in the long run, we'll want to move release documentation and all docs related to it to the SDK as well. That means having a separate section that shows the generated docs for each release version as well as a description of what's changed (basically the same as goes on to the Sakai project site and listS now, but archived and consolidated in one place). I think the idea of having a JSON structure available to the widget library is a good idea. Maybe we can make use of the widget library server to generate the documentation.

- Bert

On 20 Jul 2012, at 19:36, Christian Vuerings wrote:

Thanks for your responses.
I've put some comments inline:

@Nico:
Looking at [1], it doesn't look like the current output is all that useful,

Yes, that seems very similar to what I mentioned:
It doesn't look very good [1] & isn't that useful atm but I just wanted to get the automation process right.

My mail wasn't really about the current output, just about the process.

In order to improve the output we need to:
update to JSDoc3 [4], update the JavaScript annotations & create a new template.

In my mind, this means not exposing the documentation of individual widgets, as most of those are internal methods, and focussing on exposing the documentation of our core API functions.
Here and below you're repeating what I said on the UI Dev call, so I definitely agree. The thing we decided on was to wait with that until the formatting happened.

Once we do that, I think it makes sense to think about how we can feed the documentation seamlessly into the Widget SDK, as it would be good if we could continue to use that as a single point of information for widget developers and not introduce another location where data can be found.

That would indeed be ideal but I'm not sure yet what the best way to do this would be. We could perhaps expose a JSON structure that the SDK reads in, use an iframe or directly replace the HTML file and do that on every commit. I think each of those is possible but it's a tradeoff between time & ease of implementation. I created a jira ticket for this where we can continue the discussion for this particular feature [1]

@Alan
For JavaDoc there is a JavaDoc diff tool that tells you what are the differences between API versions. I dont suppose that that can built into the autodoc generation?
Afaik JSDoc3 doesn't have a tool for this feature yet but I really like the idea. The current process puts everything in GitHub so in theory it should be possible to create something like this.
We could also start using the @since annotation.

I also created an umbrella Jira to track the process of the most critical features [2]


- Christian

[1] https://jira.sakaiproject.org/browse/SAKIII-6030
[2] https://jira.sakaiproject.org/browse/SAKIII-6027

On Jul 20, 2012, at 3:53 AM, Nicolaas Matthijs wrote:

Hi Christian,

Looking at [1], it doesn't look like the current output is all that useful, which is often the case with automatically generated documentation. I would suggest that we focus on what is really useful and what people (especially outside the project) really need. In my mind, this means not exposing the documentation of individual widgets, as most of those are internal methods, and focussing on exposing the documentation of our core API functions.

Once we do that, I think it makes sense to think about how we can feed the documentation seamlessly into the Widget SDK, as it would be good if we could continue to use that as a single point of information for widget developers and not introduce another location where data can be found.

Hope that helps,
Nicolaas



On 20 Jul 2012, at 04:58, Christian Vuerings wrote:

Hey everyone,

One thing I've been wanting to do for a long time is to automatically generate documentation for our JavaScript API.
This should/would happen for every change we make.

For now I've been using the current (old) generation tool to explore this idea. It doesn't look very good [1] & isn't that useful atm but I just wanted to get the automation process right.

The ultimate goal is to create something visually more appealing & useful like [2] or [3]. We will need to update to JSDoc3 [4], update the JavaScript annotations & create a new template. This will normally happen just after we make the formatting changes.

The current automatic workflow:
1) Push a change to GitHub (currently the jsdoc branch of christian/3akai-ux [5])
2) Trigger a POST to a Jenkins Hook [6]
3) Build the maven sakai-documentation profile [7]
4) Make a commit to the gh-pages branch of christianv/oae-jsdocs [8]
5) Build the GitHub page [1]

We already have documentation for this API at [9] but the main issue with it, is that it's static. Which means we have duplication, it'll almost always be out of date & is not easy to maintain.

Would love to hear your thoughts about this.
Especially about what you would like to see & how I can improve the automatic workflow.

So far I heard:
- support for different OAE versions (Bert)
- more examples within the docs (Scot)


- Christian

[1] http://christianv.github.com/oae-jsdocs/jsdoc/
[2] http://www.fullscale.co/jsdocs/c9.html
[3] http://xueduany.github.com/jsdoc/out/$Kit.Animation.html
[4] https://github.com/jsdoc3/jsdoc
[5] https://github.com/christianv/3akai-ux/tree/jsdoc
[6] https://sakai-oae.ci.cloudbees.com/github-webhook/
[7] https://github.com/christianv/3akai-ux/blob/jsdoc/pom-bundle.xml #L51
[8] https://github.com/christianv/oae-jsdocs
[9] http://oae-widgets.sakaiproject.org/sdk/api/frontend
_______________________________________________
oae-dev mailing list
[email protected]
http://collab.sakaiproject.org/mailman/listinfo/oae-dev


_______________________________________________
oae-dev mailing list
[email protected]
http://collab.sakaiproject.org/mailman/listinfo/oae-dev

_______________________________________________
oae-dev mailing list
[email protected]
http://collab.sakaiproject.org/mailman/listinfo/oae-dev

_______________________________________________
oae-dev mailing list
[email protected]
http://collab.sakaiproject.org/mailman/listinfo/oae-dev

_______________________________________________
oae-dev mailing list
[email protected]
http://collab.sakaiproject.org/mailman/listinfo/oae-dev

Reply via email to