Releases: platformio/platformio-core
5.0.2
- 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
- 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
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.
4.3.4
- Added PlatformIO CLI Shell Completion for Fish, Zsh, Bash, and PowerShell (issue #3435)
- Automatically build
contrib-pysite
package on a target machine when pre-built package is not compatible (issue #3482) - Fixed an issue on Windows when installing a library dependency from Git repository (issue #2844, issue #3328)
4.3.3
- Fixed "UnicodeDecodeError: 'utf-8' codec can't decode byte" when non-Latin chars are used in project path (issue #3481)
4.3.2
- New Account Management System (preview)
- Open source PIO Remote client
- Improved PIO Check with more accurate project processing
- Echo what is typed when
send_on_enter
device monitor filter is used (issue #3452) - Fixed PIO Unit Testing for Zephyr RTOS
- Fixed UnicodeDecodeError on Windows when network drive (NAS) is used (issue #3417)
- Fixed an issue when saving libraries in new project results in error "No option 'lib_deps' in section" (issue #3442)
- Fixed an incorrect node path used for pattern matching when processing middleware nodes
- Fixed an issue with missing
lib_extra_dirs
option in SRC_LIST for CLion (issue #3460)
4.3.1
- Fixed a SyntaxError "'return' with argument inside generator" for PIO Unified Debugger when Python 2.7 is used
- Fixed an issue when
lib_archive = no
was not honored in "platformio.ini" - Fixed a TypeError "super(type, obj): obj must be an instance or subtype of type" when device monitor is used with a custom dev-platform filter (issue #3431)
4.3.0
-
Initial support for an official PlatformIO for CLion IDE plugin:
- Smart C and C++ editor
- Code refactoring
- On-the-fly code analysis
- "New PlatformIO Project" wizard
- Building, Uploading, Testing
- Integrated debugger (inline variable view, conditional breakpoints, expressions, watchpoints, peripheral registers, multi-thread support, etc.)
-
- Added PlatformIO Device Monitor Filter API (dev-platforms can extend base device monitor with a custom functionality, such as exception decoding) (pull #3383)
- Configure project device monitor with monitor_filters option
- Capture device monitor output to a file with
log2file
filter (issue #670) - Show a timestamp for each new line with
time
filter (issue #981) - Send a text to device on ENTER with
send_on_enter
filter (issue #926) - Show a hexadecimal representation of the data (code point of each character) with
hexlify
filter
-
New standalone (1-script) PlatformIO Core Installer
-
Initial support for Renode simulation framework (issue #3401)
-
Added support for Arm Mbed "module.json"
dependencies
field (issue #3400) -
Improved support for Arduino "library.properties"
depends
field -
Fixed an issue when quitting from PlatformIO IDE does not shutdown PIO Home server
-
Fixed an issue "the JSON object must be str, not 'bytes'" when PIO Home is used with Python 3.5 (issue #3396)
-
Fixed an issue when Python 2 does not keep encoding when converting ".ino" (issue #3393)
-
Fixed an issue when
"libArchive": false
in "library.json" does not work (issue #3403) -
Fixed an issue when not all commands in compilation database "compile_commands.json" use absolute paths (pull #3415)
-
Fixed an issue when unknown transport is used for PIO Unit Testing engine (issue #3422)
4.2.1
- Improved VSCode template with special
forceInclude
field for direct includes via-include
flag (issue #3379) - Improved support of PIO Home on card-sized PC (Raspberry Pi, etc.) (issue #3313)
- Froze "marshmallow" dependency to 2.X for Python 2 (issue #3380)
- Fixed "TypeError: unsupported operand type(s)" when system environment variable is used by project configuration parser (issue #3377)
- Fixed an issue when Library Dependency Finder (LDF) ignores custom "libLDFMode" and "libCompatMode" options in library.json
- Fixed an issue when generating of compilation database "compile_commands.json" does not work with Python 2.7 (issue #3378)
4.2.0
-
- Project Manager
- Project Configuration UI for "platformio.ini"
-
PIO Check – automated code analysis without hassle:
- Added support for PVS-Studio static code analyzer
-
Initial support for Project Manager CLI:
- Show computed project configuration with a new platformio project config command or dump to JSON with
platformio project config --json-output
(issue #3335) - Moved
platformio init
command to platformio project init
- Show computed project configuration with a new platformio project config command or dump to JSON with
-
Generate compilation database "compile_commands.json" (issue #2990)
-
Control debug flags and optimization level with a new debug_build_flags option
-
Install a dev-platform with ALL declared packages using a new
--with-all-packages
option for pio platform install command (issue #3345) -
Added support for "pythonPackages" in platform.json manifest (PlatformIO Package Manager will install dependent Python packages from PyPi registry automatically when dev-platform is installed)
-
Handle project configuration (monitor, test, and upload options) for PIO Remote commands (issue #2591)
-
Added support for Arduino's library.properties
depends
field (issue #2781) -
Autodetect monitor port for boards with specified HWIDs (issue #3349)
-
Updated SCons tool to 3.1.2
-
Updated Unity tool to 2.5.0
-
Made package ManifestSchema compatible with marshmallow >= 3 (issue #3296)
-
Warn about broken library manifest when scanning dependencies (issue #3268)
-
Do not overwrite custom items in VSCode's "extensions.json" (issue #3374)
-
Fixed an issue when
env.BoardConfig()
does not work for custom boards in extra scripts of libraries (issue #3264) -
Fixed an issue with "start-group/end-group" linker flags on Native development platform (issue #3282)
-
Fixed default PIO Unified Debugger configuration for J-Link probe
-
Fixed an issue with LDF when header files not found if "libdeps_dir" is within a subdirectory of "lib_extra_dirs" (issue #3311)
-
Fixed an issue "Import of non-existent variable 'projenv''" when development platform does not call "env.BuildProgram()" (issue #3315)
-
Fixed an issue when invalid CLI command does not return non-zero exit code
-
Fixed an issue when Project Inspector crashes when flash use > 100% (issue #3368)
-
Fixed a "UnicodeDecodeError" when listing built-in libraries on macOS with Python 2.7 (issue #3370)
-
Fixed an issue with improperly handled compiler flags with space symbols in VSCode template (issue #3364)
-
Fixed an issue when no error is raised if referred parameter (interpolation) is missing in a project configuration file (issue #3279)