[projects] Add boards repository as submodule (#24)

Dear rioters,

this is on a recent pull request for the projects repository:

-- Commit Summary --

  * Add boards as submodule   * Update Makefiles for boards submodule

I have the feeling that this topic needs some clarification on my intentions and maybe some discussion.

The reasons why we decided to split RIOT in three (not counting the thirdparty repositories, which exist due to license issues) repositories are the following ones: * the kernel itself, hardware independent userspace libraries, support for   various microcontrollers, transceivers, and sensor devices goes into the   main RIOT repository (RIOT-OS/RIOT) * code that is purely platform dependent (configuring the connections between   the different chips) goes into the boards repository (RIOT-OS/RIOT) * the projects repository (RIOT-OS/projects) contains simple example and   testing applications

A developer who wants to implement his own application for RIOT on his own platform, possibly only needs to checkout the RIOT repository, creates his own board configuration, and configure the Makefile variables accordingly. There's no need for him to download more than one repository.

However, it does not make sense to checkout the projects repository *without* RIOT - but maybe the developer still wants/needs to write its own board configuration code. That is the reason, why projects does not yet have boards as a submodule.

Having said this, I know that git submodules have some drawbacks and many people don't like them. Therefore, I'm not sure if having RIOT as a submodule in projects is the best solution.

I hope things are a bit clearer now.

Cheers, Oleg

Hi,

after I dealt with git bisect today in RIOT, and I really hated how I had to change the boards repo according the kernel repo, I think the boards need to be included in the kernel repo.

Git is not depending on a centralizied repo, so everybody can start an own fork, with having private boards. Same for the projects. Everybody has the choice to include something in a pull request or not and nobody has to share all code. Seperate repos just complicate things.

Regards,   Milan

Hi rioters,

Dear rioters,

this is on a recent pull request for the projects repository:

-- Commit Summary --

  * Add boards as submodule   * Update Makefiles for boards submodule

I have the feeling that this topic needs some clarification on my intentions and maybe some discussion.

[…]

However, it does not make sense to checkout the projects repository *without* RIOT - but maybe the developer still wants/needs to write its own board configuration code. That is the reason, why projects does not yet have boards as a submodule.

That clarified it for me and I share your opinion. Beforehand I did not understand, why boards was not included into projects.

Having said this, I know that git submodules have some drawbacks and many people don't like them. Therefore, I'm not sure if having RIOT as a submodule in projects is the best solution.

An alternative provided by git (but not in the main development line) is git-subtree [1], that allows to include commits of another repo into your repository, changing the commit's tree into a subtree of your own repository, but those commits are treated as a merged branch, which can lead to some reordering problems when you want to rebase.

I hope things are a bit clearer now.

As I said: Yes :smiley:

Cheers, Oleg

Cheers, Martin

[1] git/contrib/subtree at master · git/git · GitHub