Skip to content

Latest commit

 

History

History
94 lines (72 loc) · 4.75 KB

README.md

File metadata and controls

94 lines (72 loc) · 4.75 KB

PIXELIX

PIXELIX

License

SW Configuration Management

Purpose

The SW configuration management document provides a general overview about what is configured and how it is done.

Scope

The SW configuration management document is valid for the PIXELIX project.

PlatformIO

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).

Logical Configuration Hierarchy And Dependencies

pio-env-dependencies

Version Numbers

The concept behind the version number follows the semantic versioning.

  1. MAJOR version for incompatible API changes,
  2. MINOR version if functionality added in a backwards compatible manner, and
  3. PATCH version for backwards compatible bug fixes.

Development Strategy

  • 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.

Work Instructions

How to release?

  1. Integrate all related feature/bugfix branches to the dev branch.
  2. Update the REST API on Swagger and publish it.
  3. 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.
  4. Update version number in version.json in your local dev branch.
  5. Update version number in Doxyfile, see PROJECT_NUMBER.
  6. All must be committed now!
  7. Test local dev branch.
  8. Push local dev branch to remote repository.
  9. Wait till all CI actions successful finished. If CI run fails, fix it and repeat.
  10. Merge remote dev branch to remote master branch.
  11. Release version on github.

Declaring dependencies

  • 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.

Common dependencies (target + native test)

Declare common dependencies for all environments (target and native test related) in the platformio.ini [env] section.

Common target dependencies (target only)

Declare common dependencies for all target environments in the mcu.ini lib_deps_external and lib_deps_builtin section.

Library dependencies

Declare library dependencies in the library.json dependency section.

Board dependencies

Declare board dependencies in the board.ini lib_deps section.

Issues, Ideas And Bugs

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.

License

The whole source code is published under the MIT license. Consider the different licenses of the used third party libraries too!

Contribution

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.