Release Notes¶
PlatformIO Core 6¶
A professional collaborative platform for declarative, safety-critical, and test-driven embedded development.
6.0.2 (2022-??-??)¶
Control Unit Testing verbosity with a new multilevel pio test -v command option (issue #4276)
Follow symbolic links during searching for the unit test suites (issue #4288)
Show a warning when testing an empty project without a test suite (issue #4278)
Fixed an issue when the build_src_flags option was applied outside the project scope (issue #4277)
Fixed an issue with debugging assembly files without preprocessor (“.s”)
6.0.1 (2022-05-17)¶
Improved support for the renamed configuration options (issue #4270)
Fixed an issue when calling the built-in pio device monitor filters
Fixed an issue when using Interpolation of Values and merging str+int options (issue #4271)
6.0.0 (2022-05-16)¶
Please check the Migration guide from 5.x to 6.0.
Package Management
New unified Package Management CLI (
pio pkg
):pio pkg exec - run command from package tool (issue #4163)
pio pkg install - install the project dependencies or custom packages
pio pkg list - list installed packages
pio pkg outdated - check for project outdated packages
pio pkg search - search for packages
pio pkg show - show package information
pio pkg uninstall - uninstall the project dependencies or custom packages
pio pkg update - update the project dependencies or custom packages
Package Manifest
Added support for “scripts” (issue #485)
Added support for multi-licensed packages using SPDX Expressions (issue #4037)
Added support for “dependencies” declared in a “tool” package manifest
Added support for symbolic links allowing pointing the local source folder to the Package Manager (issue #3348)
Automatically install dependencies of the local (private) project libraries (issue #2910)
Improved detection of a package type from the tarball archive (issue #3828)
Ignore files according to the patterns declared in “.gitignore” when using the pio package pack command (issue #4188)
Dropped automatic updates of global libraries and development platforms (issue #4179)
Dropped support for the “pythonPackages” field in “platform.json” manifest in favor of Extra Python Dependencies
Fixed an issue when manually removed dependencies from the “platformio.ini” configuration file were not uninstalled from the storage (issue #3076)
Unit Testing
Refactored from scratch Unit Testing solution and its documentation
New: Test Hierarchy (issue #4135)
New: Doctest testing framework (issue #4240)
New: GoogleTest testing and mocking framework (issue #3572)
New: Semihosting (issue #3516)
New: Hardware Simulators for Unit Testing (QEMU, Renode, SimAVR, and custom solutions)
New:
test
build configurationAdded support for a custom testing framework
Added support for a custom testing command
Added support for a custom Unity library (issue #3980)
Added support for the
socket://
andrfc2217://
protocols using test_port option (issue #4229)List available project tests with a new pio test --list-tests option
Pass extra arguments to the testing program with a new pio test --program-arg option (issue #3132)
Generate reports in JUnit and JSON formats using the pio test command (issue #2891)
Provide more information when the native program crashed on a host (errored with a non-zero return code) (issue #3429)
Improved automatic detection of a testing serial port (issue #4076)
Fixed an issue when command line parameters (
--ignore
,--filter
) do not override values defined in the “platformio.ini” configuration file (issue #3845)Renamed the “test_build_project_src” project configuration option to the test_build_src
Removed the “test_transport” option in favor of the Custom “unity_config.h”
Static Code Analysis
Updated analysis tools:
Cppcheck v2.7 with various checker improvements and fixed false positives
PVS-Studio v7.18 with improved and updated semantic analysis system
Added support for the custom Clang-Tidy configuration file (issue #4186)
Added ability to override a tool version using the platform_packages option (issue #3798)
Fixed an issue with improper handling of defects that don’t specify a source file (issue #4237)
Build System
Show project dependency licenses when building in the verbose mode
Fixed an issue when LDF ignores the project lib_deps while resolving library dependencies (issue #3598)
Fixed an issue with calling an extra script located outside a project (issue #4220)
Fixed an issue when GCC preprocessor was applied to the “.s” assembly files on case-sensitive OS such as Window OS (issue #3917)
Fixed an issue when LDF ignores build_src_flags in the “deep+” mode (issue #4253)
Integration
Added a new build variable (
COMPILATIONDB_INCLUDE_TOOLCHAIN
) to include toolchain paths in the compilation database (issue #3735)Changed a default path for compilation database compile_commands.json to the project root
Enhanced integration for Qt Creator (issue #3046)
Project Configuration
Extended Interpolation of Values with
${this}
pattern (issue #3953)Embed environment name of the current section in the “platformio.ini” configuration file using
${this.__env__}
patternRenamed the “src_build_flags” project configuration option to the build_src_flags
Renamed the “src_filter” project configuration option to the build_src_filter
Miscellaneous
Pass extra arguments to the native program with a new pio run --program-arg option (issue #4246)
Improved PIO Remote setup on credit-card sized computers (Raspberry Pi, BeagleBon, etc) (issue #3865)
Finally removed all tracks to the Python 2.7, the Python 3.6 is the minimum supported version.