Commit Graph

121 Commits

Author SHA1 Message Date
Frantisek Hrbata
4c90790cd2 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-02 09:30:11 +02:00
Roland Dobai
04cf7d1230 fix(tools/idf_tools.py): Improve the warning message about the environment 2024-06-14 10:01:05 +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
Roland Dobai
404612b130 Tools: Check venv the same way how it will be used later
It is possible that import of venv passes but it still cannot be
started. This can happen with the embedded Python deployed by the
ESP-IDF installer.
2022-10-10 12:31:23 +02:00
Roland Dobai
e2d275a382 Merge branch 'fix/export_without_constraint_download' into 'master'
Tools: The Python dependency checker should not update the constraint file

Closes IDF-6010

See merge request espressif/esp-idf!20460
2022-10-10 15:39:09 +08:00
Alexey Lapshin
e6f7b1a3a0 tools: cmake: check tool supported version with idf_tools.py 2022-10-03 19:01:32 +04:00
Roland Dobai
d50f574a31 Tools: The Python dependency checker should not update the constraint file
The Python dependency checker called from the export scripts and before
build remains offline, i.e. it will use the previously downloaded
constraint file but won't download a newer version.

Related to https://github.com/espressif/esp-idf/pull/9328
2022-10-03 11:39:28 +02:00
Roland Dobai
02605f1a31 Merge branch 'fix/idf_tools_download_issues' into 'master'
Tools: Improve download error messages coming from idf_tools.py

Closes IDFGH-8120

See merge request espressif/esp-idf!20325
2022-09-26 16:55:48 +08:00
Roland Dobai
e2c66520db Tools: Improve download error messages coming from idf_tools.py
Closes https://github.com/espressif/esp-idf/issues/9618
2022-09-23 14:00:31 +02:00
Alexey Lapshin
fd2846c95e tools: add esp-rom-elfs version '20220823' 2022-09-21 22:39:03 +04:00
Marek Fiala
c63ec6cf08 Tools: Support ESP-IDF installed in system-wide shared directory for all users
Closes: https://github.com/espressif/esp-idf/issues/9329
Closes: https://github.com/espressif/esp-idf/pull/9328
2022-09-16 09:15:19 +02:00
Ivan Grokhotkov
5aa688ad4a
tools: update bundled root certificate in idf_tools.py
dl.espressif.com is now using the same root certificate as github.com.
This commit replaces the previously-used ISRG X1 root certificate
with the DigiCert Root CA certificate.
As a result, even if the certificates are not installed (as it happens
on macOS with python.org installers, if the user forgets to run
'Install Certificates.command'), the download is successful.

Related to https://github.com/espressif/esp-idf/issues/4081
2022-09-09 17:33:33 +02:00
Alexey Lapshin
3556536748 tools: update gdb version to '11.2_20220823'
Closes https://github.com/espressif/esp-idf/issues/6124
2022-08-24 23:00:30 +04:00
Roland Dobai
bab3830797 Tools: Fix flake8 version 5 warnings 2022-08-12 08:13:13 +00:00
Roland Dobai
e6c313b5f0 Tools: Upgrade pip and setuptools if venv is not able
venv upgrades pip and setuptools by the --upgrade-deps option available
since Python 3.9. This commit adds manual upgrade for Pythons 3.7 and 3.8.
2022-08-10 14:04:14 +02:00
Roland Dobai
de37f9dc33 Tools: Disable Python constraint files with environment variable
Constraint files can be disabled with environment variable as well which
is useful when one uses the install/export scripts instead of
idf_tools.py directly. This is option is useful for offline build as
well.

Closes https://github.com/espressif/esp-idf/issues/9263
2022-07-14 11:25:29 +02:00
Marek Fiala
90a69c4490 Tools: --disable-* argument for removing features
Optional argument --disable-* for removing features in install scripts.
2022-06-30 12:31:59 +02:00
Roland Dobai
ed795c86df Tools: Use built-in venv instead of virtualenv for creating Python environments 2022-05-28 06:43:14 +00:00
Alexey Lapshin
0afd70c362 Tools: fix architecture armhf/armel detection 2022-05-18 15:18:09 +04:00
Alexey Lapshin
e49d4a83d9 tools: Add tool's versions update with checksum file
'idf_tools.py add-version' has new options:
--override            Override tool versions with new data
--checksum-file       URL or path to local file with checksum/size for artifacts

Usage e.g.:
CHECKSUM_URL=https://github.com/espressif/crosstool-NG/releases/download/esp-2021r2/crosstool-NG-esp-2021r2-checksum.sha256
idf_tools.py add-version --tool xtensa-esp32-elf --version esp-2021r2 --override --checksum-file $CHECKSUM_URL

Positional argument 'files' moved to optional argument '--artifact-file'

Add tests for add-version logic
2022-05-13 06:51:59 +00:00