Releases: platformio/platformio-core
6.0.1
- 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
A professional collaborative platform for declarative, safety-critical, and test-driven embedded development.
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 configuration - Added 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)
- Added a new build variable (
-
Project Configuration
- Extended Interpolation of Values with
${this}
pattern (issue #3953) - Embed environment name of the c...
- Extended Interpolation of Values with
5.2.5
- Improved support for private packages in PlatformIO Registry
- Improved checking of available Internet connection for IPv6-only workstations (pull #4151)
- Better detecting of default PlatformIO project directory on Linux OS (pull #4158)
- Respect disabling debugging server from "platformio.ini" passing an empty value to the debug_server option
- Fixed a "module 'asyncio' has no attribute 'run'" error when launching PIO Home using Python 3.6 (issue #4169)
5.2.4
- Added support for a new
headers
field in library.json (declare a list of header files that can be included in a project source files using#include <...>
directive) - Improved tab completion support for Bash, ZSH, and Fish shells (issue #4114)
- Improved support for projects located on a network share (issue #3417, issue #3926, issue #4099)
- Improved PIO Remote setup on credit-card sized computers (Raspberry Pi, BeagleBon, etc) (issue #3865)
- Upgraded build engine to the SCons 4.3 (release notes)
- Fixed an issue with the CLion project generator when a macro contains a space (issue #4102)
- Fixed an issue with the NetBeans project generator when the path to PlatformIO contains a space (issue #4096)
- Fixed an issue when the system environment variable does not override a project configuration option (issue #4125)
- Fixed an issue when referencing
*_dir
option from a custom project configuration environment (issue #4110) - Fixed an issue with the CLion template that generated a broken CMake file if user's home directory contained an unescaped backslash (issue #4071)
- Fixed an issue with wrong detecting Windows architecture when Python 32bit is used (issue #4134)
5.2.3
- Automatically synchronize active projects between IDE and PlatformIO Home
- Added support for custom device monitor filters (issue #3924)
- Show human-readable message when infinite recursion is detected while processing Interpolation of Values (issue #3883)
- Improved directory interpolation (
${platformio.***_dir}
) in "platformio.ini" configuration file (issue #3934) - Ignore resolving of SCons variables (e.g.,
${(SOURCE.get_abspath())}
) when preprocessing interpolations (issue #3933) - Added "inc" as a sign that it's the root of the library (issue #4093)
- Fixed an issue when the
$PROJECT_DIR
variable was not properly replaced in the debug_server option (issue #4086) - Fixed an issue when PIO Remote device monitor crashes on the first keypress (issue #3832)
- Fixed "Do not know how to make File target 'debug'" issue when debugging project using CLion IDE (pull #4089)
- Fixed "UnicodeEncodeError" when a build output contains non-ASCII characters (issue #3971)
- Fixed an issue when VSCode's debugger does not the honor default environment (issue #4098)
5.2.2
- Override debugging firmware loading mode using
--load-mode
option for pio debug command - Added support for CLion IDE 2021.3 (pull #4085)
- Removed debugging "legacy Click" message from CLI (issue #4083)
- Fixed a "TypeError: sequence item 1: expected str instance, list found" issue when extending configuration option in "platformio.ini" with the multi-line default value (issue #4082)
5.2.1
- Clean a build environment and installed library dependencies using a new
cleanall
target (issue #4062) - Override a default library builder via a new
builder
field in abuild
group of library.json manifest (issue #3957) - Updated Cppcheck v2.6 with new checks, increased reliability of advanced addons (MISRA/CERT) and various improvements
- Handle the "test" folder as a part of CLion project (issue #4005)
- Improved handling of a library root based on "Conan" or "CMake" build systems (issue #3887)
- Fixed a "KeyError: Invalid board option 'build.cpu'" when using a precompiled library with a board that does not have a CPU field in the manifest (issue #4056)
- Fixed a "FileExist" error when the platformio ci command is used in pair with the
--keep-build-dir
option (issue #4011) - Fixed an issue with draft values of C++ language standards that broke static analysis via Cppcheck (issue #3944)
5.2.0
-
PlatformIO Debugging
- Boosted PlatformIO Debugging performance thanks to migrating the codebase to the pure Python 3 Asynchronous I/O stack
- Debug unit tests created with PlatformIO Unit Testing solution (issue #948)
- Debug native (desktop) applications on a host machine (issue #980)
- Support debugging on Windows using Windows CMD/CLI (pio debug) (issue #3793)
- Configure a custom pattern to determine when debugging server is started with a new debug_server_ready_pattern option
- Fixed an issue with silent hanging when a custom debug server is not found (issue #3756)
-
Package Management
-
Improved a package publishing process:
- Show package details
- Check for conflicting names in the PlatformIO Trusted Registry
- Check for duplicates and used version
- Validate package manifest
-
Added a new option
--non-interactive
to pio package publish command
-
-
Build System
- Process "precompiled" and "ldflags" properties of the "library.properties" manifest (issue #3994)
- Upgraded build engine to the SCons 4.2 (release notes)
- Fixed an issue with broken binary file extension when a custom
PROGNAME
contains dot symbols (issue #3906) - Fixed an issue when PlatformIO archives a library that does not contain C/C++ source files (issue #4019)
-
Static Code Analysis
-
Updated analysis tools:
- Clang-Tidy v12.0.1 with new modules and extended checks list
- Cppcheck v2.5.0 with improved code analysis and MISRA improvements
- PVS-Studio v7.14 with support for intermodular analysis, improved MISRA support and new diagnostics
-
-
Miscellaneous
- Ensure that a serial port is ready before running unit tests on a remote target (issue #3742)
- Fixed an error "Unknown development platform" when running unit tests on a clean machine (issue #3901)
- Fixed an issue when "main.cpp" was generated for a new project for 8-bit development platforms (issue #3872)
5.1.1
- Fixed a "The command line is too long" issue with a linking process on Windows (issue #3827)
- Fixed an issue with device monitor when the "send_on_enter" filter didn't send EOL chars (issue #3787)
- Fixed an issue with silent mode when unwanted data is printed to stdout (issue #3837)
- Fixed an issue when code inspection fails with "Bad JSON" (issue #3790)
- Fixed an issue with overriding user-specified debugging configuration information in VSCode (issue #3824)
5.1.0
- PlatformIO Home
- Boosted PlatformIO Home performance thanks to migrating the codebase to the pure Python 3 Asynchronous I/O stack
- Added a new
--session-id
option to pio home command that helps to keep PlatformIO Home isolated from other instances and protect from 3rd party access (issue #3397)
- Build System
- Upgraded build engine to the SCons 4.1 (release notes)
- Refactored a workaround for a maximum command line character limitation (issue #3792)
- Fixed an issue with Python 3.8+ on Windows when a network drive is used (issue #3417)
- Package Management
- New options for pio system prune command:
--dry-run
option to show data that will be removed--core-packages
option to remove unnecessary core packages--platform-packages
option to remove unnecessary development platform packages (issue #923)
- Added new check_prune_system_threshold setting
- Disabled automatic removal of unnecessary development platform packages (issue #3708, issue #3770)
- Fixed an issue when unnecessary packages were removed in
update --dry-run
mode (issue #3809) - Fixed a "ValueError: Invalid simple block" when uninstalling a package with a custom name and external source (issue #3816)
- New options for pio system prune command:
- Debugging
- Configure a custom debug adapter speed using a new debug_speed option (issue #3799)
- Handle debugging server's "ready_pattern" in "stderr" output
- Miscellaneous
- Improved listing of multicast DNS services
- Fixed a "UnicodeDecodeError: 'utf-8' codec can't decode byte" when using J-Link for firmware uploading on Linux (issue #3804)
- Fixed an issue with a compiler driver for ".ccls" language server (issue #3808)
- Fixed an issue when pio device monitor --eol and "send_on_enter" filter do not work properly (issue #3787)