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]( โ€“ manage packages in the registry
    - [pio access]( โ€“ 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]( โ€“ 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 "" 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

    - 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]( 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)