-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add & update official documentation #40
Conversation
I would prefer if this was not part of a code repository. https://github.com/apertium/organisation would be better, or a dedicated documentation repo. |
This is great @IlnarSelimcan ! The scribble output looks nice (and even without trying it I feel 99% sure it has better error messages than latex). The current documentation also doesn't include
|
This is excellent, thanks for the initiative. I agree with Tino that this should be a different repository as he suggests. |
Looks cool, this is definitely a needed improvement. I actually do also like having gh-pages in docs directory, but that is more for stuff that is tightlier coupled to the current code version and the specific package and details that really need to change with the code. Like you could separate a stable overview of what apertium-lex-tools is in these new main doc, and all the nittygritty details and hacky scripts there are in the apertium-lex-tools in its own gh-pages docs. (I don't want to bikeshed on implementations details but what is this racket scribble and is anyone using it? It doesn't seem too scary but is there a risk that it's gonna be dead in 3 months and nobody can update docs anymore =) |
I don't want to bikeshed either, but™ scribble is almost exactly ten years older than apertium (at least according to initial git commits). If it makes selimcan feel happy while writing documentation, I'm all for it. |
Thanks everyone for the feedback and encouragement! In short, the consensus is clear: this "project-wide" documentation -- since it's not only about the https://github.com/apertium/organisation seems to be the right place. Therefore, I close this pull request, and then (if you don't mind) will:
Once pushed to the master branch, the documentation will show up at https://apertium.github.io/organization/ Then it's minor details for admins to decide whether to rename the I also like @flammie's point that particular packages can have their own documentation, coupled to their particular release. Apertium-tat has a sketch of one at https://apertium.github.io/apertium-tat/. As for the Scribble, I think that until now it has mostly been used to document Racket packages or to write books about that language (which btw started out as a Scheme dialect in the early 90s and was called PLT Scheme initially). Which means that the community (although rather small compared to mainstream languages) has been around for a while and I don't think that they will disappear. Anyway, I'm quite open-minded and don't insist on Scribble too strongly. Let's see how it goes. A relevant detail about it is that it can output Markdown. Which means that if we decide to ditch Scribble and switch to, say, Markdown, we will be able to do so easily. Upon request, I can keep both versions in the repo and in sync. |
Because of how Github Pages works, documentation repo is: https://github.com/apertium/apertium.github.io |
@tino Didriksen <mail@tinodidriksen.com>
, the problem with this location is that the makefile fails. I think it
supposes that the package is installed in apertium-lex-tools, and that's
why it doesn't find some files:
hector@hector-nb:~/apertium/apertium.github.io$ make -f makefile
cd docs-source; raco pkg install; cd .. ; raco setup -p
apertium-platform-doc; cp -r docs-source/doc/index/*.html docs/index/; cp
-r docs-source/doc/index/*.svg docs/index/; cp -r
docs-source/doc/index/*.png docs/index/
Linking current directory as a package
raco pkg install: package is already installed
package: docs-source
raco setup: version: 6.11
raco setup: platform: x86_64-linux [3m]
raco setup: installation name: 6.11
raco setup: variants: 3m
raco setup: main collects: /usr/share/racket/collects
raco setup: collects paths:
raco setup: /home/hector/.racket/6.11/collects
raco setup: /usr/share/racket/collects
raco setup: main pkgs: /usr/share/racket/pkgs
raco setup: pkgs paths:
raco setup: /usr/share/racket/pkgs
raco setup: /home/hector/.racket/6.11/pkgs
raco setup: links files:
raco setup: /usr/share/racket/links.rktd
raco setup: /home/hector/.racket/6.11/links.rktd
raco setup: main docs: /usr/share/doc/racket
raco setup: --- updating info-domain tables ---
raco setup: --- pre-installing collections ---
raco setup: --- installing foreign libraries ---
raco setup: --- installing shared files ---
raco setup: --- compiling collections ---
raco setup: --- parallel build using 4 jobs ---
raco setup: 3 making: <pkgs>/docs-source
default-load-handler: cannot open module file
module path:
#<path:/home/hector/apertium/apertium-lex-tools/docs/index.scrbl>
path: /home/hector/apertium/apertium-lex-tools/docs/index.scrbl
system error: No such file or directory; errno=2
compilation context...:
/home/hector/apertium/apertium.github.io/docs-source/index.scrbl
context...:
standard-module-name-resolver
/usr/share/racket/collects/racket/require-transform.rkt:266:2:
expand-import
/usr/share/racket/collects/racket/private/reqprov.rkt:439:5
/usr/share/racket/collects/racket/require-transform.rkt:266:2:
expand-import
/usr/share/racket/collects/racket/private/reqprov.rkt:266:21: try-next
/usr/share/racket/collects/racket/private/reqprov.rkt:243:2
/usr/share/racket/collects/syntax/wrap-modbeg.rkt:46:4
/usr/share/racket/collects/compiler/cm.rkt:363:0: compile-zo*
/usr/share/racket/collects/compiler/cm.rkt:572:26
/usr/share/racket/collects/compiler/cm.rkt:564:42
/usr/share/racket/collects/compiler/cm.rkt:635:0: compile-root
/usr/share/racket/collects/compiler/cm.rkt:737:4
/usr/share/racket/collects/setup/../racket/private/more-scheme.rkt:261:28
[repeats 1 more time]
/usr/share/racket/collects/setup/parallel-do.rkt:435:20: loop
raco setup: --- creating launchers ---
raco setup: --- installing man pages ---
raco setup: --- building documentation ---
raco setup: 0 running: <pkgs>/docs-source/index.scrbl
default-load-handler: cannot open module file
module path:
#<path:/home/hector/apertium/apertium-lex-tools/docs/index.scrbl>
path: /home/hector/apertium/apertium-lex-tools/docs/index.scrbl
system error: No such file or directory; errno=2
context...:
standard-module-name-resolver
/usr/share/racket/collects/racket/require-transform.rkt:266:2:
expand-import
/usr/share/racket/collects/racket/private/reqprov.rkt:439:5
/usr/share/racket/collects/racket/require-transform.rkt:266:2:
expand-import
/usr/share/racket/collects/racket/private/reqprov.rkt:266:21: try-next
/usr/share/racket/collects/racket/private/reqprov.rkt:243:2
/usr/share/racket/collects/syntax/wrap-modbeg.rkt:46:4
standard-module-name-resolver
/usr/share/racket/pkgs/racket-index/setup/scribble.rkt:1526:27
/usr/share/racket/pkgs/racket-index/setup/scribble.rkt:901:0:
load-doc/ensure-prefix
/usr/share/racket/pkgs/racket-index/setup/scribble.rkt:1159:13
.../parallel-do.rkt:390:17
/usr/share/racket/collects/setup/../racket/private/more-scheme.rkt:261:28
/usr/share/racket/collects/setup/parallel-do.rkt:435:20: loop
context...:
/usr/share/racket/collects/setup/parallel-do.rkt:334:4: work-done method
in list-queue%
/usr/share/racket/collects/setup/parallel-do.rkt:284:17
/usr/share/racket/collects/setup/parallel-do.rkt:238:4
/usr/share/racket/pkgs/racket-index/setup/scribble.rkt:138:0:
setup-scribblings
/usr/share/racket/collects/setup/setup-core.rkt:71:0: setup-core
/usr/share/racket/collects/setup/main.rkt: [running body]
/usr/share/racket/collects/raco/main.rkt: [running body]
raco setup: --- installing collections ---
raco setup: --- post-installing collections ---
raco setup: --- summary of errors ---
raco setup: error: during making for <pkgs>/docs-source
raco setup: default-load-handler: cannot open module file
raco setup: module path:
#<path:/home/hector/apertium/apertium-lex-tools/docs/index.scrbl>
raco setup: path:
/home/hector/apertium/apertium-lex-tools/docs/index.scrbl
raco setup: system error: No such file or directory; errno=2
raco setup: compiling: <pkgs>/docs-source/index.scrbl
raco setup: error: during building docs for <pkgs>/docs-source/index.scrbl
raco setup: default-load-handler: cannot open module file
raco setup: module path:
#<path:/home/hector/apertium/apertium-lex-tools/docs/index.scrbl>
raco setup: path:
/home/hector/apertium/apertium-lex-tools/docs/index.scrbl
raco setup: system error: No such file or directory; errno=2
raco setup: context...:
raco setup: standard-module-name-resolver
raco setup:
/usr/share/racket/collects/racket/require-transform.rkt:266:2: expand-import
raco setup: /usr/share/racket/collects/racket/private/reqprov.rkt:439:5
raco setup:
/usr/share/racket/collects/racket/require-transform.rkt:266:2: expand-import
raco setup:
/usr/share/racket/collects/racket/private/reqprov.rkt:266:21: try-next
raco setup: /usr/share/racket/collects/racket/private/reqprov.rkt:243:2
raco setup: /usr/share/racket/collects/syntax/wrap-modbeg.rkt:46:4
raco setup: standard-module-name-resolver
raco setup:
/usr/share/racket/pkgs/racket-index/setup/scribble.rkt:1526:27
raco setup:
/usr/share/racket/pkgs/racket-index/setup/scribble.rkt:901:0:
load-doc/ensure-prefix
raco setup:
/usr/share/racket/pkgs/racket-index/setup/scribble.rkt:1159:13
raco setup: .../parallel-do.rkt:390:17
raco setup:
/usr/share/racket/collects/setup/../racket/private/more-scheme.rkt:261:28
raco setup: /usr/share/racket/collects/setup/parallel-do.rkt:435:20:
loop
raco setup:
INSTALLATION FAILED.
Press Enter to continue...
cp: ha fallat stat() sobre 'docs-source/doc/index/*.html': El fitxer o
directori no existeix
cp: ha fallat stat() sobre 'docs-source/doc/index/*.svg': El fitxer o
directori no existeix
cp: ha fallat stat() sobre 'docs-source/doc/index/*.png': El fitxer o
directori no existeix
makefile:2: recipe for target 'docs' failed
make: *** [docs] Error 1
Missatge de Tino Didriksen <notifications@github.com> del dia dt., 9 d’abr.
2019 a les 9:48:
… Because of how Github Pages works, documentation repo is:
https://github.com/apertium/apertium.github.io
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#40 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/Ai8CV2DexAjvGqyWv6Bd4WSBNV1wkmD6ks5vfDfFgaJpZM4bdc3Y>
.
|
That's my bad, @hectoralos . It should not refer to apertium-lex-tools the way it does, and this would fail no matter where this repo is. I'll fix it. |
@hectoralos This has been fixed now. Just this one time, you will need to run Then If any issues, please report at https://github.com/apertium/apertium.github.io/issues The documentation is deployed to https://apertium.github.io |
TL,DR several prospective GSoC students already have asked me how-up-to date the official documentation [1] was. There were a few additions/changes over the years the docs don't mention, so I set out to re-read and update it. Any help with this effort is appreciated. To see how it looks currently, visit
https://taruen.github.io/apertium/https://taruen.github.io/organisation/index/ (see discussion below why this change). If this PR gets approved (andhttps://github.com/apertium/apertium/settingshttps://github.com/apertium/organisation/settings gets changed to serve documentation from the docs/ folder), it will become available athttps://apertium.github.io/apertium/https://apertium.github.io/organisation/)I plan to "port"/copy-paste the official documentation from the .tex files in the coming days. It's better idea to merge this PR after that. Before that, here we can discuss it.
The official documentation has been published in 2010. That was quite a while ago, and although the core things are still the same, there were quite a few additions since then. Off the top of my head the most notable are:
There isn't a document which would describe these changes (or at least give pointers to their documentation, if any) in a single place.
Without such, it's rather difficult to keep overview of the code and possibilities available.
"Current limitations" would also be a great chapter to have, so that it's clear where to go next, and easier for prospective GSoC students to understand the problems they want to solve.
Wiki has a ton of great info, I'm not saying that it is bad. But I think that the usefulness of a book-like, "you-should-read-this-and-this-chapters first, and then this other chapter"-kind-of-documentation, with "if you need more info on this topic, see this and this wiki pages" notes is generally acknowledged.
The documentation tool I've chosen is called Scribble. [2] Scribble documents can compile into html, latex, pdf, markdown and probably several other formats. It is relatively easy to pick up, but quite powerful. Its power comes from the fact that a whole programming language is available to the writer anywhere in the document. You can think of it as a a modern texinfo [3], with the difference that you can insert arbitrary code (for logic, automation etc.) into the documentation itself.
Another great feature of it is that it can figure out where a function being mentioned in the documentation was defined, and add a cross-reference to its documentation automatically. But this feature is not very relevant, unless you write Racket code, so I'll spare the details.
The choice of the documentation tool/format is debatable, of course. The main output format, though, in my opinion has to be in html. The reason for that is that in html we'll be able to insert things like videos or asciicinemas. [4] A good example (at least visually) I'm following as a model is spacy.io's documentation. [5]
[1] http://xixona.dlsi.ua.es/~fran/apertium2-documentation.pdf
[2] https://docs.racket-lang.org/scribble/index.html
[3] https://www.gnu.org/software/texinfo/
[4] https://asciinema.org/
[5] https://spacy.io/