Cross-post from over at zynthian-ui on Github:
In order to be most effective in helping contributors be efficient with this project, I think we can benefit from writing a few things down. A few examples come to mind:
- Hardware scope for supporting/testing/maintaining features: Only HifiBerry? Also USB? How many input and output channels? Raspberry pi versions (other ARM boards?), OS versions, …
Software architecture: how does
zynthian_uideal with threading, mutexes, logging, and performance concerns, and what has driven existing decisions?
- Testability: how can we start to use unit tests to help prevent regression as the number of contributors grows?
- Software life cycle: how do we bring features from an idea, to being tested, to being released, with potentially multiple such features developed concurrently?
By making this concrete, expectations can be managed ahead of time, both for contributors and users.
From what I’ve seen, some of these areas have some good ideas behind them already, but I haven’t seen them written down in one place. On Github, generally a
CONTRIBUTING.md file would capture this.
In case some of this information has already been written down somewhere else, then let’s have
CONTRIBUTING.md link there instead.
Feel free to add suggestions / topics either here or over at Github, we can add them together later. Oh, and let’s save the tabs vs. spaces discussion for last