Release Notes ============= .. _release_notes_5: PlatformIO Core 5 ----------------- **A professional collaborative platform for embedded development** 5.1.1 (2021-??-??) ~~~~~~~~~~~~~~~~~~ * 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 `_) 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** - Improved listing of `multicast DNS services `_ - Fixed a "UnicodeDecodeError: 'utf-8' codec can't decode byte" when using J-Link for firmware uploading on Linux (`issue #3804 `_) - Fixed an issue with a compiler driver for ".ccls" language server (`issue #3808 `_) - Fixed an issue when `pio device monitor --eol `__ and "send_on_enter" filter do not work properly (`issue #3787 `_) 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 "core.call" 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** - `Manage organizations `__ - `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 "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 `__ 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. .. _release_notes_4: 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 `__.