idf-build-apps 2.13.1__tar.gz → 2.13.2__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.13.1 → idf_build_apps-2.13.2}/CHANGELOG.md +8 -0
  2. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/PKG-INFO +1 -1
  3. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/__init__.py +1 -1
  4. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/app.py +18 -1
  5. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/args.py +1 -0
  6. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/main.py +3 -0
  7. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/pyproject.toml +1 -1
  8. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/setup.py +1 -1
  9. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/tests/test_build.py +12 -6
  10. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.editorconfig +0 -0
  11. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.git-blame-ignore-revs +0 -0
  12. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.gitattributes +0 -0
  13. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.github/dependabot.yml +0 -0
  14. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.github/workflows/publish-pypi.yml +0 -0
  15. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.github/workflows/sync-jira.yml +0 -0
  16. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.github/workflows/test-build-docs.yml +0 -0
  17. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.github/workflows/test-build-idf-apps.yml +0 -0
  18. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.gitignore +0 -0
  19. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.pre-commit-config.yaml +0 -0
  20. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/.readthedocs.yml +0 -0
  21. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/CONTRIBUTING.md +0 -0
  22. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/LICENSE +0 -0
  23. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/README.md +0 -0
  24. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/_apidoc_templates/module.rst_t +0 -0
  25. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/_apidoc_templates/package.rst_t +0 -0
  26. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/_apidoc_templates/toc.rst_t +0 -0
  27. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/_static/espressif-logo.svg +0 -0
  28. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/_static/theme_overrides.css +0 -0
  29. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/_templates/layout.html +0 -0
  30. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/conf_common.py +0 -0
  31. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/Makefile +0 -0
  32. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/conf.py +0 -0
  33. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/explanations/build.rst +0 -0
  34. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/explanations/build_status.rst +0 -0
  35. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/explanations/config_rules.rst +0 -0
  36. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/explanations/dependency_driven_build.rst +0 -0
  37. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/explanations/find.rst +0 -0
  38. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/guides/1.x_to_2.x.md +0 -0
  39. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/guides/custom_app.md +0 -0
  40. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/index.rst +0 -0
  41. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/others/CHANGELOG.md +0 -0
  42. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/others/CONTRIBUTING.md +0 -0
  43. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/references/cli.rst +0 -0
  44. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/references/config_file.rst +0 -0
  45. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/docs/en/references/manifest.rst +0 -0
  46. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/__main__.py +0 -0
  47. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/autocompletions.py +0 -0
  48. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/constants.py +0 -0
  49. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/finder.py +0 -0
  50. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/junit/__init__.py +0 -0
  51. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/junit/report.py +0 -0
  52. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/junit/utils.py +0 -0
  53. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/log.py +0 -0
  54. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/manifest/__init__.py +0 -0
  55. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/manifest/manifest.py +0 -0
  56. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/manifest/soc_header.py +0 -0
  57. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/py.typed +0 -0
  58. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/session_args.py +0 -0
  59. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/utils.py +0 -0
  60. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/vendors/__init__.py +0 -0
  61. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/vendors/pydantic_sources.py +0 -0
  62. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/yaml/__init__.py +0 -0
  63. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/idf_build_apps/yaml/parser.py +0 -0
  64. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/license_header.txt +0 -0
  65. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/tests/conftest.py +0 -0
  66. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/tests/test_app.py +0 -0
  67. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/tests/test_args.py +0 -0
  68. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/tests/test_cmd.py +0 -0
  69. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/tests/test_disable_reasons.py +0 -0
  70. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/tests/test_finder.py +0 -0
  71. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/tests/test_manifest.py +0 -0
  72. {idf_build_apps-2.13.1 → idf_build_apps-2.13.2}/tests/test_utils.py +0 -0
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## v2.13.2 (2025-10-23)
6
+
7
+ ### 🐛 Bug Fixes
8
+
9
+ - update broken tests for `size.json` *(Evgeny Torbin - c603221)*
10
+ - change `idf_size.py --format json` to `--format json2` *(Evgeny Torbin - 49b9f3d)*
11
+
12
+
5
13
  ## v2.13.1 (2025-09-29)
6
14
 
7
15
  ### 🐛 Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: idf-build-apps
3
- Version: 2.13.1
3
+ Version: 2.13.2
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.13.1'
11
+ __version__ = '2.13.2'
12
12
 
13
13
  from .session_args import (
14
14
  SessionArgs,
@@ -642,11 +642,28 @@ class App(BaseModel):
642
642
  return
643
643
 
644
644
  if IDF_VERSION >= Version('4.1'):
645
+ """
646
+ Starting from version 2.0.0 esp-idf-size uses new generation (NG) implementation.
647
+ In newest version `--format json` was changed to `--format json2`.
648
+ For different versions of IDF there are 4 scenarios:
649
+
650
+ 1. 6.0 - NG is enforced until version 2.x will be fully incorporated.
651
+ 2. >=5.3 <=5.5 - NG is enabled by default, but could be disabled using `-l/--legacy` argument.
652
+ 3. 5.1 and 5.2 - only legacy mode is supported.
653
+ 4. <5.1 - esp-idf-size package is not used, only `--json` argument is supported.
654
+ """
655
+ if IDF_VERSION >= Version('5.3'):
656
+ format_arg = ['--format', 'json2']
657
+ elif IDF_VERSION >= Version('5.1'):
658
+ format_arg = ['--format', 'json']
659
+ else:
660
+ format_arg = ['--json']
661
+
645
662
  subprocess_run(
646
663
  [
647
664
  sys.executable,
648
665
  str(IDF_SIZE_PY),
649
- *(['--json'] if IDF_VERSION < Version('5.1') else ['--format', 'json']),
666
+ *(format_arg),
650
667
  '-o',
651
668
  self.size_json_path,
652
669
  *(self.size_json_extra_args or []),
@@ -145,6 +145,7 @@ class BaseArguments(BaseSettings):
145
145
  # these below two are supported in pydantic 2.6
146
146
  pyproject_toml_table_header=('tool', 'idf-build-apps'),
147
147
  pyproject_toml_depth=sys.maxsize,
148
+ validate_default=True,
148
149
  extra='ignore', # we're supporting pydantic <2.6 as well, so we ignore extra fields
149
150
  )
150
151
 
@@ -396,6 +396,9 @@ def main():
396
396
  Manifest.from_files(arguments.manifest_files).dump_sha_values(arguments.output)
397
397
  sys.exit(0)
398
398
  elif action == 'find':
399
+ print('reinstall idf-build-apps')
400
+ print(kwargs['paths'])
401
+
399
402
  arguments = FindArguments(**drop_none_kwargs(kwargs))
400
403
  else:
401
404
  arguments = BuildArguments(**drop_none_kwargs(kwargs))
@@ -65,7 +65,7 @@ idf-build-apps = "idf_build_apps:main.main"
65
65
 
66
66
  [tool.commitizen]
67
67
  name = "czespressif"
68
- version = "2.13.1"
68
+ version = "2.13.2"
69
69
 
70
70
  tag_format = "v$version"
71
71
  version_scheme = "pep440"
@@ -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.13.1',
41
+ version='2.13.2',
42
42
  description='Tools for building ESP-IDF related apps.',
43
43
  author=None,
44
44
  author_email='Fu Hanxi <fuhanxi@espressif.com>',
@@ -223,9 +223,13 @@ class TestBuild:
223
223
  with open(app.size_json_path) as f:
224
224
  size_data = json.load(f)
225
225
 
226
- expected_keys = ['dram_data', 'dram_bss', 'used_dram', 'iram_text', 'flash_code', 'total_size']
227
- for key in expected_keys:
228
- assert key in size_data, f"Size JSON should contain '{key}' when no extra args"
226
+ expected_names = ['Flash Code', 'IRAM', 'Flash Data', 'DRAM', 'RTC SLOW']
227
+
228
+ assert 'layout' in size_data
229
+ size_data_names = [name_info['name'] for name_info in size_data['layout']]
230
+
231
+ for name in expected_names:
232
+ assert name in size_data_names, f"Size JSON layout should contain '{name}' when no extra args"
229
233
 
230
234
  def test_build_with_size_json_with_extra_args(self, tmp_path):
231
235
  """Test idf_size_py with extra args."""
@@ -247,14 +251,16 @@ class TestBuild:
247
251
  with open(app.size_json_path) as f:
248
252
  size_data = json.load(f)
249
253
 
250
- expected_keys = [
254
+ expected_files = [
251
255
  'libesp_timer.a:system_time.c.obj',
252
256
  'libc.a:libc_a-vfprintf.o',
253
257
  'libfreertos.a:tasks.c.obj',
254
258
  'libheap.a:tlsf.c.obj',
255
259
  ]
256
- for key in expected_keys:
257
- assert key in size_data, f"Size JSON should contain '{key}' with extra args"
260
+
261
+ size_data_files = size_data.keys()
262
+ for file in expected_files:
263
+ assert any(file in s for s in size_data_files), f"Size JSON should contain '{file}' with extra args"
258
264
 
259
265
 
260
266
  class CustomClassApp(App):
File without changes