idf-build-apps 2.12.1__tar.gz → 2.12.3__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.
Files changed (72) hide show
  1. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/CHANGELOG.md +12 -0
  2. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/PKG-INFO +1 -1
  3. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/__init__.py +1 -1
  4. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/utils.py +3 -0
  5. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/pyproject.toml +1 -1
  6. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/setup.py +1 -1
  7. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/tests/test_finder.py +2 -2
  8. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/tests/test_utils.py +17 -0
  9. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.editorconfig +0 -0
  10. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.git-blame-ignore-revs +0 -0
  11. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.gitattributes +0 -0
  12. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.github/dependabot.yml +0 -0
  13. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.github/workflows/publish-pypi.yml +0 -0
  14. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.github/workflows/sync-jira.yml +0 -0
  15. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.github/workflows/test-build-docs.yml +0 -0
  16. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.github/workflows/test-build-idf-apps.yml +0 -0
  17. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.gitignore +0 -0
  18. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.pre-commit-config.yaml +0 -0
  19. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/.readthedocs.yml +0 -0
  20. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/CONTRIBUTING.md +0 -0
  21. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/LICENSE +0 -0
  22. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/README.md +0 -0
  23. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/_apidoc_templates/module.rst_t +0 -0
  24. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/_apidoc_templates/package.rst_t +0 -0
  25. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/_apidoc_templates/toc.rst_t +0 -0
  26. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/_static/espressif-logo.svg +0 -0
  27. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/_static/theme_overrides.css +0 -0
  28. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/_templates/layout.html +0 -0
  29. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/conf_common.py +0 -0
  30. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/Makefile +0 -0
  31. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/conf.py +0 -0
  32. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/explanations/build.rst +0 -0
  33. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/explanations/build_status.rst +0 -0
  34. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/explanations/config_rules.rst +0 -0
  35. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/explanations/dependency_driven_build.rst +0 -0
  36. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/explanations/find.rst +0 -0
  37. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/guides/1.x_to_2.x.md +0 -0
  38. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/guides/custom_app.md +0 -0
  39. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/index.rst +0 -0
  40. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/others/CHANGELOG.md +0 -0
  41. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/others/CONTRIBUTING.md +0 -0
  42. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/references/cli.rst +0 -0
  43. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/references/config_file.rst +0 -0
  44. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/docs/en/references/manifest.rst +0 -0
  45. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/__main__.py +0 -0
  46. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/app.py +3 -3
  47. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/args.py +0 -0
  48. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/autocompletions.py +0 -0
  49. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/constants.py +0 -0
  50. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/finder.py +0 -0
  51. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/junit/__init__.py +0 -0
  52. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/junit/report.py +0 -0
  53. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/junit/utils.py +0 -0
  54. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/log.py +0 -0
  55. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/main.py +0 -0
  56. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/manifest/__init__.py +0 -0
  57. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/manifest/manifest.py +0 -0
  58. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/manifest/soc_header.py +0 -0
  59. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/py.typed +0 -0
  60. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/session_args.py +0 -0
  61. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/vendors/__init__.py +0 -0
  62. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/vendors/pydantic_sources.py +0 -0
  63. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/yaml/__init__.py +0 -0
  64. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/idf_build_apps/yaml/parser.py +0 -0
  65. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/license_header.txt +0 -0
  66. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/tests/conftest.py +0 -0
  67. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/tests/test_app.py +0 -0
  68. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/tests/test_args.py +0 -0
  69. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/tests/test_build.py +0 -0
  70. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/tests/test_cmd.py +0 -0
  71. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/tests/test_disable_reasons.py +0 -0
  72. {idf_build_apps-2.12.1 → idf_build_apps-2.12.3}/tests/test_manifest.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.12.3 (2025-09-16)
6
+
7
+ ### Fix
8
+
9
+ - app behaves normally in set
10
+
11
+ ## v2.12.2 (2025-08-27)
12
+
13
+ ### Fix
14
+
15
+ - disable rules wrongly ignored when defining CONFIG_IDF_TARGET in sdkconfig files
16
+
5
17
  ## v2.12.1 (2025-08-21)
6
18
 
7
19
  ### Fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: idf-build-apps
3
- Version: 2.12.1
3
+ Version: 2.12.3
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
@@ -8,7 +8,7 @@ Tools for building ESP-IDF related apps.
8
8
  # ruff: noqa: E402
9
9
  # avoid circular imports
10
10
 
11
- __version__ = '2.12.1'
11
+ __version__ = '2.12.3'
12
12
 
13
13
  from .session_args import (
14
14
  SessionArgs,
@@ -386,6 +386,9 @@ class BaseModel(_BaseModel):
386
386
  hash_list = []
387
387
 
388
388
  self_model_dump = self.model_dump()
389
+ for _field in self.__EQ_IGNORE_FIELDS__:
390
+ self_model_dump.pop(_field, None)
391
+
389
392
  for _field in self.__EQ_TUNE_FIELDS__:
390
393
  self_model_dump[_field] = self.__EQ_TUNE_FIELDS__[_field](self_model_dump[_field])
391
394
 
@@ -65,7 +65,7 @@ idf-build-apps = "idf_build_apps:main.main"
65
65
 
66
66
  [tool.commitizen]
67
67
  name = "cz_conventional_commits"
68
- version = "2.12.1"
68
+ version = "2.12.3"
69
69
  tag_format = "v$version"
70
70
  version_files = [
71
71
  "idf_build_apps/__init__.py",
@@ -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.12.1',
41
+ version='2.12.3',
42
42
  description='Tools for building ESP-IDF related apps.',
43
43
  author=None,
44
44
  author_email='Fu Hanxi <fuhanxi@espressif.com>',
@@ -475,7 +475,7 @@ class TestFindWithSdkconfigFiles:
475
475
  apps = find_apps(str(tmp_path / 'foo'), 'esp32p4', default_build_targets=['esp32p4'])
476
476
  assert len(apps) == 1
477
477
 
478
- def test_with_sdkconfig_defaults_idf_target_but_disabled_failed(self, tmp_path):
478
+ def test_with_sdkconfig_defaults_idf_target_but_disabled(self, tmp_path):
479
479
  manifest_file = tmp_path / 'manifest.yml'
480
480
  manifest_file.write_text(
481
481
  f"""
@@ -490,7 +490,7 @@ class TestFindWithSdkconfigFiles:
490
490
 
491
491
  test_dir = os.path.join(IDF_PATH, 'examples', 'get-started', 'hello_world')
492
492
  # according to idf.py, if `CONFIG_IDF_TARGET` is set to `esp32s2`, the app should be built
493
- assert find_apps(
493
+ assert not find_apps(
494
494
  test_dir,
495
495
  'esp32s2',
496
496
  recursive=True,
@@ -8,6 +8,7 @@ from pathlib import (
8
8
  import pytest
9
9
 
10
10
  from idf_build_apps.utils import (
11
+ BaseModel,
11
12
  files_matches_patterns,
12
13
  get_parallel_start_stop,
13
14
  rmdir,
@@ -142,3 +143,19 @@ def test_files_matches_patterns(tmp_path):
142
143
  os.chdir(temp_dir)
143
144
  for f in matched_files:
144
145
  assert files_matches_patterns(f, abs_pat)
146
+
147
+
148
+ def test_base_model_hashable():
149
+ class Foo(BaseModel):
150
+ foo: str
151
+ bar: str
152
+
153
+ __EQ_IGNORE_FIELDS__ = ['bar']
154
+
155
+ a = Foo(foo='foo', bar='bar')
156
+ b = Foo(foo='foo', bar='rab')
157
+
158
+ assert a == b
159
+ assert hash(a) == hash(b)
160
+ s = {a, b}
161
+ assert len(s) == 1
File without changes
@@ -419,14 +419,14 @@ class App(BaseModel):
419
419
 
420
420
  @property
421
421
  def supported_targets(self) -> t.List[str]:
422
- if self.sdkconfig_files_defined_idf_target:
423
- return [self.sdkconfig_files_defined_idf_target]
424
-
425
422
  if self.MANIFEST:
426
423
  return self.MANIFEST.enable_build_targets(
427
424
  self.app_dir, self.sdkconfig_files_defined_idf_target, self.config_name
428
425
  )
429
426
 
427
+ if self.sdkconfig_files_defined_idf_target:
428
+ return [self.sdkconfig_files_defined_idf_target]
429
+
430
430
  return DEFAULT_BUILD_TARGETS.get()
431
431
 
432
432
  @property