lib_deps (issue #3715)dependencies using library.json Integration with the new PlatformIO Trusted Registry
๐ฆ Enterprise-grade package storage with high availability (multi replicas)
Secure, fast, and reliable global content delivery network (CDN)
๐ฆ Universal support for all packages:
- Libraries
- Development platforms
- Toolchains
Built-in fine-grained access control (role-based, teams, organizations)
๐ New CLI commands:
- [pio package](https://docs.platformio.org/page/core/userguide/package/index.html) โ manage packages in the registry
- [pio access](https://docs.platformio.org/page/core/userguide/access/index.html) โ manage package access for users, teams, and maintainers
Integration with the new Account Management System
๐ฆ New Package Management System
๐ท Build System
โฌ๏ธ Upgraded build engine to the SCons 4.0 - a next-generation software construction tool
- [Configuration files are Python scripts](https://docs.platformio.org/page/projectconf/advanced_scripting.html) โ use the power of a real programming language to solve build problems
- Built-in reliable and automatic dependency analysis
- Improved support for parallel builds
- Ability to [share built files in a cache](https://docs.platformio.org/page/projectconf/section_platformio.html#projectconf-pio-build-cache-dir) to speed up multiple builds
๐ New Custom Targets
- Pre/Post processing based on dependent sources (another target, source file, etc.)
- Command launcher with own arguments
- Launch command with custom options declared in ["platformio.ini"](https://docs.platformio.org/page/projectconf.html)
- Python callback as a target (use the power of Python interpreter and PlatformIO Build API)
- List available project targets (including dev-platform specific and custom targets) with a new [pio run --list-targets](https://docs.platformio.org/page/core/userguide/cmd_run.html#cmdoption-platformio-run-list-targets) command ([issue #3544](https://github.com/platformio/platformio-core/issues/3544))
Enable "cyclic reference" for GCC linker only for the embedded dev-platforms (issue #3570)
๐ Automatically enable LDF dependency chain+ mode (evaluates C/C++ Preprocessor conditional syntax) for Arduino library when "library.property" has "depends" field (issue #3607)
๐ Fixed an issue with improper processing of source files added via multiple Build Middlewares (issue #3531)
๐ Fixed an issue with the clean target on Windows when project and build directories are located on different logical drives (issue #3542)
Project Management
**" (recursive) pattern for the different commands and configuration options (pio ci, src_filter, check_patterns, library.json > srcFilter). Python 3.5+ is required-e, --environment option to pio project init command that helps to update a PlatformIO project using the existing environmentโ Unit Testing
Static Code Analysis
โก๏ธ Updated analysis tools:
- [Cppcheck](https://docs.platformio.org/page/plus/check-tools/cppcheck.html) v2.1 with a new "soundy" analysis option and improved code parser
- [PVS-Studio](https://docs.platformio.org/page/plus/check-tools/pvs-studio.html) v7.09 with a new file list analysis mode and an extended list of analysis diagnostics
โ Added Cppcheck package for ARM-based single-board computers (issue #3559)
๐ Fixed an issue with PIO Check when a defect with a multiline error message is not reported in verbose mode (issue #3631)
Miscellaneous
contrib-pysite package on a target machine when pre-built package is not compatible (issue #3482)send_on_enter device monitor filter is used (issue #3452)lib_extra_dirs option in SRC_LIST for CLion (issue #3460)lib_archive = no was not honored in "platformio.ini" ๐ Initial support for an official PlatformIO for CLion IDE plugin:
๐ Device Monitor 2.0
log2file filter (issue #670)time filter (issue #981)send_on_enter filter (issue #926)hexlify filter๐ New standalone (1-script) PlatformIO Core Installer
๐ Initial support for Renode simulation framework (issue #3401)
โ Added support for Arm Mbed "module.json" dependencies field (issue #3400)
๐ Improved support for Arduino "library.properties" depends field
๐ Fixed an issue when quitting from PlatformIO IDE does not shutdown PIO Home server
๐ Fixed an issue "the JSON object must be str, not 'bytes'" when PIO Home is used with Python 3.5 (issue #3396)
๐ Fixed an issue when Python 2 does not keep encoding when converting ".ino" (issue #3393)
๐ Fixed an issue when "libArchive": false in "library.json" does not work (issue #3403)
๐ Fixed an issue when not all commands in compilation database "compile_commands.json" use absolute paths (pull #3415)
๐ Fixed an issue when unknown transport is used for PIO Unit Testing engine (issue #3422)
forceInclude field for direct includes via -include flag (issue #3379)