PlatformIO Community

PlatformIO Core 5.0 🚀

Professional collaborative platform for embedded development

We’re happy to announce the major release of PlatformIO Core 5.0!

platformio_core_5

What is New

In this section, we are going to highlight the most important changes and
features introduced in PlatformIO Core 5.0. Please visit PlatformIO 5.0.0 Release Notes for more detailed information.

PlatformIO Trusted Registry

PlatformIO Core 5.0 has been switched to the official 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).

The new Web front-end and upgraded PlatformIO Home are coming soon.

Collaborative Platform

PlatformIO Core 5.0 is fully unlocked for developers and teams. They can now share their packages (libraries, Development Platforms, toolchains) with team members or collaborate on open source projects. There are new CLI commands that help you to manage organizations, teams, team memberships, and resource access:

Package Management

The package management infrastructure has been rewritten from scratch. It is based now on the new PlatformIO Trusted Registry that supports a strict dependency declaration using the package owner. This improvement resolves the issues when package maintainers publish packages under the same name.

PlatformIO Core 5.0 does not handle packages from unofficial repositories declared via packageRepositories in platform.json. There were a lot of security issues and reports when PlatformIO Core 4.0 hangs when you manage external dependencies.

PlatformIO Core 5.0 uses THE ONLY official PlatformIO Trusted Registry that supports not only the libraries but also Development Platforms and toolchains.

Package maintainers can publish their libraries, development platforms, and toolchains to the registry using platformio package CLI.

Library Manager

The biggest improvement for Library Management is the owner-based dependency declaration. You can finally forget about conflicts with library names in the registry. Use the new syntax ownername/pkgname to declare an owner-based dependency in “platformio.ini” (Project Configuration File) via lib_deps:

[env:myenv]
platform = ...
framework = ...
board = ...
lib_deps =
  bblanchon/ArduinoJson @ ^6.16.1
  knolleary/PubSubClient @ ^2.8

You can find an owner name of a library in the registry using PlatformIO Home > Libraries > Some Library > Installation tab.

Build System

SCons 4.0

PlatformIO Core 5.0 build engine has been upgraded to the latest SCons 4.0 - a next-generation software construction tool:

Custom Targets

PlatformIO Core 5.0 gives more freedom to developers and Development Platforms maintainers. They can now declare the 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” (Project Configuration File)
  • 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 platformio run --list-targets command

See Build System section in PlatformIO Core 5 release notes for more details.

Migration

PlatformIO Core 5.0 is fully backward compatible with PlatformIO 4.0 projects.

See migration guide from 4.x to 5.0 for the further details.

Upgrade

  • PlatformIO IDE: Left Sidebar > PlatformIO (icon) > Quick Access > Upgrade PlatformIO Core
  • Terminal: Please run pio upgrade command in terminal.

Regards,
Your friends at PlatformIO

Ooooooh that’s today’s good news! Thank you PIO team!!

2 Likes

Great news! Thanks for your awesome work.
Without PlatformIO Tasmota would not be possible.
Friendly greetings from the Tasmota crew.

1 Like

Thank you too for using PlatformIO! :blush:

P.S: Have you tried your newly submitted packages using a new dependency declaration?

platform_packages = 
    jason2866/framework-arduinoespressif8266 @ 2.7.4.1

Does it work?

Yes, it does work. It is already activated since today in actual Tasmota development branch
Ahh, not with exact version numbering. 2.7.4.1 seems is too long. Generates errors when trying to do.
With 2.7.4 it does work

Downloading...
Unpacking...
Tool Manager: framework-arduinoespressif8266 @ 2.7.4+1 has been installed!
1 Like

PlatformIO Core 5.0.1 is out!

  • 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)

See PlatformIO 5.0.1 Release Notes for details.

Upgrade

  • PlatformIO IDE: Left Sidebar > PlatformIO (icon) > Quick Access > Upgrade PlatformIO Core
  • Terminal: Please run pio upgrade command in terminal.

Regards,
Your friends at PlatformIO