- Purpose
- Scope
- PlatformIO
- Version Numbers
- Development Strategy
- Work Instructions
- Issues, Ideas And Bugs
- License
- Contribution
The SW configuration management document provides a general overview about what is configured and how it is done.
The SW configuration management document is valid for the PIXELIX project.
The SW build environment is based on PlatformIO. The platformio.ini
is the central configuration file in the root folder and contains all related build environments (targets).
The concept behind the version number follows the semantic versioning.
- MAJOR version for incompatible API changes,
- MINOR version if functionality added in a backwards compatible manner, and
- PATCH version for backwards compatible bug fixes.
- The master branch shall contain always the latest released version.
- The feature development shall take place in separate branches.
- Bugfix releases shall be prepared in separate branches.
- Integrate all related feature/bugfix branches to the dev branch.
- Update the REST API on Swagger and publish it.
- Update the hyperlink to the REST API version on Swagger at all references. To find them search for
https://app.swaggerhub.com/apis/BlueAndi/Pixelix
. - Update version number in version.json in your local dev branch.
- Update version number in Doxyfile, see
PROJECT_NUMBER
. - All must be committed now!
- Test local dev branch.
- Push local dev branch to remote repository.
- Wait till all CI actions successful finished. If CI run fails, fix it and repeat.
- Merge remote dev branch to remote master branch.
- Release version on github.
- Note that the order of declaring the dependencies is important!
- Use always a version, except its a local library in the libs folder.
- Prefer the tilde to specify the version:
- ^ (Caret): This symbol allows updates that do not change the left-most non-zero digit. For example, ^1.2.3 will match any version from 1.2.3 to less than 2.0.0.
- ~ (Tilde): This symbol allows updates to the most recent minor version. For example, ~1.2.3 will match any version from 1.2.3 to less than 1.3.0.
Declare common dependencies for all environments (target and native test related) in the platformio.ini
[env] section.
Declare common dependencies for all target environments in the mcu.ini
lib_deps_external and lib_deps_builtin section.
Declare library dependencies in the library.json
dependency section.
Declare board dependencies in the board.ini
lib_deps section.
If you have further ideas or you found some bugs, great! Create a issue or if you are able and willing to fix it by yourself, clone the repository and create a pull request.
The whole source code is published under the MIT license. Consider the different licenses of the used third party libraries too!
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.