Skip to content

Latest commit



325 lines (235 loc) · 28.4 KB


File metadata and controls

325 lines (235 loc) · 28.4 KB

Release Notes

PlatformIO Core 5

A professional collaborative platform for embedded development

5.2.5 (2022-02-10)

  • Improved support for private packages in PlatformIO Registry
  • Improved checking of available Internet connection for IPv6-only workstations (pull #4151)
  • Better detecting of default PlatformIO project directory on Linux OS (pull #4158)
  • Respect disabling debugging server from "platformio.ini" passing an empty value to the debug_server option
  • Fixed a "module 'asyncio' has no attribute 'run'" error when launching PIO Home using Python 3.6 (issue #4169)

5.2.4 (2021-12-15)

  • Added support for a new headers field in library.json (declare a list of header files that can be included in a project source files using #include <...> directive)
  • Improved tab completion support for Bash, ZSH, and Fish shells (issue #4114)
  • Improved support for projects located on a network share (issue #3417, issue #3926, issue #4099)
  • Improved PIO Remote setup on credit-card sized computers (Raspberry Pi, BeagleBon, etc) (issue #3865)
  • Upgraded build engine to the SCons 4.3 (release notes)
  • Fixed an issue with the CLion project generator when a macro contains a space (issue #4102)
  • Fixed an issue with the NetBeans project generator when the path to PlatformIO contains a space (issue #4096)
  • Fixed an issue when the system environment variable does not override a project configuration option (issue #4125)
  • Fixed an issue when referencing *_dir option from a custom project configuration environment (issue #4110)
  • Fixed an issue with the CLion template that generated a broken CMake file if user's home directory contained an unescaped backslash (issue #4071)
  • Fixed an issue with wrong detecting Windows architecture when Python 32bit is used (issue #4134)

5.2.3 (2021-11-05)

5.2.2 (2021-10-20)

  • Override debugging firmware loading mode using --load-mode option for pio debug command
  • Added support for CLion IDE 2021.3 (pull #4085)
  • Removed debugging "legacy Click" message from CLI (issue #4083)
  • Fixed a "TypeError: sequence item 1: expected str instance, list found" issue when extending configuration option in "platformio.ini" with the multi-line default value (issue #4082)

5.2.1 (2021-10-11)

  • Clean a build environment and installed library dependencies using a new cleanall target (issue #4062)
  • Override a default library builder via a new builder field in a build group of library.json manifest (issue #3957)
  • Updated Cppcheck v2.6 with new checks, increased reliability of advanced addons (MISRA/CERT) and various improvements
  • Handle the "test" folder as a part of CLion project (issue #4005)
  • Improved handling of a library root based on "Conan" or "CMake" build systems (issue #3887)
  • Fixed a "KeyError: Invalid board option 'build.cpu'" when using a precompiled library with a board that does not have a CPU field in the manifest (issue #4056)
  • Fixed a "FileExist" error when the platformio ci command is used in pair with the --keep-build-dir option (issue #4011)
  • Fixed an issue with draft values of C++ language standards that broke static analysis via Cppcheck (issue #3944)

5.2.0 (2021-09-13)

  • PlatformIO Debugging
  • Package Management
    • Improved a package publishing process:
      • Show package details
      • Check for conflicting names in the PlatformIO Trusted Registry
      • Check for duplicates and used version
      • Validate package manifest
    • Added a new option --non-interactive to pio package publish command
  • Build System
    • Process "precompiled" and "ldflags" properties of the "" manifest (issue #3994)
    • Upgraded build engine to the SCons 4.2 (release notes)
    • Fixed an issue with broken binary file extension when a custom PROGNAME contains dot symbols (issue #3906)
    • Fixed an issue when PlatformIO archives a library that does not contain C/C++ source files (issue #4019)
  • Static Code Analysis
    • Updated analysis tools:
      • Clang-Tidy v12.0.1 with new modules and extended checks list
      • Cppcheck v2.5.0 with improved code analysis and MISRA improvements
      • PVS-Studio v7.14 with support for intermodular analysis, improved MISRA support and new diagnostics
  • Miscellaneous
    • Ensure that a serial port is ready before running unit tests on a remote target (issue #3742)
    • Fixed an error "Unknown development platform" when running unit tests on a clean machine (issue #3901)
    • Fixed an issue when "main.cpp" was generated for a new project for 8-bit development platforms (issue #3872)

5.1.1 (2021-03-17)

  • Fixed a "The command line is too long" issue with a linking process on Windows (issue #3827)
  • Fixed an issue with device monitor when the "send_on_enter" filter didn't send EOL chars (issue #3787)
  • Fixed an issue with silent mode when unwanted data is printed to stdout (issue #3837)
  • Fixed an issue when code inspection fails with "Bad JSON" (issue #3790)
  • Fixed an issue with overriding user-specified debugging configuration information in VSCode (issue #3824)

5.1.0 (2021-01-28)

  • PlatformIO Home
    • Boosted PlatformIO Home performance thanks to migrating the codebase to the pure Python 3 Asynchronous I/O stack
    • Added a new --session-id option to pio home command that helps to keep PlatformIO Home isolated from other instances and protect from 3rd party access (issue #3397)
  • Build System
    • Upgraded build engine to the SCons 4.1 (release notes)
    • Refactored a workaround for a maximum command line character limitation (issue #3792)
    • Fixed an issue with Python 3.8+ on Windows when a network drive is used (issue #3417)
  • Package Management
    • New options for pio system prune command:
      • --dry-run option to show data that will be removed
      • --core-packages option to remove unnecessary core packages
      • --platform-packages option to remove unnecessary development platform packages (issue #923)
    • Added new check_prune_system_threshold setting
    • Disabled automatic removal of unnecessary development platform packages (issue #3708, issue #3770)
    • Fixed an issue when unnecessary packages were removed in update --dry-run mode (issue #3809)
    • Fixed a "ValueError: Invalid simple block" when uninstalling a package with a custom name and external source (issue #3816)
  • Debugging
    • Configure a custom debug adapter speed using a new debug_speed option (issue #3799)
    • Handle debugging server's "ready_pattern" in "stderr" output
  • Miscellaneous

5.0.4 (2020-12-30)

  • Added "Core" suffix when showing PlatformIO Core version using pio --version command
  • Improved ".ccls" configuration file for Emacs, Vim, and Sublime Text integrations
  • Updated analysis tools:
    • Cppcheck v2.3 with improved C++ parser and several new MISRA rules
    • PVS-Studio v7.11 with new diagnostics and updated mass suppression mechanism
  • Show a warning message about deprecated support for Python 2 and Python 3.5
  • Do not provide "intelliSenseMode" option when generating configuration for VSCode C/C++ extension
  • Fixed a "git-sh-setup: file not found" error when installing project dependencies from Git VCS (issue #3740)
  • Fixed an issue with package publishing on Windows when Unix permissions are not preserved (issue #3776)

5.0.3 (2020-11-12)

  • Added an error selector for Sublime Text build runner (issue #3733)
  • Generate a working "projectEnvName" for PlatformIO IDE's debugger for VSCode
  • Force VSCode's intelliSenseMode to "gcc-x64" when GCC toolchain is used
  • Print ignored test suites and environments in the test summary report only in verbose mode (issue #3726)
  • Fixed an issue when the package manager tries to install a built-in library from the registry (issue #3662)
  • Fixed an issue when pio package pack ignores some folders (issue #3730)

5.0.2 (2020-10-30)

  • Initialize a new project or update the existing passing working environment name and its options (issue #3686)
  • Automatically build PlatformIO Core extra Python dependencies on a host machine if they are missed in the registry (issue #3700)
  • Improved "" RPC for PlatformIO Home (issue #3671)
  • Fixed a "PermissionError: [WinError 5]" on Windows when an external repository is used with lib_deps option (issue #3664)
  • Fixed a "KeyError: 'versions'" when dependency does not exist in the registry (issue #3666)
  • Fixed an issue with GCC linker when "native" dev-platform is used in pair with library dependencies (issue #3669)
  • Fixed an "AssertionError: ensure_dir_exists" when checking library updates from simultaneous subprocesses (issue #3677)
  • Fixed an issue when pio package publish command removes original archive after submitting to the registry (issue #3716)
  • Fixed an issue when multiple pio lib install command with the same local library results in duplicates in lib_deps (issue #3715)
  • Fixed an issue with a "wrong" timestamp in device monitor output using "time" filter (issue #3712)

5.0.1 (2020-09-10)

  • Added support for "owner" requirement when declaring dependencies using library.json
  • Fixed an issue when using a custom git/ssh package with platform_packages option (issue #3624)
  • Fixed an issue with "ImportError: cannot import name '_get_backend' from 'cryptography.hazmat.backends'" when using Remote Development on RaspberryPi device (issue #3652)
  • Fixed an issue when pio package unpublish command crashes (issue #3660)
  • Fixed an issue when the package manager tries to install a built-in library from the registry (issue #3662)
  • Fixed an issue with incorrect value for C++ language standard in IDE projects when an in-progress language standard is used (issue #3653)
  • Fixed an issue with "Invalid simple block (semantic_version)" from library dependency that refs to an external source (repository, ZIP/Tar archives) (issue #3658)
  • Fixed an issue when can not remove update or remove external dev-platform using PlatformIO Home (issue #3663)

5.0.0 (2020-09-03)

Please check Migration guide from 4.x to 5.0.

  • 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
  • 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 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
    • Drop support for Python 2 and 3.5

PlatformIO Core 4

See PlatformIO Core 4.0 history.

PlatformIO Core 3

See PlatformIO Core 3.0 history.

PlatformIO Core 2

See PlatformIO Core 2.0 history.

PlatformIO Core 1

See PlatformIO Core 1.0 history.

PlatformIO Core Preview

See PlatformIO Core Preview history.