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