Powertrain Build System
Go to file
Henrik Wahlqvist 65c1d746a7 Copy from Volvo Cars local project
We don't transfer git history since it may contain proprietary data that
we cannot have in an open sources version.

Change-Id: I9586124c1720db69a76b9390e208e9f0ba3b86d4
2024-05-29 08:03:54 +02:00
docs Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
pybuild Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
test_data Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
tests Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
zuul.d Add tox jobs 2024-04-29 10:25:58 +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 Copy from Volvo Cars local project 2024-05-29 08:03:54 +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 Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
setup.cfg Copy from Volvo Cars local project 2024-05-29 08:03:54 +02:00
setup.py Copy from Volvo Cars local project 2024-05-29 08:03:54 +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.