Releases: platformio/platformio-core
6.1.6
- Added support for Python 3.11
- Added a new name configuration option to customize a project name (pull #4498)
- Made assets (templates,
99-platformio-udev.rules
) part of Python's module (issue #4458) - Updated Clang-Tidy check tool to v15.0.5 with new diagnostics and bugfixes
- Removed dependency on the "zeroconf" package and install it only when a user lists mDNS devices (issue with zeroconf's LGPL license)
- Show the real error message instead of "Can not remove temporary directory" when "platformio.ini" configuration file is broken (issue #4480)
- Fixed an issue with an incorrect test summary when a testcase name includes a colon (issue #4508)
- Fixed an issue when extends did not override options in the right order (issue #4462)
- Fixed an issue when pio pkg list and pio pkg uninstall commands fail if there are circular dependencies in the library.json manifests (issue #4475)
6.1.5
- Added a new enable_proxy_strict_ssl setting to disable the proxy server certificate verification (issue #4432)
- Documented PlatformIO Core Proxy Configuration
- Speeded up device port finder by avoiding loading board HWIDs from development platforms
- Improved caching of build metadata in debug mode
- Fixed an issue when pio pkg install --storage-dir command requires PlatformIO project (issue #4410)
6.1.4
- Added support for accepting the original FileNode environment in a "callback" function when using Build Middlewares (pull #4380)
- Improved device port finder when using dual channel UART converter (issue #4367)
- Improved project dependency resolving when using the pio project init --ide command
- Upgraded build engine to the SCons 4.4.0 (release notes)
- Keep custom "unwantedRecommendations" when generating projects for VSCode (issue #4383)
- Do not resolve project dependencies for the
cleanall
target (issue #4344) - Warn about calling "env.BuildSources" in a POST-type script (issue #4385)
- Fixed an issue when escaping macros/defines for IDE integration (issue #4360)
- Fixed an issue when the "cleanall" target removes dependencies from all working environments (issue #4386)
6.1.3
- Fixed a regression bug when opening device monitor without any filters (issue #4363)
6.1.2
- Export a
PIO_UNIT_TESTING
macro to the project source files and dependent libraries in the Unit Testing mode - Improved detection of Windows architecture (issue #4353)
- Warn about unknown device monitor filters (issue #4362)
- Fixed a regression bug when libArchive option declared in the library.json manifest was ignored (issue #4351)
- Fixed an issue when the pio pkg publish command didn't work with Python 3.6 (issue #4352)
6.1.1
- Added new
monitor_encoding
project configuration option to configure Device Monitor (issue #4350) - Allowed specifying project environments for pio ci command (issue #4347)
- Show "TimeoutError" only in the verbose mode when can not find a serial port
- Fixed an issue when a serial port was not automatically detected if the board has predefined HWIDs
- Fixed an issue with endless scanning of project dependencies (issue #4349)
- Fixed an issue with LDF when incompatible libraries were used for the working project environment with the missed framework (pull #4346)
6.1.0
-
Device Manager
- Automatically reconnect device monitor if a connection fails
- Added new pio device monitor --no-reconnect option to disable automatic reconnection
- Handle device monitor disconnects more gracefully (issue #3939)
- Improved a serial port finder for Black Magic Probe (issue #4023)
- Improved a serial port finder for a board with predefined HWIDs
- Replaced
monitor_flags
with independent project configuration options: monitor_parity, monitor_eol, monitor_raw, monitor_echo - Fixed an issue when the monitor filters were not applied in their order (issue #4320)
-
Unit Testing
- Updated "Getting Started" documentation for GoogleTest testing and mocking framework
- Export Unit Testing flags only to the project build environment (
projenv
, files in "src" folder) - Merged the "building" stage with "uploading" for the embedded target (issue #4307)
- Do not resolve dependencies from the project "src" folder when the test_build_src option is not enabled
- Do not immediately terminate a testing program when results are received
- Fixed an issue when a custom pio test --project-config was not handled properly (issue #4299)
- Fixed an issue when testing results were wrong in the verbose mode (issue #4336)
-
Build System
- Significantly improved support for Pre & Post Actions
- Allowed to declare actions in the PRE-type scripts even if the target is not ready yet
- Allowed library maintainers to use Pre & Post Actions in the library extraScript
- Documented Stringification – converting a macro argument into a string constant (issue #4310)
- Added new pio run --monitor-port option to specify custom device monitor port to the
monitor
target (issue #4337) - Added
env.StringifyMacro(value)
helper function for the Advanced Scripting - Allowed to
Import("projenv")
in a library extra script (issue #4305) - Fixed an issue when the build_unflags operation ignores a flag value (issue #4309)
- Fixed an issue when the build_unflags option was not applied to the
ASPPFLAGS
scope - Fixed an issue on Windows OS when flags were wrapped to the temporary file while generating the Compilation database "compile_commands.json"
- Fixed an issue with the LDF when recursively scanning dependencies in the
chain
mode - Fixed a "PermissionError" on Windows when running "clean" or "cleanall" targets (issue #4331)
- Significantly improved support for Pre & Post Actions
-
Package Management
- Fixed an issue when library dependencies were installed for the incompatible project environment (issue #4338)
-
Miscellaneous
- Warn about incompatible Bash version for the Shell Completion (issue #4326)
6.0.2
- 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)
- Improved support for Asking for input (prompts)
- 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
- 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