platformio / platformio-core

Your Gateway to Embedded Software Development Excellence :alien:
https://platformio.org
Apache License 2.0
7.84k stars 789 forks source link

Release 6.1.12 breaks installation through github actions #4827

Closed Strooom closed 8 months ago

Strooom commented 8 months ago

What kind of issue is this? PlatformIO Core.

I am running a CI/CD workflow on github actions, which installs (the most recent version of) PlatformIO. After the upgrade to 6.1.12, this installation fails. On my development machine (Win64 v11) the installation/upgrade worked ok.

repository : https://github.com/Strooom/MuMo-v2-Node-SW workflow run #22, still using 6.1.11 ran OK workflow run #23, installing 6.1.12 failed the installation : looks like it fails on/after the installation of the ststm32 package

Here is the log of the installation that failed

Run pip install --upgrade platformio
  pip install --upgrade platformio
  pio pkg install --environment dummy
  shell: /usr/bin/bash -e {0}
  env:
    pythonLocation: /opt/hostedtoolcache/Python/3.9.18/x64
    PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.9.18/x64/lib/pkgconfig
    Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64
    Python[2](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:2)_ROOT_DIR: /opt/hostedtoolcache/Python/[3](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:3).9.18/x6[4](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:4)
    Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.9.18/x64/lib
Collecting platformio
  Downloading platformio-6.1.12.tar.gz (237 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 237.8/237.8 kB 8.[5](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:5) MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting bottle==0.12.* (from platformio)
  Using cached bottle-0.12.25-py3-none-any.whl (90 kB)
Collecting click<9,>=8.0.4 (from platformio)
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting colorama (from platformio)
  Using cached colorama-0.4.[6](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:6)-py2.py3-none-any.whl (25 kB)
Collecting marshmallow==3.* (from platformio)
  Downloading marshmallow-3.20.2-py3-none-any.whl.metadata ([7](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:7).5 kB)
Collecting pyelftools==0.30 (from platformio)
  Downloading pyelftools-0.30-py2.py3-none-any.whl.metadata (3[8](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:8)1 bytes)
Collecting pyserial==3.5.* (from platformio)
  Using cached pyserial-3.5-py2.py3-none-any.whl ([9](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:9)0 kB)
Collecting requests==2.* (from platformio)
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting semantic-version==2.[10](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:10).* (from platformio)
  Using cached semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)
Collecting tabulate==0.* (from platformio)
  Using cached tabulate-0.9.0-py3-none-any.whl (35 kB)
Collecting ajsonrpc==1.2.* (from platformio)
  Using cached ajsonrpc-1.2.0-py3-none-any.whl (22 kB)
Collecting starlette<0.35,>=0.19 (from platformio)
  Downloading starlette-0.34.0-py3-none-any.whl.metadata (5.8 kB)
Collecting uvicorn<0.26,>=0.16 (from platformio)
  Downloading uvicorn-0.25.0-py3-none-any.whl.metadata (6.4 kB)
Collecting wsproto==1.* (from platformio)
  Using cached wsproto-1.2.0-py3-none-any.whl (24 kB)
Collecting packaging>=17.0 (from marshmallow==3.*->platformio)
  Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting charset-normalizer<4,>=2 (from requests==2.*->platformio)
  Using cached charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB)
Collecting idna<4,>=2.5 (from requests==2.*->platformio)
  Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests==2.*->platformio)
  Using cached urllib3-2.1.0-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests==2.*->platformio)
  Using cached certifi-2023.[11](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:11).17-py3-none-any.whl.metadata (2.2 kB)
Collecting h11<1,>=0.9.0 (from wsproto==1.*->platformio)
  Using cached h11-0.14.0-py3-none-any.whl (58 kB)
Collecting anyio<5,>=3.4.0 (from starlette<0.35,>=0.19->platformio)
  Using cached anyio-4.2.0-py3-none-any.whl.metadata (4.6 kB)
Collecting typing-extensions>=3.10.0 (from starlette<0.35,>=0.19->platformio)
  Using cached typing_extensions-4.9.0-py3-none-any.whl.metadata (3.0 kB)
Collecting sniffio>=1.1 (from anyio<5,>=3.4.0->starlette<0.35,>=0.19->platformio)
  Using cached sniffio-1.3.0-py3-none-any.whl (10 kB)
Collecting exceptiongroup>=1.0.2 (from anyio<5,>=3.4.0->starlette<0.35,>=0.19->platformio)
  Using cached exceptiongroup-1.2.0-py3-none-any.whl.metadata (6.6 kB)
Downloading marshmallow-3.20.2-py3-none-any.whl (49 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 49.4/49.4 kB 13.0 MB/s eta 0:00:00
Downloading pyelftools-0.30-py2.py3-none-any.whl (177 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 177.6/177.6 kB 21.0 MB/s eta 0:00:00
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Downloading starlette-0.34.0-py3-none-any.whl (70 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.3/70.3 kB 19.5 MB/s eta 0:00:00
Downloading uvicorn-0.25.0-py3-none-any.whl (60 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.3/60.3 kB 18.3 MB/s eta 0:00:00
Using cached anyio-4.2.0-py3-none-any.whl (85 kB)
Using cached certifi-2023.11.17-py3-none-any.whl (162 kB)
Using cached charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (142 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached packaging-23.2-py3-none-any.whl (53 kB)
Using cached typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Using cached urllib3-2.1.0-py3-none-any.whl (104 kB)
Using cached exceptiongroup-1.2.0-py3-none-any.whl (16 kB)
Building wheels for collected packages: platformio
  Building wheel for platformio (pyproject.toml): started
  Building wheel for platformio (pyproject.toml): finished with status 'done'
  Created wheel for platformio: filename=platformio-6.1.[12](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:13)-py3-none-any.whl size=418214 sha256=202defc5e62e24afe5081502dfa358926b5fdceccb501f888753795754d42c32
  Stored in directory: /home/runner/.cache/pip/wheels/79/55/d1/6aa76f6df76acc901fe187be85e4279266207b1d1ead9e7d05
Successfully built platformio
Installing collected packages: pyserial, pyelftools, bottle, urllib3, typing-extensions, tabulate, sniffio, semantic-version, packaging, idna, h11, exceptiongroup, colorama, click, charset-normalizer, certifi, ajsonrpc, wsproto, uvicorn, requests, marshmallow, anyio, starlette, platformio
Successfully installed ajsonrpc-1.2.0 anyio-4.2.0 bottle-0.12.25 certifi-2023.11.17 charset-normalizer-3.3.2 click-8.1.7 colorama-0.4.6 exceptiongroup-1.2.0 h11-0.14.0 idna-3.6 marshmallow-3.20.2 packaging-23.2 platformio-6.1.12 pyelftools-0.30 pyserial-3.5 requests-2.31.0 semantic-version-2.10.0 sniffio-1.3.0 starlette-0.34.0 tabulate-0.9.0 typing-extensions-4.9.0 urllib3-2.1.0 uvicorn-0.25.0 wsproto-1.2.0

Notice:  A new release of pip is available: 23.0.1 -> 23.3.2
Notice:  To update, run: pip install --upgrade pip
********************************************************************************
If you like PlatformIO, please:
- star it on GitHub > https://github.com/platformio/platformio-core
- follow us on LinkedIn to stay up-to-date on the latest project news > https://www.linkedin.com/company/platformio/
- try PlatformIO IDE for embedded development > https://platformio.org/platformio-ide
********************************************************************************

Resolving dummy dependencies...
Platform Manager: Installing ststm32
Unpacking 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Platform Manager: ststm32@17.2.0 has been installed!
AssertionError: Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/__main__.py", line 103, in main
    cli()  # pylint: disable=no-value-for-parameter
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/cli.py", line 85, in invoke
    return super().invoke(ctx)
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/package/commands/install.py", line 68, in package_install_cmd
    install_project_dependencies(options)
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/package/commands/install.py", line 107, in install_project_dependencies
    already_up_to_date = not install_project_env_dependencies(env, options)
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/package/commands/install.py", line [13](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:14)2, in install_project_env_dependencies
    _install_project_env_platform(project_env, options),
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/package/commands/install.py", line [14](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:15)9, in _install_project_env_platform
    PlatformPackageManager().install(
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/package/manager/platform.py", line 60, in install
    p.configure_project_packages(project_env, project_targets)
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/platform/base.py", line 185, in configure_project_packages
    self.configure_default_packages(options, targets or [])
  File "/home/runner/.platformio/platforms/ststm32/platform.py", line 29, in configure_default_packages
    board_config = self.board_config(board)
  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/platform/base.py", line [17](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:18)2, in board_config
    assert id_
AssertionError

============================================================

An unexpected error occurred. Further steps:

* Verify that you have the latest version of PlatformIO using
  `python -m pip install -U platformio` command

* Try to find answer in FAQ Troubleshooting section
  https://docs.platformio.org/page/faq/index.html

* Report this problem to the developers
  https://github.com/platformio/platformio-core/issues

============================================================

Error: Process completed with exit code 1.
Strooom commented 8 months ago

changed the command to install PlatformIO to pip install platformio==6.1.11 and now the workflow is running again. But of course it would be better to be able to run the latest version.

ivankravets commented 8 months ago

The issue is caused by a custom board. Do you have custom board JSON in boards folder?

ivankravets commented 8 months ago

The ststm32 dev-platform does not support running an environment without board definition. See https://github.com/platformio/platform-ststm32/blob/develop/platform.py#L29

It was previously a bug in PIO Core that didn't raise the exception.

Regarding your dummy configuration, just add any board = ...

Strooom commented 8 months ago

I can confirm that when adding the custom board in platformio.ini, the installation now works again. Thanks Ivan.

artyomsv commented 7 months ago

I`m facing the same issue using version 6.1.13. In my scenario, I do not want to define -e and want to install packages for all the environments (20+), but I am getting same exception

  File "/opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/platformio/platform/base.py", line [17](https://github.com/Strooom/MuMo-v2-Node-SW/actions/runs/7479180355/job/20355781257#step:10:18)2, in board_config
    assert id_
AssertionError
ivankravets commented 7 months ago

Could you share your platformio.ini?

artyomsv commented 7 months ago

Could you share your platformio.ini?

#
# Marlin Firmware
# PlatformIO Configuration File
#
# For detailed documentation with EXAMPLES:
#
# https://docs.platformio.org/en/latest/projectconf/index.html
#

# Automatic targets - enable auto-uploading
#targets = upload

[platformio]
src_dir      = Marlin
boards_dir   = buildroot/share/PlatformIO/boards
default_envs = mega2560
include_dir  = Marlin
extra_configs =
    Marlin/config.ini
    ini/avr.ini
    ini/due.ini
    ini/esp32.ini
    ini/features.ini
    ini/lpc176x.ini
    ini/native.ini
    ini/samd21.ini
    ini/samd51.ini
    ini/stm32-common.ini
    ini/stm32f0.ini
    ini/stm32f1-maple.ini
    ini/stm32f1.ini
    ini/stm32f4.ini
    ini/stm32f7.ini
    ini/stm32h7.ini
    ini/stm32g0.ini
    ini/teensy.ini
    ini/renamed.ini

#
# The 'common' section applies to most Marlin builds.
#
# By default platformio build will abort after 5 errors.
# Remove '-fmax-errors=5' from build_flags below to see all.
#
[common]
build_flags        = -g3 -D__MARLIN_FIRMWARE__ -DNDEBUG
                     -fmax-errors=5
extra_scripts      =
  pre:buildroot/share/PlatformIO/scripts/configuration.py
  pre:buildroot/share/PlatformIO/scripts/common-dependencies.py
  pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
  pre:buildroot/share/PlatformIO/scripts/preflight-checks.py
  post:buildroot/share/PlatformIO/scripts/common-dependencies-post.py
lib_deps           =
default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared> -<src/tests>
  -<src/lcd/HD44780> -<src/lcd/TFTGLCD> -<src/lcd/dogm> -<src/lcd/tft> -<src/lcd/tft_io>
  -<src/HAL/STM32/tft> -<src/HAL/STM32F1/tft>
  -<src/lcd/e3v2/common> -<src/lcd/e3v2/creality> -<src/lcd/e3v2/proui> -<src/lcd/e3v2/jyersui> -<src/lcd/e3v2/marlinui>
  -<src/lcd/menu>
  -<src/lcd/menu/game/game.cpp> -<src/lcd/menu/game/brickout.cpp> -<src/lcd/menu/game/invaders.cpp>
  -<src/lcd/menu/game/maze.cpp> -<src/lcd/menu/game/snake.cpp>
  -<src/lcd/menu/menu_backlash.cpp>
  -<src/lcd/menu/menu_bed_corners.cpp>
  -<src/lcd/menu/menu_bed_leveling.cpp>
  -<src/lcd/menu/menu_cancelobject.cpp>
  -<src/lcd/menu/menu_delta_calibrate.cpp>
  -<src/lcd/menu/menu_filament.cpp>
  -<src/lcd/menu/menu_info.cpp>
  -<src/lcd/menu/menu_job_recovery.cpp>
  -<src/lcd/menu/menu_language.cpp>
  -<src/lcd/menu/menu_led.cpp>
  -<src/lcd/menu/menu_media.cpp>
  -<src/lcd/menu/menu_mmu2.cpp>
  -<src/lcd/menu/menu_password.cpp>
  -<src/lcd/menu/menu_power_monitor.cpp>
  -<src/lcd/menu/menu_spindle_laser.cpp>
  -<src/lcd/menu/menu_temperature.cpp>
  -<src/lcd/menu/menu_tmc.cpp>
  -<src/lcd/menu/menu_touch_screen.cpp>
  -<src/lcd/menu/menu_tramming.cpp>
  -<src/lcd/menu/menu_ubl.cpp>
  -<src/lcd/menu/menu_x_twist.cpp>
  -<src/lcd/extui/anycubic_chiron>
  -<src/lcd/extui/anycubic_i3mega>
  -<src/lcd/extui/dgus> -<src/lcd/extui/dgus/fysetc> -<src/lcd/extui/dgus/hiprecy> -<src/lcd/extui/dgus/mks> -<src/lcd/extui/dgus/origin>
  -<src/lcd/extui/dgus_reloaded>
  -<src/lcd/extui/example>
  -<src/lcd/extui/ftdi_eve_touch_ui>
  -<src/lcd/extui/malyan>
  -<src/lcd/extui/mks_ui>
  -<src/lcd/extui/nextion>
  -<src/lcd/lcdprint.cpp>
  -<src/lcd/touch/touch_buttons.cpp>
  -<src/sd/usb_flashdrive/lib-uhs2> -<src/sd/usb_flashdrive/lib-uhs3>
  -<src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp>
  -<src/sd/cardreader.cpp> -<src/sd/Sd2Card.cpp> -<src/sd/SdBaseFile.cpp> -<src/sd/SdFatUtil.cpp> -<src/sd/SdFile.cpp> -<src/sd/SdVolume.cpp>
  -<src/HAL/shared/backtrace>
  -<src/HAL/shared/cpu_exception>
  -<src/HAL/shared/eeprom_if_i2c.cpp>
  -<src/HAL/shared/eeprom_if_spi.cpp>
  -<src/feature/adc> -<src/gcode/feature/adc>
  -<src/feature/ammeter.cpp>
  -<src/feature/babystep.cpp>
  -<src/feature/backlash.cpp>
  -<src/feature/baricuda.cpp> -<src/gcode/feature/baricuda>
  -<src/feature/bedlevel/abl> -<src/gcode/bedlevel/abl>
  -<src/feature/bedlevel/bdl> -<src/gcode/probe/M102.cpp>
  -<src/feature/bedlevel/mbl> -<src/gcode/bedlevel/mbl>
  -<src/feature/bedlevel/ubl> -<src/gcode/bedlevel/ubl>
  -<src/feature/bedlevel/hilbert_curve.cpp>
  -<src/feature/binary_stream.cpp> -<src/libs/heatshrink>
  -<src/feature/bltouch.cpp>
  -<src/feature/cancel_object.cpp> -<src/gcode/feature/cancel>
  -<src/feature/caselight.cpp> -<src/gcode/feature/caselight>
  -<src/feature/closedloop.cpp>
  -<src/feature/controllerfan.cpp> -<src/gcode/feature/controllerfan>
  -<src/feature/cooler.cpp>  -<src/gcode/temp/M143_M193.cpp>
  -<src/feature/dac> -<src/feature/digipot>
  -<src/feature/direct_stepping.cpp> -<src/gcode/motion/G6.cpp>
  -<src/feature/e_parser.cpp>
  -<src/feature/easythreed_ui.cpp>
  -<src/feature/encoder_i2c.cpp>
  -<src/feature/ethernet.cpp> -<src/gcode/feature/network/M552-M554.cpp>
  -<src/feature/fancheck.cpp>
  -<src/feature/fanmux.cpp>
  -<src/feature/filwidth.cpp> -<src/gcode/feature/filwidth>
  -<src/feature/fwretract.cpp> -<src/gcode/feature/fwretract>
  -<src/feature/host_actions.cpp>
  -<src/feature/hotend_idle.cpp>
  -<src/feature/joystick.cpp>
  -<src/feature/leds/blinkm.cpp>
  -<src/feature/leds/leds.cpp>
  -<src/feature/leds/neopixel.cpp>
  -<src/feature/leds/pca9533.cpp>
  -<src/feature/leds/pca9632.cpp>
  -<src/feature/leds/printer_event_leds.cpp>
  -<src/feature/leds/tempstat.cpp>
  -<src/feature/max7219.cpp>
  -<src/feature/meatpack.cpp>
  -<src/feature/mixing.cpp>
  -<src/feature/mmu/mmu.cpp>
  -<src/feature/mmu/mmu2.cpp> -<src/gcode/feature/prusa_MMU2>
  -<src/feature/password> -<src/gcode/feature/password>
  -<src/feature/pause.cpp>
  -<src/feature/power.cpp>
  -<src/feature/power_monitor.cpp> -<src/gcode/feature/power_monitor>
  -<src/feature/powerloss.cpp> -<src/gcode/feature/powerloss>
  -<src/feature/probe_temp_comp.cpp>
  -<src/feature/repeat.cpp>
  -<src/feature/runout.cpp> -<src/gcode/feature/runout>
  -<src/feature/snmm.cpp>
  -<src/feature/solenoid.cpp> -<src/gcode/control/M380_M381.cpp>
  -<src/feature/spindle_laser.cpp> -<src/gcode/control/M3-M5.cpp>
  -<src/feature/stepper_driver_safety.cpp>
  -<src/feature/tmc_util.cpp> -<src/module/stepper/trinamic.cpp>
  -<src/feature/tramming.cpp>
  -<src/feature/twibus.cpp>
  -<src/feature/x_twist.cpp> -<src/gcode/probe/M423.cpp>
  -<src/feature/z_stepper_align.cpp>
  -<src/gcode/bedlevel/G26.cpp>
  -<src/gcode/bedlevel/G35.cpp>
  -<src/gcode/bedlevel/G42.cpp>
  -<src/gcode/bedlevel/M420.cpp> -<src/feature/bedlevel/bedlevel.cpp>
  -<src/gcode/calibrate/G33.cpp>
  -<src/gcode/calibrate/G34.cpp>
  -<src/gcode/calibrate/G34_M422.cpp>
  -<src/gcode/calibrate/G76_M871.cpp>
  -<src/gcode/calibrate/G425.cpp>
  -<src/gcode/calibrate/M12.cpp>
  -<src/gcode/calibrate/M48.cpp>
  -<src/gcode/calibrate/M100.cpp>
  -<src/gcode/calibrate/M425.cpp>
  -<src/gcode/calibrate/M665.cpp>
  -<src/gcode/calibrate/M666.cpp>
  -<src/gcode/calibrate/M852.cpp>
  -<src/gcode/control/M10-M11.cpp>
  -<src/gcode/control/M42.cpp> -<src/gcode/control/M226.cpp>
  -<src/gcode/config/M43.cpp>
  -<src/gcode/config/M217.cpp>
  -<src/gcode/config/M218.cpp>
  -<src/gcode/config/M221.cpp>
  -<src/gcode/config/M301.cpp>
  -<src/gcode/config/M302.cpp>
  -<src/gcode/config/M304.cpp>
  -<src/gcode/config/M305.cpp>
  -<src/gcode/config/M540.cpp>
  -<src/gcode/config/M575.cpp>
  -<src/gcode/config/M672.cpp>
  -<src/gcode/control/M7-M9.cpp>
  -<src/gcode/control/M211.cpp>
  -<src/gcode/control/M350_M351.cpp>
  -<src/gcode/control/M605.cpp>
  -<src/gcode/feature/advance>
  -<src/gcode/feature/camera>
  -<src/gcode/feature/i2c>
  -<src/gcode/feature/input_shaping>
  -<src/gcode/feature/L6470>
  -<src/gcode/feature/leds/M150.cpp>
  -<src/gcode/feature/leds/M7219.cpp>
  -<src/gcode/feature/macro>
  -<src/gcode/feature/mixing/M163-M165.cpp>
  -<src/gcode/feature/mixing/M166.cpp>
  -<src/gcode/feature/pause/G27.cpp>
  -<src/gcode/feature/pause/G60.cpp>
  -<src/gcode/feature/pause/G61.cpp>
  -<src/gcode/feature/pause/M125.cpp>
  -<src/gcode/feature/pause/M600.cpp>
  -<src/gcode/feature/pause/M603.cpp>
  -<src/gcode/feature/pause/M701_M702.cpp>
  -<src/gcode/feature/trinamic/M122.cpp>
  -<src/gcode/feature/trinamic/M569.cpp>
  -<src/gcode/feature/trinamic/M906.cpp>
  -<src/gcode/feature/trinamic/M911-M914.cpp>
  -<src/gcode/feature/trinamic/M919.cpp>
  -<src/gcode/geometry/G17-G19.cpp>
  -<src/gcode/geometry/G53-G59.cpp>
  -<src/gcode/geometry/M206_M428.cpp>
  -<src/gcode/host/M16.cpp>
  -<src/gcode/host/M113.cpp>
  -<src/gcode/host/M154.cpp>
  -<src/gcode/host/M360.cpp>
  -<src/gcode/host/M876.cpp>
  -<src/gcode/lcd/M0_M1.cpp>
  -<src/gcode/lcd/M73.cpp>
  -<src/gcode/lcd/M117.cpp>
  -<src/gcode/lcd/M145.cpp>
  -<src/gcode/lcd/M250.cpp> -<src/gcode/lcd/M255.cpp> -<src/gcode/lcd/M256.cpp>
  -<src/gcode/lcd/M300.cpp>
  -<src/gcode/lcd/M414.cpp>
  -<src/gcode/lcd/M995.cpp>
  -<src/gcode/motion/G2_G3.cpp>
  -<src/gcode/motion/G5.cpp>
  -<src/gcode/motion/G80.cpp>
  -<src/gcode/motion/M290.cpp>
  -<src/gcode/probe/G30.cpp>
  -<src/gcode/probe/G31_G32.cpp>
  -<src/gcode/probe/G38.cpp>
  -<src/gcode/probe/M401_M402.cpp>
  -<src/gcode/probe/M851.cpp>
  -<src/gcode/probe/M951.cpp>
  -<src/gcode/scara>
  -<src/gcode/sd>
  -<src/gcode/sd/M32.cpp>
  -<src/gcode/sd/M808.cpp>
  -<src/gcode/temp/M104_M109.cpp>
  -<src/gcode/temp/M123.cpp>
  -<src/gcode/temp/M155.cpp>
  -<src/gcode/temp/M192.cpp>
  -<src/gcode/temp/M306.cpp>
  -<src/gcode/units/G20_G21.cpp>
  -<src/gcode/units/M82_M83.cpp>
  -<src/gcode/units/M149.cpp>
  -<src/libs/BL24CXX.cpp> -<src/libs/W25Qxx.cpp>
  -<src/libs/MAX31865.cpp>
  -<src/libs/hex_print.cpp>
  -<src/libs/least_squares_fit.cpp>
  -<src/libs/nozzle.cpp> -<src/gcode/feature/clean>
  -<src/module/delta.cpp>
  -<src/module/planner_bezier.cpp>
  -<src/module/polargraph.cpp>
  -<src/module/printcounter.cpp>
  -<src/module/probe.cpp>
  -<src/module/scara.cpp>
  -<src/module/servo.cpp> -<src/gcode/control/M280.cpp> -<src/gcode/config/M281.cpp> -<src/gcode/control/M282.cpp>
  -<src/module/stepper/TMC26X.cpp>

#
# Default values apply to all 'env:' prefixed environments
#
[env]
framework         = arduino
extra_scripts     = ${common.extra_scripts}
build_flags       = ${common.build_flags}
lib_deps          = ${common.lib_deps}
monitor_speed     = 250000
monitor_eol       = LF
monitor_echo      = yes
monitor_filters   = colorize, time, send_on_enter

#
# Just print the dependency tree
#
[env:include_tree]
platform         = atmelavr
board            = megaatmega2560
build_flags      = -c -H -std=gnu++11 -Wall -Os -D__MARLIN_FIRMWARE__
build_src_filter = +<src/MarlinCore.cpp>

Source code is taken from : Marlin

ivankravets commented 7 months ago

want to install packages for all the environments (20+)

Wow!!!!!!!! So, we have spent 10 years developing PlatformIO and letting developers bootstrap environments on demand to save networking resources whereas you try to do the opposite. So, why do you need 20+ envs and a dozen of gigabytes data?

artyomsv commented 7 months ago

want to install packages for all the environments (20+)

Wow!!!!!!!! So, we have spent 10 years developing PlatformIO and letting developers bootstrap environments on demand to save networking resources whereas you try to do the opposite. So, why do you need 20+ envs and a dozen of gigabytes data?

The idea is to build a docker image that will have all the necessary dependencies. I do not know yet how big that image is going to be.

ivankravets commented 7 months ago

It will not work. We update development platforms frequently including their dependencies. Each version of the development platform depends on the specified list of packages. For Marlin, you will need ~20Gb of storage. This is exactly what you should not do and PlatformIO was developed to solve one of these problems with package distribtuion.