idf-build-apps 2.7.0__tar.gz → 2.8.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/CHANGELOG.md +12 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/PKG-INFO +3 -2
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/__init__.py +1 -1
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/args.py +18 -2
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/pyproject.toml +1 -1
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/setup.py +1 -1
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/tests/test_args.py +49 -1
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.editorconfig +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.git-blame-ignore-revs +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.gitattributes +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.github/dependabot.yml +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.github/workflows/check-pre-commit.yml +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.github/workflows/publish-pypi.yml +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.github/workflows/sync-jira.yml +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.github/workflows/test-build-docs.yml +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.github/workflows/test-build-idf-apps.yml +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.gitignore +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.pre-commit-config.yaml +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/.readthedocs.yml +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/CONTRIBUTING.md +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/LICENSE +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/README.md +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/_apidoc_templates/module.rst_t +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/_apidoc_templates/package.rst_t +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/_apidoc_templates/toc.rst_t +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/_static/espressif-logo.svg +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/_static/theme_overrides.css +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/_templates/layout.html +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/conf_common.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/Makefile +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/conf.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/explanations/build.rst +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/explanations/config_rules.rst +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/explanations/dependency_driven_build.rst +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/explanations/find.rst +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/guides/1.x_to_2.x.md +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/index.rst +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/others/CHANGELOG.md +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/others/CONTRIBUTING.md +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/references/cli.rst +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/references/config_file.rst +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/references/manifest.rst +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/__main__.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/app.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/autocompletions.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/constants.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/finder.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/junit/__init__.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/junit/report.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/junit/utils.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/log.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/main.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/manifest/__init__.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/manifest/manifest.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/manifest/soc_header.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/py.typed +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/session_args.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/utils.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/vendors/__init__.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/vendors/pydantic_sources.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/yaml/__init__.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/idf_build_apps/yaml/parser.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/license_header.txt +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/tests/conftest.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/tests/test_app.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/tests/test_build.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/tests/test_cmd.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/tests/test_finder.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/tests/test_manifest.py +0 -0
- {idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/tests/test_utils.py +0 -0
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## v2.8.1 (2025-03-04)
|
|
6
|
+
|
|
7
|
+
### Fix
|
|
8
|
+
|
|
9
|
+
- --override-sdkconfig-files not working
|
|
10
|
+
|
|
11
|
+
## v2.8.0 (2025-02-20)
|
|
12
|
+
|
|
13
|
+
### Feat
|
|
14
|
+
|
|
15
|
+
- support '--disable-targets'
|
|
16
|
+
|
|
5
17
|
## v2.7.0 (2025-02-18)
|
|
6
18
|
|
|
7
19
|
### Feat
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: idf-build-apps
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.8.1
|
|
4
4
|
Summary: Tools for building ESP-IDF related apps.
|
|
5
5
|
Author-email: Fu Hanxi <fuhanxi@espressif.com>
|
|
6
6
|
Requires-Python: >=3.7
|
|
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
License-File: LICENSE
|
|
16
17
|
Requires-Dist: pyparsing
|
|
17
18
|
Requires-Dist: pyyaml
|
|
18
19
|
Requires-Dist: packaging
|
|
@@ -27,7 +27,7 @@ from pydantic_settings import (
|
|
|
27
27
|
from typing_extensions import Concatenate, ParamSpec
|
|
28
28
|
|
|
29
29
|
from . import SESSION_ARGS, App, setup_logging
|
|
30
|
-
from .constants import ALL_TARGETS, IDF_BUILD_APPS_TOML_FN
|
|
30
|
+
from .constants import ALL_TARGETS, IDF_BUILD_APPS_TOML_FN, SUPPORTED_TARGETS
|
|
31
31
|
from .manifest.manifest import FolderRule, Manifest
|
|
32
32
|
from .utils import InvalidCommand, files_matches_patterns, semicolon_separated_str_to_list, to_absolute_path, to_list
|
|
33
33
|
from .vendors.pydantic_sources import PyprojectTomlConfigSettingsSource, TomlConfigSettingsSource
|
|
@@ -500,6 +500,14 @@ class FindBuildArguments(DependencyDrivenBuildArguments):
|
|
|
500
500
|
'including the preview targets. As the targets defined in `idf.py --list-targets --preview`',
|
|
501
501
|
default=False, # type: ignore
|
|
502
502
|
)
|
|
503
|
+
disable_targets: t.Optional[t.List[str]] = field(
|
|
504
|
+
FieldMetadata(
|
|
505
|
+
validate_method=[ValidateMethod.TO_LIST],
|
|
506
|
+
nargs='+',
|
|
507
|
+
),
|
|
508
|
+
description='space-separated list of targets that should be disabled to all apps.',
|
|
509
|
+
default=None, # type: ignore
|
|
510
|
+
)
|
|
503
511
|
include_skipped_apps: bool = field(
|
|
504
512
|
FieldMetadata(
|
|
505
513
|
action='store_true',
|
|
@@ -549,8 +557,16 @@ class FindBuildArguments(DependencyDrivenBuildArguments):
|
|
|
549
557
|
self.default_build_targets = deepcopy(ALL_TARGETS)
|
|
550
558
|
LOGGER.info('Overriding default build targets to %s', self.default_build_targets)
|
|
551
559
|
FolderRule.DEFAULT_BUILD_TARGETS = self.default_build_targets
|
|
560
|
+
else:
|
|
561
|
+
# restore default build targets
|
|
562
|
+
FolderRule.DEFAULT_BUILD_TARGETS = SUPPORTED_TARGETS
|
|
563
|
+
|
|
564
|
+
if self.disable_targets and FolderRule.DEFAULT_BUILD_TARGETS:
|
|
565
|
+
LOGGER.info('Disable targets: %s', self.disable_targets)
|
|
566
|
+
self.default_build_targets = [t for t in FolderRule.DEFAULT_BUILD_TARGETS if t not in self.disable_targets]
|
|
567
|
+
FolderRule.DEFAULT_BUILD_TARGETS = self.default_build_targets
|
|
552
568
|
|
|
553
|
-
if self.
|
|
569
|
+
if self.override_sdkconfig_files or self.override_sdkconfig_items:
|
|
554
570
|
SESSION_ARGS.set(self)
|
|
555
571
|
|
|
556
572
|
|
|
@@ -38,7 +38,7 @@ entry_points = \
|
|
|
38
38
|
{'console_scripts': ['idf-build-apps = idf_build_apps:main.main']}
|
|
39
39
|
|
|
40
40
|
setup(name='idf-build-apps',
|
|
41
|
-
version='2.
|
|
41
|
+
version='2.8.1',
|
|
42
42
|
description='Tools for building ESP-IDF related apps.',
|
|
43
43
|
author=None,
|
|
44
44
|
author_email='Fu Hanxi <fuhanxi@espressif.com>',
|
|
@@ -16,7 +16,7 @@ from idf_build_apps.args import (
|
|
|
16
16
|
FindArguments,
|
|
17
17
|
FindBuildArguments,
|
|
18
18
|
)
|
|
19
|
-
from idf_build_apps.constants import IDF_BUILD_APPS_TOML_FN
|
|
19
|
+
from idf_build_apps.constants import IDF_BUILD_APPS_TOML_FN, PREVIEW_TARGETS, SUPPORTED_TARGETS
|
|
20
20
|
from idf_build_apps.main import main
|
|
21
21
|
|
|
22
22
|
|
|
@@ -161,6 +161,54 @@ modified_files = [
|
|
|
161
161
|
assert args.deactivate_dependency_driven_build_by_components == ['baz']
|
|
162
162
|
|
|
163
163
|
|
|
164
|
+
def test_build_targets_cli(tmp_path, monkeypatch):
|
|
165
|
+
create_project('foo', tmp_path)
|
|
166
|
+
with open(IDF_BUILD_APPS_TOML_FN, 'w') as fw:
|
|
167
|
+
fw.write("""paths = ["foo"]
|
|
168
|
+
build_dir = "build_@t"
|
|
169
|
+
junitxml = "test.xml"
|
|
170
|
+
dry_run = true
|
|
171
|
+
""")
|
|
172
|
+
|
|
173
|
+
def get_enabled_targets(args):
|
|
174
|
+
with monkeypatch.context() as m:
|
|
175
|
+
m.setattr('sys.argv', args)
|
|
176
|
+
main()
|
|
177
|
+
with open('test.xml') as f:
|
|
178
|
+
xml = ElementTree.fromstring(f.read())
|
|
179
|
+
test_suite = xml.findall('testsuite')[0]
|
|
180
|
+
testcases = test_suite.findall('testcase')
|
|
181
|
+
# get targets
|
|
182
|
+
return [c.attrib['name'].replace('foo/build_', '') for c in testcases]
|
|
183
|
+
|
|
184
|
+
# default build SUPPORTED_TARGETS
|
|
185
|
+
targets = get_enabled_targets(['idf-build-apps', 'build'])
|
|
186
|
+
assert len(targets) == len(SUPPORTED_TARGETS)
|
|
187
|
+
assert set(targets) == set(SUPPORTED_TARGETS)
|
|
188
|
+
# build with --target
|
|
189
|
+
targets = get_enabled_targets(['idf-build-apps', 'build', '--target', 'esp32'])
|
|
190
|
+
assert len(targets) == 1
|
|
191
|
+
assert targets[0] == 'esp32'
|
|
192
|
+
# build with --default-build-targets
|
|
193
|
+
targets = get_enabled_targets(['idf-build-apps', 'build', '--default-build-targets', 'esp32', 'esp32s2'])
|
|
194
|
+
assert len(targets) == 2
|
|
195
|
+
assert set(targets) == {'esp32', 'esp32s2'}
|
|
196
|
+
# build with --enable-preview-targets
|
|
197
|
+
targets = get_enabled_targets(['idf-build-apps', 'build', '--enable-preview-targets'])
|
|
198
|
+
assert len(targets) == len(SUPPORTED_TARGETS) + len(PREVIEW_TARGETS)
|
|
199
|
+
assert set(targets) == set(SUPPORTED_TARGETS) | set(PREVIEW_TARGETS)
|
|
200
|
+
# build with --disable-targets
|
|
201
|
+
assert 'esp32' in SUPPORTED_TARGETS and 'esp32s2' in SUPPORTED_TARGETS
|
|
202
|
+
targets = get_enabled_targets(['idf-build-apps', 'build', '--disable-targets', 'esp32', 'esp32s2'])
|
|
203
|
+
assert set(targets) == set(SUPPORTED_TARGETS) - {'esp32', 'esp32s2'}
|
|
204
|
+
# build with --enable-preview-targets and --disable-targets
|
|
205
|
+
targets = get_enabled_targets(
|
|
206
|
+
['idf-build-apps', 'build', '--enable-preview-targets', '--disable-targets', PREVIEW_TARGETS[0]]
|
|
207
|
+
)
|
|
208
|
+
assert len(targets) == len(SUPPORTED_TARGETS) + len(PREVIEW_TARGETS) - 1
|
|
209
|
+
assert set(targets) == set(SUPPORTED_TARGETS) | set(PREVIEW_TARGETS) - {PREVIEW_TARGETS[0]}
|
|
210
|
+
|
|
211
|
+
|
|
164
212
|
class TestIgnoreWarningFile:
|
|
165
213
|
def test_deprecated_cli(self, monkeypatch, capsys):
|
|
166
214
|
with open('foo.txt', 'w') as fw:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{idf_build_apps-2.7.0 → idf_build_apps-2.8.1}/docs/en/explanations/dependency_driven_build.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|