Powertrain Build System
Go to file
Henrik Wahlqvist e4085f78e7 Add new includes config for tree structure include
There are cases when we have header files in a folder structure,
so we should not flatten the included paths.
So this commit adds get_includes_paths_tree, that should be self explaining,
and renames get_includes_paths to get_includes_paths_flat.

Change-Id: I2cff35687adb2a6caee1f4d3c631e62b8c5b53e4
2024-07-03 16:55:04 +02:00
docs Updates to deployment docs/files 2024-06-18 12:17:11 +02:00
playbooks Updates making pypi upload possible 2024-06-14 11:17:20 +02:00
pybuild Add new includes config for tree structure include 2024-07-03 16:55:04 +02:00
test_data Add feature for ZC DIDs and DTCs 2024-07-02 16:35:10 +02:00
tests Add feature for ZC DIDs and DTCs 2024-07-02 16:35:10 +02:00
zuul.d Adding blackduck token to secrets 2024-06-18 10:07:13 +02:00
.gitignore Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
.gitreview Added .gitreview 2024-04-23 13:47:30 +00:00
CODE_OF_CONDUCT.md Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
CONTRIBUTING.md Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
LICENSE Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
MANIFEST.in Updates making pypi upload possible 2024-06-14 11:17:20 +02:00
NOTICE Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
README.md Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
requirements.txt Updates making pypi upload possible 2024-06-14 11:17:20 +02:00
setup.cfg Updates to deployment docs/files 2024-06-18 12:17:11 +02:00
setup.py Updates making pypi upload possible 2024-06-14 11:17:20 +02:00
test-requirements.txt Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
tox.ini Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00

PyBuild

A Continuous Integration (CI) build system, testing all configurations where a TargetLink model is used.

General Information about Pybuild

  • PyBuild is fast.
    • More parallelization of jobs in the CI system makes it faster.
    • Code generation is moved to the developer's PC.
    • Code generation is done once for all projects using pre-processor directives.
    • C code reviews are now possible in Gerrit.
  • PyBuild adds signal consistency checks.
  • Unit tests of the build system are introduced.
    • Its quality is assured.
  • PyBuild creates new variable classes with unique code decorations.
    • Post-processing C code is not necessary.
    • ASIL-classed variables get declared at the source.
    • Memory can be optimized at compilation through short addressing different variable classes.
    • The same models can be used in more than two different suppliers, for instance, SPA2's Core System Platform (CSP).
    • PyBuild fixes incorrect handling of NVM variables.

Project Structure

  • docs/: This directory holds all the extra documentation about the project.

  • playbooks/: Directory where we keep Ansible playbooks that are executed in the jobs we use in this project.

  • pybuild/: Main directory of the project. All the application source code is kept here. It is divided into different Python modules:

    • interface/
    • lib/
    • zone_controller/

Also, we keep static_code/ and templates/ directories with useful .c, .h, and .html files.

  • tests/: Directory where we keep the unit tests for our application source code. The tests are structured in a similar way to what we have inside the pybuild/ directory. Tests for the interface, lib, and zone_controller modules are split into tests/interface/, tests/lib/, and tests/zone_controller/, respectively. Other tests are kept inside the tests/pybuild/ directory.

  • zuul.d/: Directory where we keep our Zuul jobs.

How to use Pybuild

Contributing

We would love to see you contribute to this project. No matter if it is fixing a bug, adding some tests, improving documentation, or implementing new features. See our contribution guidelines so you can have a better understanding of the whole process.

Code of Conduct

We are trying to create a healthy community that thrives on the desire to improve, learn, and share knowledge. See our code of conduct guidelines to check our behavioral rules on this project.