Giter Site home page Giter Site logo

Comments (12)

bergzand avatar bergzand commented on June 26, 2024 3
  • Missing in the Contributing guidelines:
    • How to get a development environment set up
    • How to test a potential PR
    • In what way tests must be added

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

from riot.

mguetschow avatar mguetschow commented on June 26, 2024 2
  • Improve structure of navigation in the doc

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

  • Getting Started
    • Roadmap
    • Creating modules
    • Creating an application
    • Porting boards
  • Development Basics
    • Writing a Device Driver in RIOT
    • Flashing via RIOT's Build System
    • Build In Docker
    • Running and creating tests
    • Build System Basics
    • List of Features (Features as Build System Entities)
    • Kconfig in RIOT
  • Advanced Development Techniques
    • Using C++ in RIOT
    • Using Rust in RIOT
    • Advanced build system tricks
    • Debugging
    • Tools
  • Emulators, Release and Maintenance
    • Release cycle
    • Changelog
    • Removed Features and Modules
    • Deprecated List
    • Todo List
  • Hardware and Configuration
    • Supported Boards
    • IO-Mapping and Shields
  • Documentation and Organization
    • Topics
    • Namespaces
    • Data Structures
    • Files

from riot.

mguetschow avatar mguetschow commented on June 26, 2024 1

from riot.

jkarinkl avatar jkarinkl commented on June 26, 2024 1
  • Explain basic words and processes in a cheat sheet or glossary

    • Many words that are used are logical for you as experienced maintainers, but new to beginners.
    • For example this page about Git and GitHub explains quite some general things about Git already and they link to an even more detailed page which explains basic words and processes.
    • Example Glossary of Cloud Native here
  • Add pictures and screenshots into explanatory documentation.

    • Not everyone prefers text (only) for learning new skills.
  • Write an extensive example, work everything out in detail.

    • For example for use model.
    • So that you instruct people with such example where to find the information, so that they can find such information themselves.

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

  • Place a link to the ‘regular’ tutorial 1 at the main RIOT page with information about how to get started (or a different page that will be the landing page for newcomers).

  • Indicate at the start of the tutorial what skills are required to successfully finish the tutorial.

    • For example: makefile, build system, git, Jupiter.
    • This allows the person who wants to do the tutorial to easily see if they meet the requirements.
  • Make an overview with links to the non-RIOT specific training materials needed to start with the RIOT tutorial

    • for example: makefile, build system, git.
    • Place this link at the start of the tutorial, with the ‘skills required to successfully finish the tutorial’.
    • This allows the person who wants to do the tutorial to brush up their lacking knowledge themselves so that they will be able to successfully complete the RIOT tutorial.
  • Improve the ‘regular’ tutorial 1 with good parts of the RIOT course 2 and Tutorial and exercises for students of HAW/TU Dresden 3.

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.

  • Explicitly describe tacit rules.

    • For example: "Asking questions is perfectly normal, please do so. You can use the chat and forum for this. In the beginning asking questions can be exciting, because you might not understand other questions asked. Remember that everyone started out with little knowledge about RIOT and that by asking your questions you are helping others who may have the same question!"
    • This explains two things, namely that it is common to ask questions and that we are aware that it can be difficult at first. By mentioning this explicitly, you lower the threshold for beginners to actually ask questions.
    • Here again: for experienced users/maintainers, asking questions makes sense, but beginners experience a (sometimes high) barrier here.
  • Explain where and when new users can meet other users, e.g. forum/chat/hack 'n ack/summit

    • For newcomers to stick around, they need to feel like they belong to the community (besides the understanding of the software, of course)
    • Therefore, they need to know other community members and have contact with them
    • By mentioning the channels and events repeatedly at many documents/web pages, it becomes clear that these channels/events are main part of the community. Hence lowering the threshold to join in one of these events/channels.
  • Create a matrix chat for RIOT newcomers.

    • This may lower the threshold to ask questions, because it is intended especially for beginners.
    • Explicitly show that we care about newcomers.
  • Mark solutions on questions in the forum the same way as stack overflow

    • Just as has been done with this post.
    • This makes it easier for beginners to find solutions to questions that have already been asked on the forum.

from riot.

miri64 avatar miri64 commented on June 26, 2024
  • 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.

from riot.

waehlisch avatar waehlisch commented on June 26, 2024

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.

from riot.

maribu avatar maribu commented on June 26, 2024

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.)

from riot.

jkarinkl avatar jkarinkl commented on June 26, 2024

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:

  • Contribution ladder
  • A section on "come to meetings"
    • explaining which meetings we have (Hack'n Ack, Summit, more??) and inviting people to join.
  • Pull request Lifecycle
    • description of what a contributor can expect during their pull request. This helps set expectations for both contributors and reviewers.
  • Pull request checklist
  • Prerequisites
    • Explicitly describe the steps needed before submitting code.
    • The code of conduct can be linked here as well, so that it does not need to be mentioned in every sub block of the contributing guidelines, as it is now.

from riot.

jkarinkl avatar jkarinkl commented on June 26, 2024

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.

from riot.

jkarinkl avatar jkarinkl commented on June 26, 2024

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.

from riot.

jkarinkl avatar jkarinkl commented on June 26, 2024

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.

from riot.

miri64 avatar miri64 commented on June 26, 2024

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

from riot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.