RIOT-OS / RIOT

RIOT - The friendly OS for IoT
https://riot-os.org
GNU Lesser General Public License v2.1
4.86k stars 1.98k forks source link

[tracking] improving the onboarding experience #20388

Open maribu opened 6 months ago

maribu commented 6 months ago

Description

RIOT does actually have a lot of good documentation, which however is difficult to find and poorly structure. Some documentation is outdated, lacking, or non-existend.

Let's try to fix this:

bergzand commented 6 months ago

See also this FOSDEM talk on "Strategies for Building Healthy Open Source Communities"

mguetschow commented 6 months ago
miri64 commented 6 months ago
  • [ ] Improve structure of navigation in the doc

There is an „Extreme WIP branch“ by @leandrolanzieri and @jia200x that ports our doxygen documentation to sphinx (using breathe): https://github.com/leandrolanzieri/RIOT/tree/pr/sphinx. Since Doxygen is a hot mess when it comes to modern styling, finishing this might be the better option than trying to fiddle around with the CSS.

jkarinkl commented 6 months ago

On tutorials: (see https://forum.riot-os.org/t/riot-learning-solutions-request-for-input/4062/10 for more context)

Since onboarding also has a lot to do with culture and a sense of belonging to the community, here are also suggestions for non-technical documentation.

waehlisch commented 6 months ago

Write an extensive example, work everything out in detail.

if this relates to code, the step-by-step code instructions should be part of test(s) that are part of every release.

maribu commented 6 months ago

Write an extensive example, work everything out in detail.

if this relates to code, the step-by-step code instructions should be part of test(s) that are part of every release.

This is an excellent point. Things easily bit-rot when not tested. I wonder if we should even add the tutorials into the main repo to keep them in sync and easier to find. The trade-off I see here is:

jkarinkl commented 5 months ago

Missing in the Contributing guidelines:

* [ ]  How to test a potential PR

This may be described as part of the 'Pull request checklist', see template below.

Adding on to the points mentioned in @bergzand's message:

See this template for a list of what should be included in Contributing Guidelines.

Also missing:

jkarinkl commented 5 months ago

It would be good to label more PR's and issues as 'good first issue'. When searching on that label, I now only find 11 open issues, of which the most recent are from 2022.

Many documentation issues/PR's can be reviewed by a beginner as well, such as #20426.

jkarinkl commented 5 months ago

Write an extensive example, work everything out in detail.

if this relates to code, the step-by-step code instructions should be part of test(s) that are part of every release.

Yes, it relates to code and especially how to combine different parts of code.

If you want to build something that consists of different building blocks, it is currently difficult for a beginner to figure out how to combine these building blocks. Therefore, it would be nice if an example could be made of how to combine pieces of code, including references of where to get the different information from. This way, a beginner will learn how to find the necessary information together from the documentation.

jkarinkl commented 5 months ago

Write an extensive example, work everything out in detail.

if this relates to code, the step-by-step code instructions should be part of test(s) that are part of every release.

This is an excellent point. Things easily bit-rot when not tested. I wonder if we should even add the tutorials into the main repo to keep them in sync and easier to find. The trade-off I see here is:

* 👎 main repo becoming more monolithic and possibly more overwhelming

* 👍 easier to find and link

* 👍 CI can enforce that the code still runs and even test on devices in nightly

* 👍 kept in sync with the code. (Specifically: When we break things due to API changes, should the tutorials be updated only when the new release comes out, or right away? What if users pick the `master` branch instead of the intended release branch because of a new feature? If the tutorials are in the code repo, they switching a branch will switch the tutorials as well.)

I would like to see it in the main repo. It took me quite some searching work before I found it.

miri64 commented 5 months ago

There could also be a „hybrid“ approach: include release-tests/Tutorials/... as a git sub-module.

mguetschow commented 5 months ago
  • [ ] Improve structure of navigation in the doc

Here's a proposal from an intern here at TUD for the documentation structure:

maribu commented 3 months ago