While this project is mainly maintained by @AeroStun, external contributions are more than welcome.
libSMCE is still in its early life, so bugfixes, new features, support for more platforms, user and developer documentation, as well as more tests, are all good ways to contribute to SMCE.
Anyone willing to! Just beware that all contributions to this project are under the ItJustWorks™ copyright attribution, and the Apache 2.0 license.
Start by looking at the issues page, either to get ideas on what to do, or check whether someone else is already working on your idea.
Next, look at the ideas category in the discussions page. There you can see if someone has already proposed your idea and what feedback they got. If nobody ever suggested that idea of yours, open a thread, and tell us everything about it! We will happily give you feedback regarding the usefulness and feasibility of your idea, as well as tips for getting started on it.
This is to avoid cluttering the upstream libSMCE repository with user branches. It also allows you to experiment with different automation services.
Would not want to miss a test failure caused by your patch, would you?
i.e., do not work on master
or devel
, else you might have trouble updating your fork when upstream gets new commits.
4. Open a draft Pull Request against devel
on upstream
This is so everyone can easily follow your progress, and for you to ask us questions while citing your changes on our CI runs of your PR.
Once your PR is passing CI and you are satisfied with your patches, requesting a review from the maintainer will get you
another look at your changes, and point out visible issues.
Expect to be asked along the lines of:
- Reformat code with ClangFormat
- Fix typos
- Rebase on upstream
devel
- Squash commits
- Deduplicate code/text
- Add tests for your newly added features
- Document said features
- Explain technical choices
- Use more modern techniques
We may ask many more things, so expect anything, yet fear not, for we will guide you if you ask.
... and go back to [5], until you get an approval (e.g., "LGTM" (Looks Good To Me)).
And your features too - we are certain that you will make great use of them.
A: Generally no, but it depends. Always ask us about that.
A: Not really, but here's one anyway:
- Better test coverage
- Doxygen-generated user & developer documentation
- Clang-cl support (add to Windows CI matrix)
- FreeBSD support (CPack packaging & CI setup)
- More samples (small example projects to demonstrate features)
- Support for more Arduino libraries