Releases: platformio/platformio-core
Releases · platformio/platformio-core
4.1.0
- PIO Check – automated code analysis without hassle:
- Potential NULL pointer dereferences
- Possible indexing beyond array bounds
- Suspicious assignments
- Reads of potentially uninitialized objects
- Unused variables or functions
- Out of scope memory usage.
- PlatformIO Home 3.0 and Project Inspection
- Static Code Analysis
- Firmware File Explorer
- Firmware Memory Inspection
- Firmware Sections & Symbols Viewer.
- Added support for Build Middlewares: configure custom build flags per specific file, skip any build nodes from a framework, replace build file with another on-the-fly, etc.
- Extend project environment configuration in "platformio.ini" with other sections using a new extends option (issue #2953)
- Generate
.ccls
LSP file for Emacs cross references, hierarchies, completion and semantic highlighting - Added
--no-ansi
flag for PIO Core to disable ANSI control characters - Added
--shutdown-timeout
option to PIO Home Server - Fixed an issue with project generator for CLion IDE when 2 environments were used (issue #2824)
- Fixed default PIO Unified Debugger configuration for J-Link probe
- Fixed an issue when configuration file options partly ignored when using custom
--project-conf
(issue #3034) - Fixed an issue when installing a package using custom Git tag and submodules were not updated correctly (issue #3060)
- Fixed an issue with linking process when
$LDSCRIPT
contains a space in path - Fixed security issue when extracting items from TAR archive (issue #2995)
- Fixed an issue with project generator when
src_build_flags
were not respected (issue #3137) - Fixed an issue when booleans in "platformio.ini" are not parsed properly (issue #3022)
- Fixed an issue with invalid encoding when generating project for Visual Studio (issue #3183)
- Fixed an issue when Project Config Parser does not remove in-line comments when Python 3 is used (issue #3213)
- Fixed an issue with a GCC Linter for PlatformIO IDE for Atom (issue #3218)
4.0.3
- Added support for multi-environment PlatformIO project for CLion IDE (issue #2824)
- Generate
.ccls
LSP file for Vim cross references, hierarchies, completion and semantic highlighting (issue #2952) - Added support for PLATFORMIO_DISABLE_COLOR system environment variable which disables color ANSI-codes in a terminal output (issue #2956)
- Updated SCons tool to 3.1.1
- Remove ProjectConfig cache when "platformio.ini" was modified outside
- Fixed an issue with PIO Unified Debugger on Windows OS when debug server is piped
- Fixed an issue when --upload-port CLI flag does not override declared upload_port option in "platformio.ini" (Project Configuration File)
4.0.2
- Fixed an issue with a broken LDF when checking for framework compatibility issue #2940
4.0.1
- Print debug tool name for the active debugging session
- Do not shutdown PIO Home Server for "upgrade" operations (issue #2784)
- Improved computing of project check sum (structure, configuration) and avoid unnecessary rebuilding
- Improved printing of tabulated results
- Automatically normalize file system paths to UNIX-style for Project Generator (issue #2857)
- Ability to set "databaseFilename" for VSCode and C/C++ extension (issue #2825)
- Renamed "enable_ssl" setting to strict_ssl
- Fixed an issue with incorrect escaping of Windows slashes when using PIO Unified Debugger and "piped" openOCD
- Fixed an issue when "debug", "home", "run", and "test" commands were not shown in "platformio --help" CLI
- Fixed an issue with PIO Home's "No JSON object could be decoded" (issue #2823)
- Fixed an issue when library.json had priority over project configuration for LDF (issue #2867)
4.0.0
Migration Guide from 3.0 to 4.0.
-
PlatformIO Plus Goes Open Source
- Built-in PIO Unified Debugger
- Built-in PIO Unit Testing
-
Project Configuration
- New project configuration parser with a strict options typing (API)
- Unified workspace storage (workspace_dir ->
.pio
) for PlatformIO Build System, Library Manager, and other internal services (issue #1778) - Share common (global) options between project environments using [env] section (issue #1643)
- Include external configuration files with extra_configs option (issue #1590)
- Custom project
***_dir
options declared in platformio section have higher priority than Environment variables - Added support for Unix shell-style wildcards for monitor_port option (issue #2541)
- Added new monitor_flags option which allows passing extra flags and options to platformio device monitor command (issue #2165)
- Added support for PLATFORMIO_DEFAULT_ENVS system environment variable (issue #1967)
- Added support for shared_dir where you can place an extra files (extra scripts, LD scripts, etc.) which should be transferred to a PIO Remote machine
-
Library Management
- Switched to workspace
.pio/libdeps
folder for project dependencies instead of.piolibdeps
- Save libraries passed to platformio lib install command into the project dependency list (lib_deps) with a new
--save
flag (issue #1028) - Install all project dependencies declared via lib_deps option using a simple platformio lib install command (issue #2147)
- Use isolated library dependency storage per project build environment (issue #1696)
- Look firstly in built-in library storages for a missing dependency instead of PlatformIO Registry (issue #1654)
- Override default source and include directories for a library via library.json manifest using
includeDir
andsrcDir
fields - Fixed an issue when library keeps reinstalling for non-latin path (issue #1252)
- Fixed an issue when lib_compat_mode = strict does not ignore libraries incompatible with a project framework
- Switched to workspace
-
Build System
- Switched to workspace
.pio/build
folder for build artifacts instead of.pioenvs
- Switch between Build Configurations (
release
anddebug
) with a new project configuration option build_type - Custom platform_packages per a build environment with an option to override default (issue #1367)
- Print platform package details, such as version, VSC source and commit (issue #2155)
- Control a number of parallel build jobs with a new -j, --jobs option
- Override default "platformio.ini" (Project Configuration File) with a custom using
-c, --project-conf
option for platformio run, platformio debug, or platformio test commands (issue #1913) - Override default development platform upload command with a custom upload_command (issue #2599)
- Configure a shared folder for the derived files (objects, firmwares, ELFs) from a build system using build_cache_dir option (issue #2674)
- Fixed an issue when
-U
inbuild_flags
does not remove macro previously defined via-D
flag (issue #2508)
- Switched to workspace
-
Infrastructure
- Python 3 support (issue #895)
- Significantly speedup back-end for PIO Home. It works super fast now!
- Added support for the latest Python "Click" package (CLI) (issue #349)
- Added options to override default locations used by PlatformIO Core (core_dir, globallib_dir, platforms_dir, packages_dir, cache_dir) (issue #1615)
- Removed line-buffering from platformio run command which was leading to omitting progress bar from upload tools (issue #856)
- Fixed numerous issues related to "UnicodeDecodeError" and international locales, or when project path contains non-ASCII chars (issue #143, issue #1342, issue #1959, issue #2100)
-
Integration
- Support custom CMake configuration for CLion IDE using
CMakeListsUser.txt
file - Fixed an issue with hardcoded C standard version when generating project for CLion IDE (issue #2527)
- Fixed an issue with Project Generator when an include path search order is inconsistent to what passed to the compiler (issue #2509)
- Fixed an issue when generating invalid "Eclipse CDT Cross GCC Built-in Compiler Settings" if a custom PLATFORMIO_CORE_DIR is used (issue #806)
- Support custom CMake configuration for CLion IDE using
-
Miscellaneous
- Deprecated
--only-check
PlatformIO Core CLI option for "update" sub-commands, please use--dry-run
instead - Fixed "systemd-udevd" warnings in 99-platformio-udev.rules (issue #2442)
- Fixed an issue when package cache (Library Manager) expires too fast (issue #2559)
- Deprecated
3.6.7
- PIO Unified Debugger: improved debugging in
debug_load_mode = modified
and fixed an issue with useless project rebuilding - Project Generator: fixed a VSCode C/C++'s "Cannot find" warning when CPPPATH folder does not exist
- Fixed an "IndexError: list index out of range" for Arduino sketch preprocessor (issue #2268)
- Fixed an issue when invalid "env_default" in "platformio.ini" (Project Configuration File) results into unhandled errors (issue #2265)
3.6.6
- Project Generator: fixed a warning "Property !!! WARNING !!! is not allowed" for VSCode (issue #2243)
- Fixed an issue when PlatformIO Build System does not pick up "mbed_lib.json" files from libraries (issue #2164)
- Fixed an error with conflicting declaration of a prototype (Arduino sketch preprocessor)
- Fixed "FileExistsError" when platformio ci command is used in pair with
--keep-build-dir
option - Fixed an issue with incorrect order of project "include" and "src" paths in
CPPPATH
(issue #1914)
3.6.5
- Project Generator: added new targets for CLion IDE "BUILD_VERBOSE" and "MONITOR" (serial port monitor) (issue #359)
- Fixed an issue with slow updating of PlatformIO Core packages on Windows
- Fixed an issue when platformio ci recompiles project if
--keep-build-dir
option is passed (issue #2109) - Fixed an issue when
$PROJECT_HASH
template was not expanded for the other directory***_dir
options in "platformio.ini" (Project Configuration File) (issue #2170)
3.6.4
- Improved Project Generator for Desktop IDEs:
- Use full path to PlatformIO CLI when generating a project (issue #1674)
- CLion: Improved project portability using "${CMAKE_CURRENT_LIST_DIR}" instead of full path
- Eclipse: Provide language standard to a project C/C++ indexer (issue #1010)
- Fixed an issue with incorrect detecting of compatibility (LDF) between generic library and Arduino or ARM mbed frameworks
- Fixed "Runtime Error: Dictionary size changed during iteration" (issue #2003)
- Fixed an error "Could not extract item..." when extracting TAR archive with symbolic items on Windows platform (issue #2015)
3.6.3
- Ignore *.asm and *.ASM files when building Arduino-based library (compatibility with Arduino builder)
- Fixed spurious project's "Problems" for PlatformIO IDE for VSCode when ARM mbed framework is used
- Fixed an issue with a broken headers list when generating ".clang_complete" for Emacs (issue #1960)