PlatformIO v5.0.0 Release Notes
Release Date: 2020-09-03 // over 2 years ago-
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](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
- Manage teams and team memberships
๐ฆ 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](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
- 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
โ 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](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
- 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.