Professional collaborative platform for embedded development
Release Notes
-
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 – manage packages in the registry
- pio access – manage package access for users, teams, and maintainers
-
-
Integration with the new Account Management System
-
New Package Management System
- Integrated PlatformIO Core with the new PlatformIO Registry
- Support for owner-based dependency declaration (resolves name conflicts) (issue #1824)
- Automatically save dependencies to "platformio.ini" when installing using PlatformIO CLI (issue #2964)
- Follow SemVer complaint version constraints when checking library updates issue #1281)
- Dropped support for "packageRepositories" section in "platform.json" manifest (please publish packages directly to the registry)
-
Build System
-
Upgraded build engine to the SCons 4.0 - a next-generation software construction tool
- Configuration files are Python scripts – 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 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"
- 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 command (issue #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
- Added support for "globstar/
**
" (recursive) pattern for the different commands and configuration options (pio ci, src_filter, check_patterns, library.json > srcFilter). Python 3.5+ is required - Added a new
-e, --environment
option to pio project init command that helps to update a PlatformIO project using the existing environment - Dump build system data intended for IDE extensions/plugins using a new pio project data command
- Do not generate ".travis.yml" for a new project, let the user have a choice
- Added support for "globstar/
-
Unit Testing
- Updated PIO Unit Testing support for Mbed framework and added compatibility with Mbed OS 6
- Fixed an issue when running multiple test environments (issue #3523)
- Fixed an issue when Unit Testing engine fails with a custom project configuration file (issue #3583)
-
Static Code Analysis
-
Updated analysis tools:
- Cppcheck v2.1 with a new "soundy" analysis option and improved code parser
- PVS-Studio 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
- Display system-wide information using a new pio system info command (issue #3521)
- Remove unused data using a new pio system prune command (issue #3522)
- Show ignored project environments only in the verbose mode (issue #3641)
- Do not escape compiler arguments in VSCode template on Windows.