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