From 48c981b1e2f1cf981ae4e43c726edf8a2ba0663a Mon Sep 17 00:00:00 2001 From: Emmanuel Baccelli Date: Thu, 8 Dec 2016 14:04:26 +0000 Subject: [PATCH] rdm : initial rdm directory + rdm0 --- doc/memos/README.md | 5 + doc/memos/files/rdm0000/RIOT-logo.png | Bin 0 -> 37916 bytes doc/memos/rdm0000.md | 152 ++++++++++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 doc/memos/README.md create mode 100755 doc/memos/files/rdm0000/RIOT-logo.png create mode 100644 doc/memos/rdm0000.md diff --git a/doc/memos/README.md b/doc/memos/README.md new file mode 100644 index 0000000000..c16002d8ba --- /dev/null +++ b/doc/memos/README.md @@ -0,0 +1,5 @@ +# RIOT Developer Memos + +The index below lists the RDMs that were published so far. + +- [RDM0 : RIOT Developer Memo Format, Publishing and Maintenance Process](./rdm0000.md) \ No newline at end of file diff --git a/doc/memos/files/rdm0000/RIOT-logo.png b/doc/memos/files/rdm0000/RIOT-logo.png new file mode 100755 index 0000000000000000000000000000000000000000..f38dfc4de78d4e14e154ec8d7349f6ca1887aba5 GIT binary patch literal 37916 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 NE~_e2C1v{d{{qOtgp2?H literal 0 HcmV?d00001 diff --git a/doc/memos/rdm0000.md b/doc/memos/rdm0000.md new file mode 100644 index 0000000000..33fbba647d --- /dev/null +++ b/doc/memos/rdm0000.md @@ -0,0 +1,152 @@ + +- RDM: 0 +- Title: RIOT Developer Memo Format, Publishing and Maintenance Process +- Author: Emmanuel Baccelli +- Status: Active +- Type: Process +- Created: October 2018 + +## Abstract + +This memo describes a template for memos produced by the RIOT maintainers +community, targeting primarily RIOT developers. + +## Status + +This document is a product of the community of RIOT maintainers, and aims to +represent the consensus within this community. The content of this document is +licensed with a Creative Commons CC-BY-SA license. + +## Terminology + +This memo uses the [RFC2119](https://www.ietf.org/rfc/rfc2119.txt) terminology +and the following acronyms: + +- RDM: RIOT Developer Memo +- PR: git Pull-Request to RIOT's master branch on GitHub +- ACK: acknowledgement from a RIOT maintainer, concerning a pull-request to the +master branch of RIOT on GitHub + +# 1. Introduction + +In order to facilitate RIOT maintenance in the long term and at large scale, +additional documentation complementing code and usual code documentation is +needed. For instance, such memos are expected to describe and give explanations +about architectural design decisions, code structure etc. Other memos might +also describe other aspects of RIOT activity, including, but not limited to, +RIOT community processes, position with respect to some related external +technical debates, pitfalls and best practices... + +This memo specifies a format for such memos and the process of discussing their +content before publication. Format and processes are somewhat inspired by +[IETF](http://ietf.org/) processes and documents such as Request For Comments +(RFC) and Python Enhancement Proposals [PEPs](https://www.python.org/dev/peps/). + +# 2. RIOT Developers Memo Format + +RIOT Developer Memos (RDM) are written in English, using the Markdown (.md) +format, with less than 80 characters per line. Each memo has a unique +identification number indicated in its header, +e.g. this memo is RDM0. + +The structure of a memo MUST contain: + +1. a preamble as defined below, +2. the content of the memo structured as needed, +3. a postamble as defined below. + +The preamble of the memo should be structured as such: + +1. a header formatted as the header of this memo, +2. a short abstract, +3. a status for the memo stating its license and the category of the memo (e.g. +that it is a consensus document), +4. optionally, a terminology section which recalls/disambiguates definition of +terms that are key to the memo. + +The core content of the memo is structured as deemed necessary. However, during +the review process, care must be taken to follow the below principles as much +as possible: + +1. one memo = one problem/aspect, +2. start by crisply explaining and motivating the one problem/aspect the memo +targets, +3. memos are expected to be of normative and durable nature, hence: keep a memo +as concise as possible without impairing clarity, and factor out content that +id likely to quickly become out-of-date. + +The postamble of the memo should be structured as such: + +1. (optional) acknowledgements section thanking contributors other than the +authors, +2. a section with the main references that relate to the content, with a strong +preference for permanent, self-contained references, +3. the list of revisions so far and corresponding changelog, +4. contact information to reach the author(s). + +# 3. Memo Publishing and Maintenance Process + +Each new memo MUST be proposed as a pull-request (PR), +and discussed the same way RIOT code PRs are processed on GitHub. + +Initially, a proposed RDM is identified by its temporary file name +of shape rdm-draft--.md (for +example: rdm-draft-baccelli-rdm-format.md) instead of a number +assigned at a later stage. +At this stage, the RDM's header indactes status "draft". + +Proposing an RDM is non-compulsory. There is no restriction on when, in the +development cycle, an RDM can be PRed. However, RDMs on design decisions and +architecture are typically expected to describe something rather stable (that is +already merged in the main branch of RIOT, or about to be merged). + +Once proposed, a memo MUST have received an ACK by at least 3 maintainers other +than the author(s) of the memo, before its publication. + +At this stage, the RDM is assigned a permanent RDM number (the next available), +its status is changed to "active" and it is merged in the master branch of RIOT. +Once merged into the master branch of RIOT, a memo is considered published. + +Small changes/clarifications may be subsequently PRed to improve a memo, using +the same RDM number. In this case, a (monotonically increasing) revision number +is issued and a changelog is added -- see Revision section in postamble below. + +Bigger changes should result in a new memo with another +RDM number, deprecating the old memo. In this case, the deprecated memo must +be modified such that its status indicates "deprecated by [RDM XXXX](./rdmXXXX.md)" +where X is the RDM number of the new memo. + +A dedicated directory in RIOT codebase (RIOT/doc/memos) contains all the memos. +It is acceptable to add complementary content such as graphical elments +(in RIOT/doc/memos/files/) to illustrate the memo, as done with the RIOT logo +below (see Figure 1, given here for pure sake of example). +However graphical content should be kept to the bare +minimum, as it is easy to get lost in "shiny slideware". + + +![Figure 1. RIOT logo.](./files/rdm0000/RIOT-logo.png "RIOT logo") +

+Figure 1. The RIOT logo. +

+ + +## Acknowledgements + +Thanks to Thomas Eichinger, Oliver Hahm, Ludwig Knüpfer, Martine Lenders, +Sebastian Meiling, Hauke Petersen, Dan Petry, Kaspar Schleiser and +Matthias Wählisch for their comments and suggestions. + +## References + +- Internet Engineering Task Force ([IETF](http://ietf.org/)) +- Guide to [Contributing to RIOT](https://github.com/RIOT-OS/RIOT/wiki/Contributing-to-RIOT) + +## Revision + +- Rev2: added title in metadata and specification of temporary RDM naming +- Rev1: added text on non-compulsory nature of RDMs +- Rev0: initial document + +## Contact + +The author of this memo can be contacted via email at emmanuel.baccelli@inria.fr