Git submodule in RIOT-OS/applications

Hello RIOT developers,

Does it make sense to provide a RIOT (git submodule) folder in the RIOT-OS/applications, pointing to the latest RIOT release?

I can see some reasons:

- Applications will always be in a working state

- Might be easier for new users to clone and use

We would require to update the submodule at the end of a Release.

Any comments?

Hi Jose,

while I agree that this would be easier for new users, I don’t see how this would help with applications being in a working state.

First of all, continuous integration is missing for those applications anyways (IMHO we should change that), so a working state isn’t guaranteed in the first place. A submodule wouldn’t help with that.

Second, if any problem arises with the application, we would be “stuck” on that release (or would have to have hotfixes backported into the release, specifically tailored to the application). So I’d rather would like to have it synced with current master but included into the continous integration.

Regards, Martine

Hi all,

Does it make sense to provide a RIOT (git submodule) folder in the RIOT-OS/applications, pointing to the latest RIOT release?

YES.

- Applications will always be in a working state

Yes. I think it is more important to have it in a working state than having them break because some external thing changed. That's what dependency pinning is about.

- Might be easier for new users to clone and use

And not have them scratching their heads trying to figure out why it does not work with the latest RIOT master.

We would require to update the submodule at the end of a Release.

Yes. But if we do things right, we should already be testing the apps after each release anyways, so it is not an additional burden.

Regards,

Juan.

Hi Jose,

for me it does not hurt to allow both.

It does not help with guarantee that it works with the current master but lets user just easily use with the release, or last working RIOT version.

So change the `RIOTBASE` to use a cloned version in the repository if it is there, and the RIOT version in the same directory like now if it is not cloned using something like

     `$(if $(wildcard $(CURDIR)/../RIOT),$(wildcard $(CURDIR)/../RIOT),\        $(CURDIR)/../../RIOT)`

And as Juan proposed :wink: he will do the testing for the releases and update the submodule reference.

Adding a test in CI could be a separate improvement.

And the other question, why are they not part of RIOT anyway ?

Gaëtan