That's a good suggestion. One thing I want to point out that Builtins.java
[1] contains all the dml-bodied and java-bodied built-ins. For the dml
built-ins, it is easier to parse the corresponding dml script (if
documentation is available there), but for other built-ins, I am not aware
of any particular source today where they are documented -- a few of them
are documented as a part of commit message but not all.
Though it is certainly possible to slice the dml builtins from [1] out, but
it will be awesome to generate docs for all of those.

[1]
https://github.com/apache/systemml/blob/master/src/main/java/org/apache/sysds/common/Builtins.java

Regards,
Arnab..

On Thu, Jun 4, 2020 at 12:44 PM Baunsgaard, Sebastian <baunsga...@tugraz.at>
wrote:

> Hi dev team!
>
>
> Update / suggestion.
>
>
> First of all, i think it is great that we have people working on our
> documentation. It is really important. But I can't help to note that the
> improvements, are going in an unmaintainable direction where we have to
> maintain the documentation at multiple locations.
>
>
> For instance our new toOneHot function already had some basic
> documentation inside its build-in script already [1], it would be much
> nicer if we modified that and then had some automation to generate the docs
> made in commit [2]. Now we have to maintain two locations, resulting in
> high risk of either being outdated.
>
>
> We need to ask ourselves where do we want to make the edit of
> documentation. I would argue that it should be located as close to the
> internal definition of a function, because then when making or modifying
> that function the documentation is also reviewed.
>
>
> To achieve this i suggest that we instead relocate the documentation
> source and generation to an appropriately named file inside [3], that
> simply loops through all function definitions from [4], and generate
> markdown files for our /docs/ folder.
>
>
> Shifting to such an implementation enables us to systematically cover all
> functions defined in the system. It also is a full list of the systems
> current build-in functions thereby giving us the exact file paths to
> extract the source documentation from the comments and generate the docs
> for those files.
>
> In the future it could be extended to verify and detecting which input and
> output types each function definition has, such that we have even less
> manual documentation needs.
>
>
> Best regards
>
> Sebastian
>
>
> [1]
> https://github.com/apache/systemml/blob/master/scripts/builtin/toOneHot.dml
>
> [2]
> https://github.com/apache/systemml/commit/859ad3a72906c67b7300c9980251da4cde9ed8f8
>
> [3]
> https://github.com/apache/systemml/tree/master/src/main/java/org/apache/sysds/common
>
> [4]
> https://github.com/apache/systemml/blob/master/src/main/java/org/apache/sysds/common/Builtins.java
>
>
> ________________________________
> From: arnab phani <phaniar...@gmail.com>
> Sent: Sunday, May 31, 2020 3:15:44 PM
> To: dev@systemml.apache.org
> Subject: Re: [DISCUSSION] Website stack `systemml.apache.org`. Thanks.
>
> Hi,
>
> Another advantage of markdown syntax is that it gives more freedom to add a
> description as needed. Java methods and builtins might not fall in the same
> bucket and different builtins might need different ways to describe it.
> For example, glm needs more details than other built-ins. Too much
> standardization can be a bad idea.
>
> Regards,
> Arnab.
>
> On Sun, May 31, 2020 at 9:55 AM Baunsgaard, Sebastian <
> baunsga...@tugraz.at>
> wrote:
>
> > Hi Janardhan,
> >
> >
> > That would be one option, lets call it option 1, I have another
> suggestion:
> >
> >
> >   1.  Markdown syntax with out commented individual lines.
> >   2.  Jdoc like syntax with annotations
> >
> > Pros and cons
> >
> >   *   1 Pros
> >      *   Easy Syntax most ppl know it.
> >      *   Easy to  implement.
> >   *   1 Cons
> >      *   Enables custom docs (everyone make their own distinct format
> > again)
> >      *   No standard way of verifying correctness of the docs (correct
> > parameter names etc.)
> >      *   No standard way of marking Input, return parameters.
> >      *   Requires modified Syntax with # at each line. where # normally
> > means header in markdown
> >   *   2 Pros
> >      *   Easy Syntax Java ppl know it
> >      *   Standard way of making input
> >      *   Do not have to change any syntax at all from Jdoc
> >      *   Already supported syntax in DML
> >   *   2 Cons
> >      *   Harder to implement since one would have to look into java doc
> > extraction and what is needed to support that, maybe we have to make
> such a
> > thing ourselves?
> >
> > I personally like option 2 with Jdoc more and then extending into
> > automatically parsing and making the either markdown files or HTML files
> > for the docs that you either way have to do in option 1.
> >
> > Best regards
> > Sebastian
> > ________________________________
> > From: Janardhan <janardhan.pulivar...@gmail.com>
> > Sent: Sunday, May 31, 2020 9:25:43 AM
> > To: dev@systemml.apache.org
> > Subject: Re: [DISCUSSION] Website stack `systemml.apache.org`. Thanks.
> >
> > Hi Sebastian, :)
> >
> > Since the builtin DML files do not have full documentation yet, Can we
> > write
> > markdown syntax with the following heading in each dml file itself!
> >
> > 1. Function description
> > 2. Usage
> > 3. Arguments
> > 4. Returns
> > 5. Usage
> >
> > After that, as you've mentioned can be parsed with only removing # at the
> > start of each line, and write
> > all this data to one `builtins-reference.md` file.
> >
> > Thank you,
> > Janardhan
> >
> > On Tue, May 26, 2020 at 5:05 PM Baunsgaard, Sebastian <
> > baunsga...@tugraz.at>
> > wrote:
> >
> > >
> > > If this is meant as a question then, yes from me (this probably calls
> for
> > > a vote?), if:
> > >
> > >
> > >   1.  someone is able to change the settings for the repository, to use
> > > the docs folder as the GitHub docs folder.
> > >   2.  someone wants to make a PR containing the content of the gh-pages
> > > branch.
> > >
> > > Best regards
> > > Sebastian
> > > ________________________________
> > > From: Janardhan <janardhan.pulivar...@gmail.com>
> > > Sent: Tuesday, May 26, 2020 1:22:11 PM
> > > To: dev@systemml.apache.org
> > > Subject: Re: [DISCUSSION] Website stack `systemml.apache.org`. Thanks.
> > >
> > > Hi Sebastian,
> > >
> > > Can we move the `docs` folder in the existing `master` branch
> > > and merge the `gh-pages` branch to `docs` folder in the top-level
> > > directory. :)
> > >
> > > - Janardhan
> > >
> > > On Sun, May 24, 2020 at 3:28 PM Baunsgaard, Sebastian <
> > > baunsga...@tugraz.at>
> > > wrote:
> > >
> > > > Hi Janardhan,
> > > >
> > > >
> > > > Reworking the documentation seems like a really good idea!
> > > >
> > > >
> > > > A first step in my opinion is to start in the main repository.
> > > >
> > > >
> > > > I would suggest the following:
> > > >
> > > >
> > > > - Merge the current gh-pages branch into master docs folder.
> > > >
> > > > - Change the documentations page : http://apache.github.io/systemml/
> SystemDS Documentation - SystemDS<http://apache.github.io/systemml/>
> apache.github.io
> SystemDS Documentation
>
>
> > to
> > > > use the docs folder for documentation. Should be doable inside the
> > > settings
> > > > on the repository.
> > > >
> > > > - Delete the gh-pages branch
> > > >
> > > >
> > > > I want this change because then new PRs can change the documentation
> in
> > > > one PR rather than two (which to be honest is not going to happen
> most
> > of
> > > > the time).
> > > >
> > > > The downside (we have to mention this) is that when you clone the
> > > > repository, you have slightly larger downloads, but i think the
> > trade-off
> > > > is fair. If you see any other issues please mention these in this
> > thread.
> > > >
> > > >
> > > > Next task I would like to suggest to include:
> > > >
> > > >
> > > > - Java docs generated and
> > > >
> > > > - Python docs generated to also be included as a sub-folder in docs,
> so
> > > > that the current webpage contains the docs for that to.
> > > >
> > > >
> > > > How to include these in a sensible manner is currently a good
> question,
> > > > and has to be seriously well considered. Including these will also
> > enable
> > > > us to move documentation closer to the individual code parts, making
> it
> > > > again more likely to get the documentation done.
> > > >
> > > >
> > > > Another more programmatic task is to make a parser for our DML files,
> > > such
> > > > that we can generate webpage documentation based on the documentation
> > > > syntax used (much like the python and java docs generator). This
> would
> > be
> > > > great since it will remove the duplication of documentation in the
> > > > individual DML files, and the documentation we have already in files
> > such
> > > > as: docs/dml-language-reference.md.
> > > >
> > > > This also gives us an excuse to clean up that documentation/scripts
> > which
> > > > has very different implementations in our scripts folder:
> > > >
> > > >
> > > > examples:
> > > >
> > > >
> > > > - <https://github.com/apache/systemml/tree/master/scripts>
> [https://avatars3.githubusercontent.com/u/47359?s=400&v=4]<
> https://github.com/apache/systemml/tree/master/scripts>
>
> systemml/scripts at master · apache/systemml · GitHub<
> https://github.com/apache/systemml/tree/master/scripts>
> github.com
> Mirror of Apache SystemML. Contribute to apache/systemml development by
> creating an account on GitHub.
>
>
> > > >
> > >
> >
> https://github.com/apache/systemml/blob/master/scripts/nn/layers/batch_norm1d.dml
> [https://avatars3.githubusercontent.com/u/47359?s=400&v=4]<
> https://github.com/apache/systemml/blob/master/scripts/nn/layers/batch_norm1d.dml
> >
>
> systemml/batch_norm1d.dml at master · apache/systemml · GitHub<
> https://github.com/apache/systemml/blob/master/scripts/nn/layers/batch_norm1d.dml
> >
> github.com
> Mirror of Apache SystemML. Contribute to apache/systemml development by
> creating an account on GitHub.
>
>
> > > > <
> > > >
> > >
> >
> https://github.com/Baunsgaard/systemml/blob/master/scripts/nn/layers/batch_norm2d.dml
> [https://avatars2.githubusercontent.com/u/9947148?s=400&v=4]<
> https://github.com/Baunsgaard/systemml/blob/master/scripts/nn/layers/batch_norm2d.dml
> >
>
> systemml/batch_norm2d.dml at master · Baunsgaard/systemml · GitHub<
> https://github.com/Baunsgaard/systemml/blob/master/scripts/nn/layers/batch_norm2d.dml
> >
> github.com
> Mirror of Apache SystemML. Contribute to Baunsgaard/systemml development
> by creating an account on GitHub.
>
>
> > > > >
> > > >
> > > > - <
> > > >
> > >
> >
> https://github.com/Baunsgaard/systemml/blob/master/scripts/builtin/glm.dml
> [https://avatars2.githubusercontent.com/u/9947148?s=400&v=4]<
> https://github.com/Baunsgaard/systemml/blob/master/scripts/builtin/glm.dml
> >
>
> systemml/glm.dml at master · Baunsgaard/systemml · GitHub<
> https://github.com/Baunsgaard/systemml/blob/master/scripts/builtin/glm.dml
> >
> github.com
> Mirror of Apache SystemML. Contribute to Baunsgaard/systemml development
> by creating an account on GitHub.
>
>
> > > >
> > > > <https://github.com/apache/systemml/tree/master/scripts>
> [https://avatars3.githubusercontent.com/u/47359?s=400&v=4]<
> https://github.com/apache/systemml/tree/master/scripts>
>
> systemml/scripts at master · apache/systemml · GitHub<
> https://github.com/apache/systemml/tree/master/scripts>
> github.com
> Mirror of Apache SystemML. Contribute to apache/systemml development by
> creating an account on GitHub.
>
>
> > > >
> > >
> >
> https://github.com/apache/systemml/blob/master/scripts/algorithms/Cox.dml
> [https://avatars3.githubusercontent.com/u/47359?s=400&v=4]<
> https://github.com/apache/systemml/blob/master/scripts/algorithms/Cox.dml>
>
> systemml/Cox.dml at master · apache/systemml · GitHub<
> https://github.com/apache/systemml/blob/master/scripts/algorithms/Cox.dml>
> github.com
> Mirror of Apache SystemML. Contribute to apache/systemml development by
> creating an account on GitHub.
>
>
> > > >
> > > >
> > > >
> > > > Furthermore, I would suggest to postpone changing the main website:
> > > >
> > > > https://github.com/apache/systemml-website
> [https://avatars3.githubusercontent.com/u/47359?s=400&v=4]<
> https://github.com/apache/systemml-website>
>
> GitHub - apache/systemml-website: Mirror of Apache SystemML site<
> https://github.com/apache/systemml-website>
> github.com
> Mirror of Apache SystemML site. Contribute to apache/systemml-website
> development by creating an account on GitHub.
>
>
> > > >
> > > > But that task has to be started when the next release is scheduled,
> > > > because then we need to find out how to copy the current
> documentation
> > > to a
> > > > archive list of static webpages located:
> > > >
> > > > https://systemml.apache.org/documentation
> Documentation<https://systemml.apache.org/documentation>
> systemml.apache.org
> Project Documentation Page
>
>
> > > >
> > > >
> > > > best regards
> > > >
> > > > Sebastian
> > > >
> > > > ________________________________
> > > > From: Janardhan <janard...@apache.org>
> > > > Sent: Sunday, May 24, 2020 11:02:53 AM
> > > > To: dev@systemml.apache.org
> > > > Subject: [DISCUSSION] Website stack `systemml.apache.org`. Thanks.
> > > >
> > > > Hi Sebastian,
> > > >
> > > > In our discussion[1][2] a while ago, there was a topic about changing
> > > > website
> > > > stack.
> > > >
> > > > Let us start a discussion about this in this thread.
> > > >
> > > > We are planning to work on this, after a feasibility study and tech
> > stack
> > > > vetting.
> > > >
> > > > Anybody would like to give suggestions would be great.
> > > >
> > > > [1] https://github.com/apache/systemml/pull/877
> [https://avatars3.githubusercontent.com/u/47359?s=400&v=4]<
> https://github.com/apache/systemml/pull/877>
>
> [MINOR][DOC] Name refactor SystemML to SystemDS in Documentation by
> Baunsgaard · Pull Request #877 · apache/systemml · GitHub<
> https://github.com/apache/systemml/pull/877>
> github.com
> Brute change of documentation page to reflect name change. To fully
> enforce this two more steps are needed:
> https://github.com/apache/systemml-website Access to SystemML website
> server on https://systemml.apache.org/ Furthermore, we might want to
> consider starting fresh in the documentation.
>
>
> > > > [2] https://github.com/apache/systemml-website/pull/66
> [https://avatars3.githubusercontent.com/u/47359?s=400&v=4]<
> https://github.com/apache/systemml-website/pull/66>
>
> [SYSTEMML-2539][BUILD] Upgrade build configuration by j143 · Pull Request
> #66 · apache/systemml-website · GitHub<
> https://github.com/apache/systemml-website/pull/66>
> github.com
> Upgrade gulp to 4.0 Since the task api is deprecated, fuctions were used,
> and exported as tasks. Documentation for gulpfile.js. Stick to Susy2, since
> mixins are not supported in 3.0 Upgrade npm dependencies to state-of-art.
> Commit package-lock.json file to version control.
>
>
> > > >
> > > > Thank you,
> > > > Janardhan
> > > >
> > >
> >
>

Reply via email to