-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Hackathon 2017 Documentation
Esben Sørig edited this page Dec 16, 2017
·
2 revisions
Notes from documentation session
Sources of documentation:
- Examples
- Generated from meta-language snippet and markdown template.
- Quick start page
- Generated by sphinx
- Unix specific
- Installation page
- Outdated
- Generated from markdown file in the source tree
- Showroom
- Notebooks. Python only
- API
- Doxygen generated
- All classes
- Subclasses referenced from base classes
- Developer wiki
- Readmes from source tree
- Various tips on developing
- Things outdate quicker than we can maintain them
- Too much redundancy
- Unifying documentation. We want less redundancy. How to define what goes where?
- How do we make sure that the documentation is maintained?
- Who is the documentation intended for?
-
End user (Applied machine learner. Kaggler).
- Documentation goal: What is the minimal number of steps to apply shogun to my problem
- Story:
- What is shogun? (1 sentence)
- How do I install?
- How do I run it?
- How do I read a csv file?
- How do apply the algorithm I'm interested in to my problem?
- Understanding how the interface for my algorithm works. What can I do with it?
- Trajectory: Go to website. Install. Copy paste example. Run it. Tweak it to fit my problem.
-
Developer of library (shogun team)
- Why it is important: we need to attract developers to shogun and keep them interested.
- Goal: one page for developing shogun
- No documentation like style guidelines. Style and similar issues should be documented from existing code.
- The documentation should describe how to run the tests rather than explaining CMake code
- Dependencies
- Can't document. They outdate
- Core dependencies that we should document: SWIG version, CMake version, Python, C++11 compiler
- Give pointers on how to figure out what to install
- Specific interface dependencies. Keep documenting these
- Story
- I am a student. I want to develop
- How do I compile?
- I look at the dependencies and install
- How do I run the tests?
- I want a task at right difficulty level to start developing shogun.
- Skim through github issues. Labelling system
- Tests should be documentation.
- C++ documentation should be part of developer documentation
- What should we have:
- 5 step compilation and run
- Pointers to different concepts
- SWIG pointers
- Tests, build bot, travis, etc
- How to figure out what the dependencies are
-
Someone wants to use the framework to implement an algorithm (scientist)
- This is a future user group. Right now group 3 is a subset of group 2
- Middle-layer scikit learn API.
- This will change how we do user documentation.
-
Cleaning. Merge current documentation and clean
- Die: Minimal shogun library use
- Die: linalg backend
- Die: test base parameter framework
- Write meta-examples as documentation
- write unit tests
- Die: code and formatting style
- Die: swig interfaces
- merged into develop document
- Installation readme
- Only cover binary packages
- Compiling manually -> developer readme
-
User documentation
- One line on website: What is shogun?
- One line on website: How do I install?
- One line on website: How do I use shogun? (show very simple example, or link to )
- Cookbook: Show full code listing
- Cookbook: open example in notebook.
- Connect meta example with cloud with different kernels
- Methods signature. How do we do it?
- GOAL: Bidirectional linking to interface specific API documentation
- Links to doxygen can be taken out of meta-example comments. We can automatically generate doxygen links when people hover on a class or method.
- (maybe) Gather statistics on what documentation sources people use