Commit Graph

138 Commits

Author SHA1 Message Date
Marek Fiala
39cbbab859 fix(tools): Enabled removing requirements.* files 2025-05-19 15:51:49 +02:00
Alexey Gerenkov
0cb7eb0465 fix(tools): Fix linter errors in 'idf_tools.py' 2025-04-14 17:10:55 +03:00
Alexey Gerenkov
e7423ebbcc feat(tools): Add standalone Clang libraries to tools.json 2025-04-14 17:10:55 +03:00
Roland Dobai
cf5989ca06 Merge branch 'fix/install_input_validation' into 'master'
fix(idf_tools): Validate input features

Closes IDF-11703

See merge request espressif/esp-idf!37852
2025-03-19 21:38:52 +08:00
Radim Karniš
7102508444 fix(idf_tools): Validate input features 2025-03-19 11:07:15 +01:00
Radim Karniš
2618abf5df fix(idf_tools): Patch extractall() deprecation warning 2025-03-18 17:47:34 +01:00
Roland Dobai
cd1c5aa075 Merge branch 'feat/deactivate_idf_env_every_run' into 'master'
feat(tools): Deactivate current ESP-IDF environment with every export run

Closes IDF-11251

See merge request espressif/esp-idf!35857
2025-03-14 16:43:25 +08:00
Marek Fiala
5e7e9dd667 feat(tools): Deactivate current ESP-IDF environment with every export run
Unix systems only
2025-03-13 14:44:52 +01:00
Marek Fiala
a09fdf2f3e feat(tools): Safer clearing IDF_PYTHON_ENV_PATH if existing 2025-03-13 17:14:01 +08:00
Marek Fiala
2c814ef2fa feat(tools): Enforce utf-8 encoding with open() function 2024-12-27 17:12:21 +08:00
Roland Dobai
a69220b32d fix(idf_tools.py): Upgrade pip and setuptools separately
This way the setuptools version dependency resolution will be done by
the upgraded pip.
2024-12-18 11:30:54 +01:00
Alexey Lapshin
ed66c1fb7d fix(tools): fix adding tar.gz archive to tools.json if tar.xz is present 2024-11-21 11:45:22 +07:00
Fu Hanxi
3e2b56d114 feat: idf_tools.py export support env var "IDF_SKIP_TOOLS_CHECK" 2024-11-08 11:13:44 +01:00
Djordje Nedic
c6bd0ded16 fix(tools): Detect Nix use and work around it for installation
Nix will create a new derivation in the store for python packages,
which leads to mismatch between the system prefixes, invalidating a
widely used check for being in a virtual environment.
This adds a Nix-specific fix for virtualenv detection.

Closes https://github.com/espressif/esp-idf/pull/14435
2024-10-22 00:19:14 +02:00
Alexey Gerenkov
64203d1403 feat(tools): update esp-clang version to esp-18.1.2_20240912 2024-09-18 21:40:34 +03:00
Frantisek Hrbata
1c22f6c4e8 feat: add python script to activate ESP-IDF environment
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-09-05 10:13:03 +02:00
Frantisek Hrbata
1679ed83ea fix: ensure the constraint file is followed also for setuptools
Currently, when the venv is installed or updated, we attempt to
automatically update pip and setuptools within the venv. Unfortunately,
the setuptools package is installed or updated without adhering to the
constraints file, which restricts the setuptools version due to
https://github.com/pypa/setuptools/issues/4480. Resolve this issue by
applying the constraints file to the installation and update of both pip
and setuptools.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-08-01 15:48:31 +02:00
Roland Dobai
86b7960c3b fix(tools/idf_tools.py): Improve the warning message about the environment 2024-06-13 12:38:14 +02:00
Roland Dobai
d1d8a81f38 fix(tools): Add suggestion how to install ESP-IDF on NixOS
Closes https://github.com/espressif/esp-idf/issues/13806
2024-05-31 09:00:14 +02:00
Anton Maklakov
e1ef214203 feat(tools): stop installation if tool is invalid
install/check commands - stop on error
export/list commands - print a warning
2024-04-12 14:03:49 +08:00
Jakub Kocka
3ad5e5c722 refactor(idf_tools): IDF version is acquired only from version or header file
Closes https://github.com/espressif/esp-idf/issues/13385
2024-03-19 15:40:45 +01:00
Roland Dobai
dc987dab7f Merge branch 'fix/idf_tools_diff_python_dir' into 'master'
fix(tools): Add additional Python environment checks

Closes IDFGH-12140

See merge request espressif/esp-idf!29162
2024-03-01 19:20:44 +08:00
Roland Dobai
185e49b53f fix(tools): Add additional Python installation checks
Warn if IDF_PYTHON_ENV_PATH set to a suspicious path with
different ESP-IDF version and/or Python version.

Fail if the virtual environment was created for a different ESP-IDF
version.

Closes https://github.com/espressif/esp-idf/issues/13196
2024-02-29 11:28:03 +01:00
Jan Beran
615285f6de fix(install.ps1): fix ReferenceError in install.ps1 script
This fix preventing RefferenceError when accessing g.idf_path
before initialization
2024-02-29 09:57:10 +01:00
Marek Fiala
54be450c4a feat(tools): detect linux platform only on linux systems
Closes https://github.com/espressif/esp-idf/issues/13148
2024-02-22 19:30:11 +08:00
Marek Fiala
da43126f02 feat(tools): idf_tools.py unsupported platforms
Plus improved error messages about platform detection.

Closes https://github.com/espressif/esp-idf/issues/12959
Closes https://github.com/espressif/esp-idf/issues/12865
2024-02-22 19:30:11 +08:00
Jan Beran
9ebba1b5c2 change(idf_tools): switch from old string formatting to f-strings and parentheses 2024-02-20 09:00:33 +01:00
Jan Beran
6e88ba4832 feat(idf_tools): Switch from global variables to global singleton 2024-02-20 09:00:33 +01:00
Marek Fiala
a97e355e74 feat(tools): Run Tools related host tests on Win 2024-02-02 14:58:04 +01:00
Jan Beran
535aa9df84 refactor(tools): add docstrings and type annotations into idf_tools.py 2024-01-31 16:08:32 +01:00
Anton Maklakov
352c621cf0 fix(idf_tools): fix delimiter when the updater parsing, ' *' or ' ' 2024-01-25 13:38:38 +07:00
Anton Maklakov
c2d6a9e700 fix(idf_tools): Fix platform detection for arm64 machine but arm32 environment 2024-01-12 17:35:37 +04:00
Anton Maklakov
a3d47a5ba8 feat(tools): error handling, stop if the binary cannot be executed 2023-12-26 15:46:04 +07:00
Aleksei Apaseev
8be8b34d23 fix(idf_tools): Do not print the log about the version of the tool 2023-12-12 11:54:30 +08:00
Aleksei Apaseev
0219e8e85d fix(idf_tools): Opt for the recommended tool in tools.json rather than the supported one 2023-12-08 10:14:19 +08:00
Jakub Kocka
cde207e996 feat(tools): Added IDF path order check for Windows platform
This relates to old GH issue: https://github.com/espressif/esp-idf/issues/5994
2023-10-24 15:34:41 +02:00
Marek Fiala
56e3e8ce56 feat(tools): Option in tools.json to rename toolchanis being downloaded
- Implemented condition that version 1 of tools.json must not contain
  new rename_dist keyword in any of #/definitions/versionInfo properties.
2023-10-17 12:28:02 +02:00
Marek Fiala
562bb6783a feat(tools): Update ninja to v1.11.1 2023-10-17 11:52:22 +02:00
Anton Maklakov
02802ea20a feat(tools): Add QEMU 8.0.0_20230522 to tools.json
Process wildcards in the install and download lists of idf_tools
    Fix the install and download handlers to get common behaviour
2023-10-10 09:59:38 +07:00
Marek Fiala
630b77094f feat(tools): Added Windows-ARM64 support
Closes https://github.com/espressif/esp-idf/issues/10345
2023-08-24 16:27:17 +02:00
Frantisek Hrbata
bf1a487b73 fix(idf_tools): execution of empty command in get_version()
The ticket below reports some very strange behaviour, where
even a simple command like the following

python3 -c "import subprocess; subprocess.run([''])"

actually spawns some process and pass instead of raising
PermissionError. Even though the problem is most probably somewhere
else, not in idf_tools, we may just return early if there is no
command available for get_version().

Closes https://github.com/espressif/esp-idf/issues/11880

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-07-24 16:19:30 +02:00
Marek Fiala
206c46325a fix(tools): Tool curses import check
Verify that curses tool can be successfully imported on unix systems

When detected:
- installing esp-idf -> reinstall python environment
- using idf.py menuconfig -> raise error with hint message

Closes https://github.com/espressif/esp-idf/issues/11643
2023-07-12 13:23:06 +00:00
Zim Kalinowski
b506176e65 build system: fix init.bat crash in windows when folder contains unicode characters 2023-06-01 10:44:54 +02:00
Roland Dobai
20a7aa9315 Tools: Update the certificate of idf_tools.py 2023-05-19 13:51:37 +02:00
Alexey Lapshin
4e411d9e3b tools: add triplet i686-linux-gnu for distributions 2023-02-22 05:33:03 +00:00
Roland Dobai
afe554c753 Tools: Allow custom Python installation path with IDF_PYTHON_ENV_PATH
IDF_PYTHON_ENV_PATH is the path where the Python environment is created
and used. By default it is inside IDF_TOOLS_PATH. IDF_PYTHON_ENV_PATH
was exported by idf_tools.py but was not imported back. This fixes the
issue and ESP-IDF will honor the value of IDF_PYTHON_ENV_PATH.

Closes https://github.com/espressif/esp-idf/issues/10489
2023-02-14 17:26:04 +01:00
Frantisek Hrbata
08c9a7b520 tools: add new outdated option for idf_tools.py list
This adds a new outdated option, which only lists outdated
packages installed in IDF_TOOLS_PATH. It searches for the
latest installed tool version in the IDF_TOOLS_PATH/tools path and
compares it against the latest available version in the tools.json
file. If the latest version of a tool installed in IDF_TOOLS_PATH/tools
is smaller, it's reported as outdated. Nothing is reported if the tool
is up to date.

Two new tests are added. First just checks if nothing is reported in
case there is no update available. The second artificially generates
new tools.json file called tools.outdated.json and sets XTENSA_ESP32_ELF
version to 'zzzzzz'. It then checks if the XTENSA_ESP32_ELF tool
is reported as outdated by the 'zzzzzz' version.

Description of the new outdated option is addedd to docs as well.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-02-09 10:25:45 +01:00
Marek Fiala
22f1a87891 Tools: bugfix Export script offers cmake & ninja for removal on macOS 2022-11-18 17:31:49 +01:00
Chen Yudong
e82ea9f1be tools: idf extra wheels url can be set by environment variables 2022-11-11 12:00:56 +08:00
Chen Yudong
97205ed0bd tools: support download espidf constraints files from mirror url 2022-11-11 10:18:55 +08:00