PlatformIO Community

Wish List for Santa Claus

Temperatures are still high in most parts of the Northern hemisphere. It’s a good time to think about the cooler season and to look forward to Christmas. So here’s my wish list for Santa Claus with regards to PlatformIO.

Today’s software development profits from easy reuse of existing software (in particular libraries), collaborative work on projects with colleagues and automated building and testing. That’s why package/library managers are so essential. They fully automate downloading a library and all its dependencies and keep them separate for each project so a new project doesn’t break an old one. It also simplifies sharing a project or working on it concurrently, typically via git.

PlatformIO has brought this modern and efficient approach to embedded development. However, it also offers the old style of system-wide installation of libraries and even prefers it in the UI. Additionally, it creates a lib directory in each project folder by default. The mix of approaches is confusing for many users. And the system-wide installation brings back the problems of a darker age.

Unfortunately, system-wide installation is also used for managing a list of PlatformIO projects, resulting in a poor Visual Studio Code integration for features like Projects & Configuration.

Wish 1: Focus on automatic library management and implement it consistently throughout the UI

Automatic library management (use of lib_deps) should be preferred and well supported by the UI. Other approaches (system-wide installation, project lib directory) should be removed from the UI, hidden by default and deprecated in the case of system-wide installation.

Wish 2: Improve the Visual Studio Code integration regarding project management and configuration

The PlatformIO UI should only work with the projects currently open in Visual Studio Code and provide well designed UIs for configuring the current project, adding libraries to the projects, inspecting the projects etc. It should stop managing a list of projects that have been used in the past as it fundamentally breaks how Visual Studio Code works and how people expect it to work.

The two wishes could be implemented with these changes:

  • Improve the UI for searching and adding libraries. It should always work in the context of a currently open project. The search results should have a single main button that adds a lib_deps entry to platformio.ini. All other installation options should be removed or hidden.

  • Searching for libraries should by default filter for the framework and platform of the currently open project.

  • All UIs and UI elements dedicated to system-wide installation (e.g. “Installed” and “Updates” tab on Libraries page, Install and Install to… on library page) should be removed.

  • The lib directory should no longer be created by default.

  • The long standing bug that the build folder is not cleaned when platformio.ini is changed and therefore accumulates old libraries should finally be fixed.

  • Inspect and Configure should work on the currently open project and be integrated differently.

  • Open and the project list page for Projects should be removed as they are no no longer needed (Open is already provided by Visual Studio Code’s File menu) and are confusing to users.

If Santa is very generous, there’s a third wish that many beginners would enjoy:

Wish 3: Generate a new project from a code example

Provide an easy way to create a new project from a code example, both for library examples and platform examples. It should be supported by a UI that asks for additional information such a project name, board, platform (in case of library example) etc. Preferably, there would be a dedicated Start from Examples page in addition to the a button on each library and each platform page.

5 Likes

I’d like to get that present also! :smiley:

I 100% agree that global libraries should be hidden by default. The current UI default of installing to the global library storage is downright confusing. The removal of the per project \libs folder would also help, as you can always create it yourself if you intend to include private copies of libraries.

As far as removal of stuff from PIO Home (such as open button, projects list, etc), since it’s not IDE specific, I’m not sure how that would work, since it’s not editor specific. Plus if you have PIO opening with the editor, it’s handy to have the open button and project list at times. But it would be good (on the VSCode extension) for the Inspect and Configure options to be brought into the new tasks pane, and become environment/or project specific. Plus it still seems the ‘upload fs’ option is missing from the current beta extension if you have more than one environment … it’s not beta for no reason! :open_mouth: :laughing:

Wow! I don’t know how I missed it :frowning: Amazing wish list!

We will work with Santa to make you happy :blush:

1 Like