Custom board definition is the only file located outside of the project source tree

Hi, and thanks for the great project you guys have made!

Quick question: is there any practical reason to keep the board definitions in ~/.platformio and not give an option to store board JSON locally in the project directory? Currently it’s the only file that we have to keep inside the project directory and manually copy to ~/.platformio/boards before building our firmware.

We build our own PCBs on a project basis (using AVRs or various ST MCUs), we build them often, and they are all different. In theory we probably could reuse existing devkit boards that resemble our boards, but sometimes the F_CPU is different etc. So we ended up keeping board JSON inside the project source tree and copy it manually (and we end up with many board configuration that will never be reused), for CI we do the same in the scripts, and it really feels broken.

So I wonder if there is any reasoning why developer can’t (shouldn’t) create a custom board inside the project tree?

How about this issue? Will it resolve your requirements?
https://github.com/platformio/platformio/issues/515

P.S: Also, you can fork existing development platform and add support for own boards and later use it in the project. If these boards could be used by other developers, we can merge these “board manifests” to the main development platform.