-
Notifications
You must be signed in to change notification settings - Fork 6
Description
- Proposed
- Prototype: Not Started
- Implementation: Not Started
- Specification: Not Started
Summary
With the upcoming application of bonsai-rx/prefect to the repositories in harp-tech, we have one opportunity to revise the structure of the repository. This proposal is to align the folder structure with common patterns in .NET and bonsai-rx repos.
By clarifying the situation with licensing and making the structure more digestible, we would be encouraging others to follow a clear recommendation on how to manage the creation process of open-source Harp devices with multiple component parts.
Motivation
This would make it easier for other developers and contributors to understand the structure of the repositories, ease the maintenance burden, and unify repositories across harp-tech. We also need to introduce new folders for device documentation, and it would help to decide the naming of those as well.
Detailed Design
Proposed new repository structure:
📦device.name
┣ 📂.bonsai
┣ 📂.github
┣ 📂build
┣ 📂docs
┃ ┣ 📂articles
┃ ┣ 📂images
┃ ┣ 📂workflows
┃ ┣ 📜docfx.json
┃ ┗ 📜LICENSE
┣ 📂generators
┣ 📂licenses
┣ 📂src
┃ ┣ 📂api
┃ ┃ ┗ 📜LICENSE
┃ ┣ 📂app
┃ ┃ ┗ 📜LICENSE
┃ ┣ 📂firmware
┃ ┃ ┗ 📜LICENSE
┃ ┗ 📂hardware
┃ ┃ ┗ 📜LICENSE
┣ 📜.editorconfig
┣ 📜.gitignore
┣ 📜device.yml
┣ 📜Directory.Build.props
┣ 📜LICENSE
┗ 📜README.md
To clarify license provenance, the root LICENSE file should clarify project licensing terms, similar to the Linux kernel and using SPDX identifiers whenever possible.
For example:
LICENSE
The contents of the Harp Device repository are licensed SEPARATELY under the licenses indicated below:
- App: MIT
- Documentation: CC-BY-SA-4.0
- Hardware/PCB: TAPR-OHL-1.0
- Hardware/Mechanical: CC-BY-SA-4.0
- Firmware: MIT
- Interface: MIT
All contributions to the Harp Device repository are subject to the terms in this LICENSE file.
Drawbacks
Renaming the top-level directory structure, even if done automatically, would create a burden to validate correctness in all repositories.
Alternatives
It is currently very hard to understand the licensing situation with harp-tech devices, which can discourage people from using, modifying or contributing to existing devices, and makes it harder for them to adopt similar structures for their projects.
There is also no agreed upon convention for a per-project documentation folder. To keep with the current structure we could attempt also the following:
📦device.name
┣ 📂.bonsai
┣ 📂.github
┣ 📂App
┃ ┗ 📜LICENSE
┣ 📂Documentation
┃ ┣ 📂articles
┃ ┣ 📂images
┃ ┣ 📂workflows
┃ ┣ 📜docfx.json
┃ ┗ 📜LICENSE
┣ 📂Firmware
┃ ┗ 📜LICENSE
┣ 📂Generators
┣ 📂Hardware
┃ ┗ 📜LICENSE
┣ 📂Interface
┃ ┗ 📜LICENSE
┣ 📜.editorconfig
┣ 📜.gitignore
┣ 📜device.yml
┣ 📜LICENSE
┗ 📜README.md