Repository: platformio/platformio-core
Branch: develop
Commit: 73d9f3dbea80
Files: 350
Total size: 1.5 MB
Directory structure:
gitextract_4sox4ymo/
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE.md
│ └── workflows/
│ ├── core.yml
│ ├── deployment.yml
│ ├── docs.yml
│ ├── examples.yml
│ └── projects.yml
├── .gitignore
├── .gitmodules
├── .pylintrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── HISTORY.rst
├── LICENSE
├── Makefile
├── README.rst
├── SECURITY.md
├── platformio/
│ ├── __init__.py
│ ├── __main__.py
│ ├── account/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── client.py
│ │ ├── commands/
│ │ │ ├── __init__.py
│ │ │ ├── destroy.py
│ │ │ ├── forgot.py
│ │ │ ├── login.py
│ │ │ ├── logout.py
│ │ │ ├── password.py
│ │ │ ├── register.py
│ │ │ ├── show.py
│ │ │ ├── token.py
│ │ │ └── update.py
│ │ ├── org/
│ │ │ ├── __init__.py
│ │ │ ├── cli.py
│ │ │ └── commands/
│ │ │ ├── __init__.py
│ │ │ ├── add.py
│ │ │ ├── create.py
│ │ │ ├── destroy.py
│ │ │ ├── list.py
│ │ │ ├── remove.py
│ │ │ └── update.py
│ │ ├── team/
│ │ │ ├── __init__.py
│ │ │ ├── cli.py
│ │ │ └── commands/
│ │ │ ├── __init__.py
│ │ │ ├── add.py
│ │ │ ├── create.py
│ │ │ ├── destroy.py
│ │ │ ├── list.py
│ │ │ ├── remove.py
│ │ │ └── update.py
│ │ └── validate.py
│ ├── app.py
│ ├── assets/
│ │ ├── schema/
│ │ │ └── library.json
│ │ └── system/
│ │ └── 99-platformio-udev.rules
│ ├── builder/
│ │ ├── __init__.py
│ │ ├── main.py
│ │ └── tools/
│ │ ├── __init__.py
│ │ ├── pioasm.py
│ │ ├── piobuild.py
│ │ ├── piohooks.py
│ │ ├── pioino.py
│ │ ├── piointegration.py
│ │ ├── piolib.py
│ │ ├── piomaxlen.py
│ │ ├── piomisc.py
│ │ ├── pioplatform.py
│ │ ├── pioproject.py
│ │ ├── piosize.py
│ │ ├── piotarget.py
│ │ ├── piotest.py
│ │ └── pioupload.py
│ ├── cache.py
│ ├── check/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── defect.py
│ │ └── tools/
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── clangtidy.py
│ │ ├── cppcheck.py
│ │ └── pvsstudio.py
│ ├── cli.py
│ ├── commands/
│ │ ├── __init__.py
│ │ ├── boards.py
│ │ ├── ci.py
│ │ ├── device/
│ │ │ └── __init__.py
│ │ ├── lib.py
│ │ ├── platform.py
│ │ ├── settings.py
│ │ ├── update.py
│ │ └── upgrade.py
│ ├── compat.py
│ ├── debug/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── config/
│ │ │ ├── __init__.py
│ │ │ ├── base.py
│ │ │ ├── blackmagic.py
│ │ │ ├── factory.py
│ │ │ ├── generic.py
│ │ │ ├── jlink.py
│ │ │ ├── mspdebug.py
│ │ │ ├── native.py
│ │ │ ├── qemu.py
│ │ │ └── renode.py
│ │ ├── exception.py
│ │ ├── helpers.py
│ │ └── process/
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── client.py
│ │ ├── gdb.py
│ │ └── server.py
│ ├── dependencies.py
│ ├── device/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── finder.py
│ │ ├── list/
│ │ │ ├── __init__.py
│ │ │ ├── command.py
│ │ │ └── util.py
│ │ └── monitor/
│ │ ├── __init__.py
│ │ ├── command.py
│ │ ├── filters/
│ │ │ ├── __init__.py
│ │ │ ├── base.py
│ │ │ ├── hexlify.py
│ │ │ ├── log2file.py
│ │ │ ├── send_on_enter.py
│ │ │ └── time.py
│ │ └── terminal.py
│ ├── exception.py
│ ├── fs.py
│ ├── home/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── rpc/
│ │ │ ├── __init__.py
│ │ │ ├── handlers/
│ │ │ │ ├── __init__.py
│ │ │ │ ├── account.py
│ │ │ │ ├── app.py
│ │ │ │ ├── base.py
│ │ │ │ ├── ide.py
│ │ │ │ ├── misc.py
│ │ │ │ ├── os.py
│ │ │ │ ├── piocore.py
│ │ │ │ ├── platform.py
│ │ │ │ ├── project.py
│ │ │ │ └── registry.py
│ │ │ └── server.py
│ │ └── run.py
│ ├── http.py
│ ├── maintenance.py
│ ├── package/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── commands/
│ │ │ ├── __init__.py
│ │ │ ├── exec.py
│ │ │ ├── install.py
│ │ │ ├── list.py
│ │ │ ├── outdated.py
│ │ │ ├── pack.py
│ │ │ ├── publish.py
│ │ │ ├── search.py
│ │ │ ├── show.py
│ │ │ ├── uninstall.py
│ │ │ ├── unpublish.py
│ │ │ └── update.py
│ │ ├── download.py
│ │ ├── exception.py
│ │ ├── lockfile.py
│ │ ├── manager/
│ │ │ ├── __init__.py
│ │ │ ├── _download.py
│ │ │ ├── _install.py
│ │ │ ├── _legacy.py
│ │ │ ├── _registry.py
│ │ │ ├── _symlink.py
│ │ │ ├── _uninstall.py
│ │ │ ├── _update.py
│ │ │ ├── base.py
│ │ │ ├── core.py
│ │ │ ├── library.py
│ │ │ ├── platform.py
│ │ │ └── tool.py
│ │ ├── manifest/
│ │ │ ├── __init__.py
│ │ │ ├── parser.py
│ │ │ └── schema.py
│ │ ├── meta.py
│ │ ├── pack.py
│ │ ├── unpack.py
│ │ ├── vcsclient.py
│ │ └── version.py
│ ├── platform/
│ │ ├── __init__.py
│ │ ├── _packages.py
│ │ ├── _run.py
│ │ ├── base.py
│ │ ├── board.py
│ │ ├── exception.py
│ │ └── factory.py
│ ├── proc.py
│ ├── project/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── commands/
│ │ │ ├── __init__.py
│ │ │ ├── config.py
│ │ │ ├── init.py
│ │ │ └── metadata.py
│ │ ├── config.py
│ │ ├── exception.py
│ │ ├── helpers.py
│ │ ├── integration/
│ │ │ ├── __init__.py
│ │ │ ├── generator.py
│ │ │ └── tpls/
│ │ │ ├── clion/
│ │ │ │ └── .gitignore.tpl
│ │ │ ├── codeblocks/
│ │ │ │ └── platformio.cbp.tpl
│ │ │ ├── eclipse/
│ │ │ │ ├── .cproject.tpl
│ │ │ │ ├── .project.tpl
│ │ │ │ └── .settings/
│ │ │ │ ├── PlatformIO Debugger.launch.tpl
│ │ │ │ ├── language.settings.xml.tpl
│ │ │ │ └── org.eclipse.cdt.core.prefs.tpl
│ │ │ ├── emacs/
│ │ │ │ ├── .ccls.tpl
│ │ │ │ └── .gitignore.tpl
│ │ │ ├── netbeans/
│ │ │ │ └── nbproject/
│ │ │ │ ├── configurations.xml.tpl
│ │ │ │ ├── private/
│ │ │ │ │ ├── configurations.xml.tpl
│ │ │ │ │ ├── launcher.properties.tpl
│ │ │ │ │ └── private.xml.tpl
│ │ │ │ └── project.xml.tpl
│ │ │ ├── qtcreator/
│ │ │ │ ├── .gitignore.tpl
│ │ │ │ ├── Makefile.tpl
│ │ │ │ ├── platformio.cflags.tpl
│ │ │ │ ├── platformio.config.tpl
│ │ │ │ ├── platformio.creator.tpl
│ │ │ │ ├── platformio.cxxflags.tpl
│ │ │ │ ├── platformio.files.tpl
│ │ │ │ └── platformio.includes.tpl
│ │ │ ├── sublimetext/
│ │ │ │ ├── .ccls.tpl
│ │ │ │ └── platformio.sublime-project.tpl
│ │ │ ├── vim/
│ │ │ │ ├── .ccls.tpl
│ │ │ │ └── .gitignore.tpl
│ │ │ ├── visualstudio/
│ │ │ │ ├── platformio.vcxproj.filters.tpl
│ │ │ │ └── platformio.vcxproj.tpl
│ │ │ └── vscode/
│ │ │ ├── .gitignore.tpl
│ │ │ └── .vscode/
│ │ │ ├── c_cpp_properties.json.tpl
│ │ │ ├── extensions.json.tpl
│ │ │ └── launch.json.tpl
│ │ ├── options.py
│ │ └── savedeps.py
│ ├── public.py
│ ├── registry/
│ │ ├── __init__.py
│ │ ├── access/
│ │ │ ├── __init__.py
│ │ │ ├── cli.py
│ │ │ ├── commands/
│ │ │ │ ├── __init__.py
│ │ │ │ ├── grant.py
│ │ │ │ ├── list.py
│ │ │ │ ├── private.py
│ │ │ │ ├── public.py
│ │ │ │ └── revoke.py
│ │ │ └── validate.py
│ │ ├── client.py
│ │ └── mirror.py
│ ├── remote/
│ │ ├── __init__.py
│ │ ├── ac/
│ │ │ ├── __init__.py
│ │ │ ├── base.py
│ │ │ ├── process.py
│ │ │ ├── psync.py
│ │ │ └── serial.py
│ │ ├── cli.py
│ │ ├── client/
│ │ │ ├── __init__.py
│ │ │ ├── agent_list.py
│ │ │ ├── agent_service.py
│ │ │ ├── async_base.py
│ │ │ ├── base.py
│ │ │ ├── device_list.py
│ │ │ ├── device_monitor.py
│ │ │ ├── run_or_test.py
│ │ │ └── update_core.py
│ │ ├── factory/
│ │ │ ├── __init__.py
│ │ │ ├── client.py
│ │ │ └── ssl.py
│ │ └── projectsync.py
│ ├── run/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── helpers.py
│ │ └── processor.py
│ ├── system/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── commands/
│ │ │ ├── __init__.py
│ │ │ ├── completion.py
│ │ │ ├── info.py
│ │ │ └── prune.py
│ │ ├── completion.py
│ │ └── prune.py
│ ├── telemetry.py
│ ├── test/
│ │ ├── __init__.py
│ │ ├── cli.py
│ │ ├── exception.py
│ │ ├── helpers.py
│ │ ├── reports/
│ │ │ ├── __init__.py
│ │ │ ├── base.py
│ │ │ ├── json.py
│ │ │ ├── junit.py
│ │ │ └── stdout.py
│ │ ├── result.py
│ │ └── runners/
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── doctest.py
│ │ ├── factory.py
│ │ ├── googletest.py
│ │ ├── readers/
│ │ │ ├── __init__.py
│ │ │ ├── native.py
│ │ │ └── serial.py
│ │ └── unity.py
│ └── util.py
├── scripts/
│ ├── docspregen.py
│ ├── fixsymlink.py
│ └── install_devplatforms.py
├── setup.py
├── tests/
│ ├── __init__.py
│ ├── commands/
│ │ ├── __init__.py
│ │ ├── pkg/
│ │ │ ├── __init__.py
│ │ │ ├── test_exec.py
│ │ │ ├── test_install.py
│ │ │ ├── test_list.py
│ │ │ ├── test_outdated.py
│ │ │ ├── test_search.py
│ │ │ ├── test_show.py
│ │ │ ├── test_uninstall.py
│ │ │ └── test_update.py
│ │ ├── test_account_org_team.py
│ │ ├── test_boards.py
│ │ ├── test_check.py
│ │ ├── test_ci.py
│ │ ├── test_init.py
│ │ ├── test_lib.py
│ │ ├── test_lib_complex.py
│ │ ├── test_platform.py
│ │ ├── test_run.py
│ │ ├── test_settings.py
│ │ └── test_test.py
│ ├── conftest.py
│ ├── misc/
│ │ ├── __init__.py
│ │ ├── ino2cpp/
│ │ │ ├── __init__.py
│ │ │ ├── examples/
│ │ │ │ ├── basic/
│ │ │ │ │ └── basic.ino
│ │ │ │ ├── multifiles/
│ │ │ │ │ ├── bar.ino
│ │ │ │ │ └── foo.pde
│ │ │ │ └── strmultilines/
│ │ │ │ └── main.ino
│ │ │ └── test_ino2cpp.py
│ │ ├── test_maintenance.py
│ │ └── test_misc.py
│ ├── package/
│ │ ├── __init__.py
│ │ ├── test_manager.py
│ │ ├── test_manifest.py
│ │ ├── test_meta.py
│ │ └── test_pack.py
│ ├── project/
│ │ ├── __init__.py
│ │ ├── test_config.py
│ │ ├── test_metadata.py
│ │ └── test_savedeps.py
│ └── test_examples.py
└── tox.ini
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
custom: https://platformio.org/donate
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
What kind of issue is this?
- [ ] **Question**.
This issue tracker is not the place for questions. If you want to ask how to do something,
or to understand why something isn't working the way you expect it to,
use [Community Forums](https://community.platformio.org) or [Premium Support](https://platformio.org/support)
- [ ] **PlatformIO IDE**.
All issues related to PlatformIO IDE should be reported to the
[PlatformIO IDE for VSCode](https://github.com/platformio/platformio-vscode-ide/issues) repository
- [ ] **Development Platform or Board**.
All issues (building, uploading, adding new boards, etc.) related to PlatformIO development platforms
should be reported to appropriate repository related to your hardware
https://github.com/topics/platformio-platform
- [ ] **Feature Request**.
Start by telling us what problem you’re trying to solve. Often a solution
already exists! Don’t send pull requests to implement new features without first getting our
support. Sometimes we leave features out on purpose to keep the project small.
- [ ] **PlatformIO Core**.
If you’ve found a bug, please provide an information below.
*You can erase any parts of this template not applicable to your Issue.*
------------------------------------------------------------------
### Configuration
**Operating system**:
**PlatformIO Version** (`platformio --version`):
### Description of problem
#### Steps to Reproduce
1.
2.
3.
### Actual Results
### Expected Results
### If problems with PlatformIO Build System:
**The content of `platformio.ini`:**
```ini
Insert here...
```
**Source file to reproduce issue:**
```cpp
Insert here...
```
### Additional info
================================================
FILE: .github/workflows/core.yml
================================================
name: Core
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.11", "3.12", "3.13", "3.14"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
with:
submodules: "recursive"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tox
- name: Run "codespell" on Linux
if: startsWith(matrix.os, 'ubuntu')
run: |
python -m pip install codespell
make codespell
- name: Core System Info
run: |
tox -e py
- name: Integration Tests
if: ${{ matrix.python-version == '3.11' }}
run: |
tox -e testcore
- name: Slack Notification
uses: homoluctus/slatify@master
if: failure()
with:
type: ${{ job.status }}
job_name: '*Core*'
commit: true
url: ${{ secrets.SLACK_BUILD_WEBHOOK }}
token: ${{ secrets.SLACK_GITHUB_TOKEN }}
================================================
FILE: .github/workflows/deployment.yml
================================================
name: Deployment
on:
push:
branches:
- "master"
- "release/**"
jobs:
deployment:
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v6
with:
submodules: "recursive"
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tox build
- name: Deployment Tests
env:
TEST_EMAIL_LOGIN: ${{ secrets.TEST_EMAIL_LOGIN }}
TEST_EMAIL_PASSWORD: ${{ secrets.TEST_EMAIL_PASSWORD }}
TEST_EMAIL_IMAP_SERVER: ${{ secrets.TEST_EMAIL_IMAP_SERVER }}
run: |
tox -e testcore
- name: Build Python distributions
run: python -m build
- name: Publish package to PyPI
if: ${{ github.ref == 'refs/heads/master' }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
================================================
FILE: .github/workflows/docs.yml
================================================
name: Docs
on: [push, pull_request]
jobs:
build:
name: Build Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: "recursive"
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tox
- name: Build docs
run: |
tox -e docs
- name: Slack Notification
uses: homoluctus/slatify@master
if: failure()
with:
type: ${{ job.status }}
job_name: '*Docs*'
commit: true
url: ${{ secrets.SLACK_BUILD_WEBHOOK }}
token: ${{ secrets.SLACK_GITHUB_TOKEN }}
- name: Preserve Docs
if: ${{ github.event_name == 'push' }}
run: |
tar -czvf docs.tar.gz -C docs/_build html rtdpage
- name: Save artifact
if: ${{ github.event_name == 'push' }}
uses: actions/upload-artifact@v4
with:
name: docs
path: ./docs.tar.gz
deploy:
name: Deploy Docs
needs: build
runs-on: ubuntu-latest
env:
DOCS_REPO: platformio/platformio-docs
DOCS_DIR: platformio-docs
LATEST_DOCS_DIR: latest-docs
RELEASE_BUILD: ${{ startsWith(github.ref, 'refs/tags/v') }}
if: ${{ github.event_name == 'push' }}
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: docs
- name: Unpack artifact
run: |
mkdir ./${{ env.LATEST_DOCS_DIR }}
tar -xzf ./docs.tar.gz -C ./${{ env.LATEST_DOCS_DIR }}
- name: Delete Artifact
uses: geekyeggo/delete-artifact@v5
with:
name: docs
- name: Select Docs type
id: get-destination-dir
run: |
if [[ ${{ env.RELEASE_BUILD }} == true ]]; then
echo "::set-output name=dst_dir::stable"
else
echo "::set-output name=dst_dir::latest"
fi
- name: Checkout latest Docs
continue-on-error: true
uses: actions/checkout@v6
with:
repository: ${{ env.DOCS_REPO }}
path: ${{ env.DOCS_DIR }}
ref: gh-pages
- name: Synchronize Docs
run: |
rm -rf ${{ env.DOCS_DIR }}/.git
rm -rf ${{ env.DOCS_DIR }}/en/${{ steps.get-destination-dir.outputs.dst_dir }}
mkdir -p ${{ env.DOCS_DIR }}/en/${{ steps.get-destination-dir.outputs.dst_dir }}
cp -rf ${{ env.LATEST_DOCS_DIR }}/html/* ${{ env.DOCS_DIR }}/en/${{ steps.get-destination-dir.outputs.dst_dir }}
if [[ ${{ env.RELEASE_BUILD }} == false ]]; then
rm -rf ${{ env.DOCS_DIR }}/page
mkdir -p ${{ env.DOCS_DIR }}/page
cp -rf ${{ env.LATEST_DOCS_DIR }}/rtdpage/* ${{ env.DOCS_DIR }}/page
fi
- name: Validate Docs
run: |
if [ -z "$(ls -A ${{ env.DOCS_DIR }})" ]; then
echo "Docs folder is empty. Aborting!"
exit 1
fi
- name: Deploy to Github Pages
uses: peaceiris/actions-gh-pages@v4
with:
personal_token: ${{ secrets.DEPLOY_GH_DOCS_TOKEN }}
external_repository: ${{ env.DOCS_REPO }}
publish_dir: ./${{ env.DOCS_DIR }}
commit_message: Sync Docs
================================================
FILE: .github/workflows/examples.yml
================================================
name: Examples
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
env:
PIO_INSTALL_DEVPLATFORM_OWNERNAMES: "platformio"
PIO_INSTALL_DEVPLATFORM_NAMES: "aceinna_imu,atmelavr,atmelmegaavr,atmelsam,espressif32,espressif8266,nordicnrf52,raspberrypi,ststm32,teensy"
steps:
- name: Free Disk Space
uses: endersonmenezes/free-disk-space@v3
with:
remove_android: true
remove_dotnet: true
remove_haskell: true
# Faster cleanup
remove_packages_one_command: true
rm_cmd: "rmz"
- uses: actions/checkout@v6
with:
submodules: "recursive"
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tox
- name: Run on Linux
if: startsWith(matrix.os, 'ubuntu')
run: |
# Free space
sudo apt clean
# docker rmi $(docker image ls -aq)
df -h
tox -e testexamples
- name: Run on macOS
if: startsWith(matrix.os, 'macos')
run: |
df -h
tox -e testexamples
- name: Run on Windows
if: startsWith(matrix.os, 'windows')
env:
PLATFORMIO_CORE_DIR: C:/pio
PLATFORMIO_WORKSPACE_DIR: C:/pio-workspace/$PROJECT_HASH
run: |
tox -e testexamples
- name: Slack Notification
uses: homoluctus/slatify@master
if: failure()
with:
type: ${{ job.status }}
job_name: '*Examples*'
commit: true
url: ${{ secrets.SLACK_BUILD_WEBHOOK }}
token: ${{ secrets.SLACK_GITHUB_TOKEN }}
================================================
FILE: .github/workflows/projects.yml
================================================
name: Projects
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
matrix:
project:
- marlin:
repository: "MarlinFirmware/Marlin"
folder: "Marlin"
config_dir: "Marlin"
env_name: "mega2560"
- smartknob:
repository: "scottbez1/smartknob"
folder: "smartknob"
config_dir: "smartknob"
env_name: "view"
- espurna:
repository: "xoseperez/espurna"
folder: "espurna"
config_dir: "espurna/code"
env_name: "nodemcu-lolin"
- OpenMQTTGateway:
repository: "1technophile/OpenMQTTGateway"
folder: "OpenMQTTGateway"
config_dir: "OpenMQTTGateway"
env_name: "esp32-m5atom-lite"
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
with:
submodules: "recursive"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: 3.11
- name: Install PlatformIO
run: pip install -U .
- name: Check out ${{ matrix.project.repository }}
uses: actions/checkout@v6
with:
submodules: "recursive"
repository: ${{ matrix.project.repository }}
path: ${{ matrix.project.folder }}
- name: Compile ${{ matrix.project.repository }}
run: pio run -d ${{ matrix.project.config_dir }} -e ${{ matrix.project.env_name }}
================================================
FILE: .gitignore
================================================
*.egg-info
*.pyc
__pycache__
.tox
docs/_build
dist
build
.cache
coverage.xml
.coverage
htmlcov
.pytest_cache
================================================
FILE: .gitmodules
================================================
[submodule "examples"]
path = examples
url = https://github.com/platformio/platformio-examples.git
[submodule "docs"]
path = docs
url = https://github.com/platformio/platformio-docs.git
branch = develop
================================================
FILE: .pylintrc
================================================
[REPORTS]
output-format=colorized
[MESSAGES CONTROL]
disable=
missing-docstring,
duplicate-code,
invalid-name,
too-few-public-methods,
consider-using-f-string,
cyclic-import,
use-dict-literal
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Code of Conduct
See https://piolabs.com/legal/code-of-conduct.html
================================================
FILE: CONTRIBUTING.md
================================================
Contributing
------------
To get started, sign the Contributor License Agreement.
1. Fork the repository on GitHub
2. Clone repository `git clone --recursive https://github.com/YourGithubUsername/platformio-core.git`
3. Run `pip install tox`
4. Go to the root of the PlatformIO Core project where `tox.ini` is located (``cd platformio-core``) and run `tox -e py39`.
You can replace `py39` with your own Python version. For example, `py311` means Python 3.11.
5. Activate current development environment:
* Windows: `.tox\py39\Scripts\activate`
* Bash/ZSH: `source .tox/py39/bin/activate`
* Fish: `source .tox/py39/bin/activate.fish`
6. Make changes to code, documentation, etc.
7. Lint source code `make before-commit`
8. Run the tests `make test`
9. Build documentation `tox -e docs` (creates a directory _build under docs where you can find the html)
10. Commit changes to your forked repository
11. Submit a Pull Request on GitHub
================================================
FILE: HISTORY.rst
================================================
Release Notes
=============
.. |PIOCONF| replace:: `"platformio.ini" `__ configuration file
.. |LIBRARYJSON| replace:: `library.json `__
.. |LDF| replace:: `LDF `__
.. |INTERPOLATION| replace:: `Interpolation of Values `__
.. |UNITTESTING| replace:: `Unit Testing `__
.. |DEBUGGING| replace:: `Debugging `__
.. |STATICCODEANALYSIS| replace:: `Static Code Analysis `__
.. |PIOHOME| replace:: `PIO Home `__
.. _release_notes_6:
PlatformIO Core 6
-----------------
Unlock the true potential of embedded software development with
PlatformIO's collaborative ecosystem, embracing declarative principles,
test-driven methodologies, and modern toolchains for unrivaled success.
6.1.19 (2026-02-04)
~~~~~~~~~~~~~~~~~~~
* Added support for Python 3.14
* Upgraded the `Doctest `__ testing framework to version 2.4.12, the `GoogleTest `__ to version 1.17.0, and the `Unity `__ to version 2.6.1, incorporating the latest features and improvements for enhanced testing capabilities
* Enhanced compatibility with the CCLS language server, improving integration with editors like `Emacs `__, `Sublime Text `__, and `Vim `__ (`issue #5186 `_)
* Improved error messages for package installation to make it easier to understand when a package is missing or incompatible (`pull #5336 `_).
* Fixed a regression issue where custom build flags were not properly reflected in the `compile_commands.json `__ file, ensuring accurate compilation database generation
* Fixed an issue where fully-qualified serial port URLs (e.g., ``rfc2217://host:port``) were incorrectly treated as wildcard patterns (`issue #5225 `_)
* Fixed an issue where the toolchain path in static analysis was not handled correctly if it contained spaces (`pull #5351 `_)
* Fixed installation failure when the executable path contains spaces for ``postinstall`` scripts and handling both list and string command formats (`pull #5366 `_)
* Fixed cleanup of the ``.pio/libdeps`` folder so that leftover libraries are properly removed when the `lib_deps `__ option is empty (`issue #5110 `_)
6.1.18 (2025-03-11)
~~~~~~~~~~~~~~~~~~~
* Resolved a regression issue that prevented |PIOHOME| from opening external links (`issue #5084 `_)
6.1.17 (2025-02-13)
~~~~~~~~~~~~~~~~~~~
* Introduced the `PLATFORMIO_RUN_JOBS `__ environment variable, allowing manual override of the number of parallel build jobs (`issue #5077 `_)
* Added support for ``tar.xz`` tarball dependencies (`pull #4974 `_)
* Ensured that dependencies of private libraries are no longer unnecessarily re-installed, optimizing dependency management and reducing redundant operations (`issue #4987 `_)
* Resolved an issue where the ``compiledb`` target failed to properly escape compiler executable paths containing spaces (`issue #4998 `_)
* Resolved an issue with incorrect path resolution when linking static libraries via the `build_flags `__ option (`issue #5004 `_)
* Resolved an issue where the ``--project-dir`` flag did not function correctly with the `pio check `__ and `pio debug `__ commands (`issue #5029 `_)
* Resolved an issue where the |LDF| occasionally excluded bundled platform libraries from the dependency graph (`pull #4941 `_)
6.1.16 (2024-09-26)
~~~~~~~~~~~~~~~~~~~
* Added support for Python 3.13
* Introduced the `PLATFORMIO_SYSTEM_TYPE `__ environment variable, enabling manual override of the detected system type for greater flexibility and control in custom build environments
* Enhanced internet connection checks by falling back to HTTPS protocol when HTTP (port 80) fails (`issue #4980 `_)
* Upgraded the build engine to the latest version of SCons (4.8.1) to improve build performance, reliability, and compatibility with other tools and systems (`release notes `__)
* Upgraded the `Doctest `__ testing framework to version 2.4.11, the `GoogleTest `__ to version 1.15.2, and the `Unity `__ to version 2.6.0, incorporating the latest features and improvements for enhanced testing capabilities
* Corrected an issue where the incorrect public class was imported for the ``DoctestTestRunner`` (`issue #4949 `_)
6.1.15 (2024-04-25)
~~~~~~~~~~~~~~~~~~~
* Resolved an issue where the |LDF| couldn't locate a library dependency declared via version control system repository (`issue #4885 `_)
* Resolved an issue related to the inaccurate detection of the Clang compiler (`pull #4897 `_)
6.1.14 (2024-03-21)
~~~~~~~~~~~~~~~~~~~
* Introduced the ``--json-output`` option to the `pio test `__ command, enabling users to generate test results in the JSON format
* Upgraded the build engine to the latest version of SCons (4.7.0) to improve build performance, reliability, and compatibility with other tools and systems (`release notes `__)
* Broadened version support for the ``pyelftools`` dependency, enabling compatibility with lower versions and facilitating integration with a wider range of third-party tools (`issue #4834 `_)
* Addressed an issue where passing a relative path (``--project-dir``) to the `pio project init `__ command resulted in an error (`issue #4847 `_)
* Enhanced |STATICCODEANALYSIS| to accommodate scenarios where custom ``src_dir`` or ``include_dir`` are located outside the project folder (`pull #4874 `_)
* Corrected the validation of ``symlink://`` `package specifications `__ , resolving an issue that caused the package manager to repeatedly reinstall dependencies (`pull #4870 `_)
* Resolved an issue related to the relative package path in the `pio pkg publish `__ command
* Resolved an issue where the |LDF| selected an incorrect library version (`issue #4860 `_)
* Resolved an issue with the ``hexlify`` filter in the `device monitor `__ command, ensuring proper representation of characters with Unicode code points higher than 127 (`issue #4732 `_)
6.1.13 (2024-01-12)
~~~~~~~~~~~~~~~~~~~
* Expanded support for SCons variables declared in the legacy format ``${SCONS_VARNAME}`` (`issue #4828 `_)
6.1.12 (2024-01-10)
~~~~~~~~~~~~~~~~~~~
* Added support for Python 3.12
* Introduced the capability to launch the debug server in a separate process (`issue #4722 `_)
* Introduced a warning during the verification of MCU maximum RAM usage, signaling when the allocated RAM surpasses 100% (`issue #4791 `_)
* Drastically enhanced the speed of project building when operating in verbose mode (`issue #4783 `_)
* Upgraded the build engine to the latest version of SCons (4.6.0) to improve build performance, reliability, and compatibility with other tools and systems (`release notes `__)
* Enhanced the handling of built-in variables in |PIOCONF| during |INTERPOLATION| (`issue #4695 `_)
* Enhanced PIP dependency declarations for improved reliability and extended support to include Python 3.6 (`issue #4819 `_)
* Implemented automatic installation of missing dependencies when utilizing a SOCKS proxy (`issue #4822 `_)
* Implemented a fail-safe mechanism to terminate a debugging session if an unknown CLI option is passed (`issue #4699 `_)
* Rectified an issue where ``${platformio.name}`` erroneously represented ``None`` as the default `project name `__ (`issue #4717 `_)
* Resolved an issue where the ``COMPILATIONDB_INCLUDE_TOOLCHAIN`` setting was not correctly applying to private libraries (`issue #4762 `_)
* Resolved an issue where ``get_systype()`` inaccurately returned the architecture when executed within a Docker container on a 64-bit kernel with a 32-bit userspace (`issue #4777 `_)
* Resolved an issue with incorrect handling of the ``check_src_filters`` option when used in multiple environments (`issue #4788 `_)
* Resolved an issue where running `pio project metadata `__ resulted in duplicated "include" entries (`issue #4723 `_)
* Resolved an issue where native debugging failed on the host machine (`issue #4745 `_)
* Resolved an issue where custom debug configurations were being inadvertently overwritten in VSCode's ``launch.json`` (`issue #4810 `_)
6.1.11 (2023-08-31)
~~~~~~~~~~~~~~~~~~~
* Resolved a possible issue that may cause generated projects for `PlatformIO IDE for VSCode `__ to fail to launch a debug session because of a missing "objdump" binary when GDB is not part of the toolchain package
* Resolved a regression issue that resulted in the malfunction of the Memory Inspection feature within |PIOHOME|
6.1.10 (2023-08-11)
~~~~~~~~~~~~~~~~~~~
* Resolved an issue that caused generated projects for `PlatformIO IDE for VSCode `__ to break when the ``-iprefix`` compiler flag was used
* Resolved an issue encountered while utilizing the `pio pkg exec `__ command on the Windows platform to execute Python scripts from a package
* Implemented a crucial improvement to the `pio run `__ command, guaranteeing that the ``monitor`` target is not executed if any of the preceding targets, such as ``upload``, encounter failures
* `Cppcheck `__ v2.11 with new checks, CLI commands and various analysis improvements
* Resolved a critical issue that arose on macOS ARM platforms due to the Python "requests" module, leading to a "ModuleNotFoundError: No module named 'chardet'" (`issue #4702 `_)
6.1.9 (2023-07-06)
~~~~~~~~~~~~~~~~~~
* Rectified a regression bug that occurred when the ``-include`` flag was passed via the `build_flags `__ option as a relative path and subsequently expanded (`issue #4683 `_)
* Resolved an issue that resulted in unresolved absolute toolchain paths when generating the `Compilation database "compile_commands.json" `__ (`issue #4684 `_)
6.1.8 (2023-07-05)
~~~~~~~~~~~~~~~~~~
* Added a new ``--lint`` option to the `pio project config `__ command, enabling users to efficiently perform linting on the |PIOCONF|
* Enhanced the parsing of the |PIOCONF| to provide comprehensive diagnostic information
* Expanded the functionality of the |LIBRARYJSON| manifest by allowing the use of the underscore symbol in the `keywords `__ field
* Optimized project integration templates to address the issue of long paths on Windows (`issue #4652 `_)
* Refactored |UNITTESTING| engine to resolve compiler warnings with "-Wpedantic" option (`pull #4671 `_)
* Eliminated erroneous warning regarding the use of obsolete PlatformIO Core when downgrading to the stable version (`issue #4664 `_)
* Updated the `pio project metadata `__ command to return C/C++ flags as parsed Unix shell arguments when dumping project build metadata
* Resolved a critical issue related to the usage of the ``-include`` flag within the `build_flags `__ option, specifically when employing dynamic variables (`issue #4682 `_)
* Removed PlatformIO IDE for Atom from the documentation as `Atom has been deprecated `__
6.1.7 (2023-05-08)
~~~~~~~~~~~~~~~~~~
* Introduced a new ``--sample-code`` option to the `pio project init `__ command, which allows users to include sample code in the newly created project
* Added validation for `project working environment names `__ to ensure that they only contain lowercase letters ``a-z``, numbers ``0-9``, and special characters ``_`` (underscore) and ``-`` (hyphen)
* Added the ability to show a detailed library dependency tree only in `verbose mode `__, which can help you understand the relationship between libraries and troubleshoot issues more effectively (`issue #4517 `_)
* Added the ability to run only the `device monitor `__ when using the `pio run -t monitor `__ command, saving you time and resources by skipping the build process
* Implemented a new feature to store device monitor logs in the project's ``logs`` folder, making it easier to access and review device monitor logs for your projects (`issue #4596 `_)
* Improved support for projects located on Windows network drives, including Network Shared Folder, Dropbox, OneDrive, Google Drive, and other similar services (`issue #3417 `_)
* Improved source file filtering functionality for the `Static Code Analysis `__ feature, making it easier to analyze only the code you need to
* Upgraded the build engine to the latest version of SCons (4.5.2) to improve build performance, reliability, and compatibility with other tools and systems (`release notes `__)
* Implemented a fix for shell injection vulnerabilities when converting INO files to CPP, ensuring your code is safe and secure (`issue #4532 `_)
* Restored the project generator for the `NetBeans IDE `__, providing you with more flexibility and options for your development workflow
* Resolved installation issues with PIO Remote on Raspberry Pi and other small form-factor PCs (`issue #4425 `_, `issue #4493 `_, `issue #4607 `_)
* Resolved an issue where the `build_cache_dir `__ setting was not being recognized consistently across multiple environments (`issue #4574 `_)
* Resolved an issue where organization details could not be updated using the `pio org update `__ command
* Resolved an issue where the incorrect debugging environment was generated for VSCode in "Auto" mode (`issue #4597 `_)
* Resolved an issue where native tests would fail if a custom program name was specified (`issue #4546 `_)
* Resolved an issue where the PlatformIO |DEBUGGING| solution was not escaping the tool installation process into MI2 correctly (`issue #4565 `_)
* Resolved an issue where multiple targets were not executed sequentially (`issue #4604 `_)
* Resolved an issue where upgrading PlatformIO Core fails on Windows with Python 3.11 (`issue #4540 `_)
6.1.6 (2023-01-23)
~~~~~~~~~~~~~~~~~~
* Added support for Python 3.11
* Added a new `name `__ configuration option to customize a project name (`pull #4498 `_)
* Made assets (templates, ``99-platformio-udev.rules``) part of Python's module (`issue #4458 `_)
* Updated `Clang-Tidy `__ check tool to v15.0.5 with new diagnostics and bugfixes
* Removed dependency on the "zeroconf" package and install it only when a user lists mDNS devices (issue with zeroconf's LGPL license)
* Show the real error message instead of "Can not remove temporary directory" when |PIOCONF| is broken (`issue #4480 `_)
* Fixed an issue with an incorrect test summary when a testcase name includes a colon (`issue #4508 `_)
* Fixed an issue when `extends `__ did not override options in the right order (`issue #4462 `_)
* Fixed an issue when `pio pkg list `__ and `pio pkg uninstall `__ commands fail if there are circular dependencies in the |LIBRARYJSON| manifests (`issue #4475 `_)
6.1.5 (2022-11-01)
~~~~~~~~~~~~~~~~~~
* Added a new `enable_proxy_strict_ssl `__ setting to disable the proxy server certificate verification (`issue #4432 `_)
* Documented `PlatformIO Core Proxy Configuration `__
* Speeded up device port finder by avoiding loading board HWIDs from development platforms
* Improved caching of build metadata in debug mode
* Fixed an issue when `pio pkg install --storage-dir `__ command requires PlatformIO project (`issue #4410 `_)
6.1.4 (2022-08-12)
~~~~~~~~~~~~~~~~~~
* Added support for accepting the original FileNode environment in a "callback" function when using `Build Middlewares `__ (`pull #4380 `_)
* Improved device port finder when using dual channel UART converter (`issue #4367 `_)
* Improved project dependency resolving when using the `pio project init --ide `__ command
* Upgraded build engine to the SCons 4.4.0 (`release notes `__)
* Keep custom "unwantedRecommendations" when generating projects for VSCode (`issue #4383 `_)
* Do not resolve project dependencies for the ``cleanall`` target (`issue #4344 `_)
* Warn about calling "env.BuildSources" in a POST-type script (`issue #4385 `_)
* Fixed an issue when escaping macros/defines for IDE integration (`issue #4360 `_)
* Fixed an issue when the "cleanall" target removes dependencies from all working environments (`issue #4386 `_)
6.1.3 (2022-07-18)
~~~~~~~~~~~~~~~~~~
* Fixed a regression bug when opening device monitor without any filters (`issue #4363 `_)
6.1.2 (2022-07-18)
~~~~~~~~~~~~~~~~~~
* Export a ``PIO_UNIT_TESTING`` macro to the project source files and dependent libraries in the |UNITTESTING| mode
* Improved detection of Windows architecture (`issue #4353 `_)
* Warn about unknown `device monitor filters `__ (`issue #4362 `_)
* Fixed a regression bug when `libArchive `__ option declared in the |LIBRARYJSON| manifest was ignored (`issue #4351 `_)
* Fixed an issue when the `pio pkg publish `__ command didn't work with Python 3.6 (`issue #4352 `_)
6.1.1 (2022-07-11)
~~~~~~~~~~~~~~~~~~
* Added new ``monitor_encoding`` project configuration option to configure `Device Monitor `__ (`issue #4350 `_)
* Allowed specifying project environments for `pio ci `__ command (`issue #4347 `_)
* Show "TimeoutError" only in the verbose mode when can not find a serial port
* Fixed an issue when a serial port was not automatically detected if the board has predefined HWIDs
* Fixed an issue with endless scanning of project dependencies (`issue #4349 `_)
* Fixed an issue with |LDF| when incompatible libraries were used for the working project environment with the missed framework (`pull #4346 `_)
6.1.0 (2022-07-06)
~~~~~~~~~~~~~~~~~~
* **Device Manager**
- Automatically reconnect device monitor if a connection fails
- Added new `pio device monitor --no-reconnect `__ option to disable automatic reconnection
- Handle device monitor disconnects more gracefully (`issue #3939 `_)
- Improved a serial port finder for `Black Magic Probe `__ (`issue #4023 `_)
- Improved a serial port finder for a board with predefined HWIDs
- Replaced ``monitor_flags`` with independent project configuration options: `monitor_parity `__, `monitor_eol `__, `monitor_raw `__, `monitor_echo `__
- Fixed an issue when the monitor filters were not applied in their order (`issue #4320 `_)
* **Unit Testing**
- Updated "Getting Started" documentation for `GoogleTest `__ testing and mocking framework
- Export |UNITTESTING| flags only to the project build environment (``projenv``, files in "src" folder)
- Merged the "building" stage with "uploading" for the embedded target (`issue #4307 `_)
- Do not resolve dependencies from the project "src" folder when the `test_build_src `__ option is not enabled
- Do not immediately terminate a testing program when results are received
- Fixed an issue when a custom `pio test --project-config `__ was not handled properly (`issue #4299 `_)
- Fixed an issue when testing results were wrong in the verbose mode (`issue #4336 `_)
* **Build System**
- Significantly improved support for `Pre & Post Actions `__
* Allowed to declare actions in the `PRE-type scripts `__ even if the target is not ready yet
* Allowed library maintainers to use Pre & Post Actions in the library `extraScript `__
- Documented `Stringification `__ – converting a macro argument into a string constant (`issue #4310 `_)
- Added new `pio run --monitor-port `__ option to specify custom device monitor port to the ``monitor`` target (`issue #4337 `_)
- Added ``env.StringifyMacro(value)`` helper function for the `Advanced Scripting `__
- Allowed to ``Import("projenv")`` in a library extra script (`issue #4305 `_)
- Fixed an issue when the `build_unflags `__ operation ignores a flag value (`issue #4309 `_)
- Fixed an issue when the `build_unflags `__ option was not applied to the ``ASPPFLAGS`` scope
- Fixed an issue on Windows OS when flags were wrapped to the temporary file while generating the `Compilation database "compile_commands.json" `__
- Fixed an issue with the |LDF| when recursively scanning dependencies in the ``chain`` mode
- Fixed a "PermissionError" on Windows when running "clean" or "cleanall" targets (`issue #4331 `_)
* **Package Management**
- Fixed an issue when library dependencies were installed for the incompatible project environment (`issue #4338 `_)
* **Miscellaneous**
- Warn about incompatible Bash version for the `Shell Completion `__ (`issue #4326 `_)
6.0.2 (2022-06-01)
~~~~~~~~~~~~~~~~~~
* Control |UNITTESTING| verbosity with a new multilevel `pio test -v `__ command option (`issue #4276 `_)
* Follow symbolic links during searching for the unit test suites (`issue #4288 `_)
* Show a warning when testing an empty project without a test suite (`issue #4278 `_)
* Improved support for `Asking for input (prompts) `_
* Fixed an issue when the `build_src_flags `__ option was applied outside the project scope (`issue #4277 `_)
* Fixed an issue with debugging assembly files without preprocessor (".s")
6.0.1 (2022-05-17)
~~~~~~~~~~~~~~~~~~
* Improved support for the renamed configuration options (`issue #4270 `_)
* Fixed an issue when calling the built-in `pio device monitor `__ filters
* Fixed an issue when using |INTERPOLATION| and merging str+int options (`issue #4271 `_)
6.0.0 (2022-05-16)
~~~~~~~~~~~~~~~~~~
Please check the `Migration guide from 5.x to 6.0 `__.
* **Package Management**
- New unified Package Management CLI (``pio pkg``):
* `pio pkg exec `_ - run command from package tool (`issue #4163 `_)
* `pio pkg install `_ - install the project dependencies or custom packages
* `pio pkg list `__ - list installed packages
* `pio pkg outdated `__ - check for project outdated packages
* `pio pkg search `__ - search for packages
* `pio pkg show `__ - show package information
* `pio pkg uninstall `_ - uninstall the project dependencies or custom packages
* `pio pkg update `__ - update the project dependencies or custom packages
- Package Manifest
* Added support for `"scripts" `__ (`issue #485 `_)
* Added support for `multi-licensed `__ packages using SPDX Expressions (`issue #4037 `_)
* Added support for `"dependencies" `__ declared in a "tool" package manifest
- Added support for `symbolic links `__ allowing pointing the local source folder to the Package Manager (`issue #3348 `_)
- Automatically install dependencies of the local (private) project libraries (`issue #2910 `_)
- Improved detection of a package type from the tarball archive (`issue #3828 `_)
- Ignore files according to the patterns declared in ".gitignore" when using the `pio package pack `__ command (`issue #4188 `_)
- Dropped automatic updates of global libraries and development platforms (`issue #4179 `_)
- Dropped support for the "pythonPackages" field in "platform.json" manifest in favor of `Extra Python Dependencies `__
- Fixed an issue when manually removed dependencies from the |PIOCONF| were not uninstalled from the storage (`issue #3076 `_)
* **Unit Testing**
- Refactored from scratch |UNITTESTING| solution and its documentation
- New: `Test Hierarchy `_ (`issue #4135 `_)
- New: `Doctest `__ testing framework (`issue #4240 `_)
- New: `GoogleTest `__ testing and mocking framework (`issue #3572 `_)
- New: `Semihosting `__ (`issue #3516 `_)
- New: Hardware `Simulators `__ for Unit Testing (QEMU, Renode, SimAVR, and custom solutions)
- New: ``test`` `build configuration `__
- Added support for a `custom testing framework `_
- Added support for a custom `testing command `__
- Added support for a `custom Unity library `__ (`issue #3980 `_)
- Added support for the ``socket://`` and ``rfc2217://`` protocols using `test_port `__ option (`issue #4229 `_)
- List available project tests with a new `pio test --list-tests `__ option
- Pass extra arguments to the testing program with a new `pio test --program-arg `__ option (`issue #3132 `_)
- Generate reports in JUnit and JSON formats using the `pio test `__ command (`issue #2891 `_)
- Provide more information when the native program crashed on a host (errored with a non-zero return code) (`issue #3429 `_)
- Improved automatic detection of a testing serial port (`issue #4076 `_)
- Fixed an issue when command line parameters (``--ignore``, ``--filter``) do not override values defined in the |PIOCONF| (`issue #3845 `_)
- Renamed the "test_build_project_src" project configuration option to the `test_build_src `__
- Removed the "test_transport" option in favor of the `Custom "unity_config.h" `_
* **Static Code Analysis**
- Updated analysis tools:
* `Cppcheck `__ v2.7 with various checker improvements and fixed false positives
* `PVS-Studio `__ v7.18 with improved and updated semantic analysis system
- Added support for the custom `Clang-Tidy `__ configuration file (`issue #4186 `_)
- Added ability to override a tool version using the `platform_packages `__ option (`issue #3798 `_)
- Fixed an issue with improper handling of defects that don't specify a source file (`issue #4237 `_)
* **Build System**
- Show project dependency licenses when building in the verbose mode
- Fixed an issue when |LDF| ignores the project `lib_deps `__ while resolving library dependencies (`issue #3598