Hi everyone,
I was about to add a PR for a RIOT application (a client for i2ot, a
gateway to connect sensor boards with cloud services), but I'm not sure
which repository I should add it to.
There's of course RIOT-OS/RIOT/examples which shows you how to add shell
commands, do basic networking etc., and I think it's a very good idea to
ship this with the RIOT OS source code.
Then there's RIOT-OS/application, which contains a sniffer, some openwsn
stuff, and a microcoap example.
Imho specific purpose applications should go in the latter, and general
purpose stuff (such as the gnrc_networking example) should go in the
former. Is there a policy/rule/wiki entry that distinguishes the
purposes of the two?
The reason I'm asking is that for a few weeks now, both repos contain a
CoAP server based in the microcoap library. Both are pretty generic, so
you could argue that it should go in RIOT-OS/RIOT/examples, but do we
really want examples of every library RIOT supports in that folder?
My application, the i2ot client, is of course rather specific, so I
think it should go in RIOT-OS/applications. But because of the current
situation, I decided to ask and perhaps resolve this matter for future PRs.
Best,
Lennart
Links:
https://github.com/RIOT-OS/RIOT/tree/master/examples
https://github.com/RIOT-OS/applications
https://github.com/i2ot
Hi Lennart,
thanks for bringing up this question here on the list.
Imho specific purpose applications should go in the latter, and general
purpose stuff (such as the gnrc_networking example) should go in the
former. Is there a policy/rule/wiki entry that distinguishes the
purposes of the two?
So far, there's no particular documentation about this, but I think the
distinction you made, makes sense and is quite aligned with my understanding
of the repositories. I think it is important to have all (crucial) RIOT
features demonstrated by an according code example inside RIOT's repository.
The reason I'm asking is that for a few weeks now, both repos contain a
CoAP server based in the microcoap library. Both are pretty generic, so
you could argue that it should go in RIOT-OS/RIOT/examples, but do we
really want examples of every library RIOT supports in that folder?
I think it makes sense to demonstrate how to work with microcoap on RIOT with
a simple example here. One could think about having a more complex CoAP
example based on microcoap in the application folder, too. But I agree,
currently both applications seem quite similar and I would vote for removing
the one in the applications repository which is probably a bit outdated
anyway.
My application, the i2ot client, is of course rather specific, so I
think it should go in RIOT-OS/applications. But because of the current
situation, I decided to ask and perhaps resolve this matter for future PRs.
As far as I understand your purpose, I would agree with your conclusion.
Cheers,
Oleg