I would like to discuss the process for future feature development.
I’m not taking about small administrative changes to areas like the build system. I’m talking about the sorts of big-ish feature additions or modifications that a newcomer (like me) might want to make.
The main risk that I see is that of a rogue developer (like me) producing a new feature or update to an existing feature that does not align with the project vision held by the project owner. This would then result in the development being subsequently rejected wasting everybody’s time and effort or yet another fork being created.
I’d like to propose a lightweight pre-approval process based around GitHub issues.
- The developer raises a GitHub issue with the idea/suggestion.
- This issue should contain a brief problem description plus justification of the benefit, etc.
- Importantly, the issue should also contain an overview of the approach to be taken to implementing the change.
At this point, a discussion can take place, either in GitHub or in the forum or both, whereby the project owner can reject the proposal or provide it with tentative approval.
To be clear, ‘tentative approval’ is not a guarantee that the feature will be accepted. The code will still have to pass the scrutiny and if the code is not of sufficiently high quality, it will still be rejected. ‘Tentative approval’ will simply state that the project owner thinks that the project is worthwhile and that the approach is sound.
I realise that this concept is not particularly novel, however, formalising the TVH development process could be useful.
Thoughts and comments are still welcome.