idf_build_apps 2.2.2__tar.gz → 2.3.0__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 (64) hide show
  1. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/CHANGELOG.md +14 -0
  2. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/PKG-INFO +1 -1
  3. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/__init__.py +1 -1
  4. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/main.py +48 -9
  5. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/pyproject.toml +1 -1
  6. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/setup.py +1 -1
  7. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.editorconfig +0 -0
  8. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.git-blame-ignore-revs +0 -0
  9. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.gitattributes +0 -0
  10. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.github/dependabot.yml +0 -0
  11. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.github/workflows/check-pre-commit.yml +0 -0
  12. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.github/workflows/issue_comment.yml +0 -0
  13. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.github/workflows/new_issues.yml +0 -0
  14. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.github/workflows/new_prs.yml +0 -0
  15. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.github/workflows/publish-pypi.yml +0 -0
  16. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.github/workflows/test-build-docs.yml +0 -0
  17. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.github/workflows/test-build-idf-apps.yml +0 -0
  18. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.gitignore +0 -0
  19. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.pre-commit-config.yaml +0 -0
  20. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/.readthedocs.yml +0 -0
  21. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/CONTRIBUTING.md +0 -0
  22. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/LICENSE +0 -0
  23. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/README.md +0 -0
  24. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/CHANGELOG.md +0 -0
  25. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/CONTRIBUTING.md +0 -0
  26. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/Makefile +0 -0
  27. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/_apidoc_templates/module.rst_t +0 -0
  28. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/_apidoc_templates/package.rst_t +0 -0
  29. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/_apidoc_templates/toc.rst_t +0 -0
  30. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/_static/espressif-logo.svg +0 -0
  31. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/_static/theme_overrides.css +0 -0
  32. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/_templates/layout.html +0 -0
  33. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/cli.rst +0 -0
  34. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/conf.py +0 -0
  35. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/config_file.md +0 -0
  36. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/find_build.md +0 -0
  37. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/index.rst +0 -0
  38. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/manifest.md +0 -0
  39. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/docs/migration/1.x_to_2.x.md +0 -0
  40. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/__main__.py +0 -0
  41. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/app.py +0 -0
  42. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/build_apps_args.py +0 -0
  43. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/config.py +0 -0
  44. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/constants.py +0 -0
  45. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/finder.py +0 -0
  46. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/junit/__init__.py +0 -0
  47. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/junit/report.py +0 -0
  48. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/junit/utils.py +0 -0
  49. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/log.py +0 -0
  50. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/manifest/__init__.py +0 -0
  51. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/manifest/if_parser.py +0 -0
  52. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/manifest/manifest.py +0 -0
  53. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/manifest/soc_header.py +0 -0
  54. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/session_args.py +0 -0
  55. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/utils.py +0 -0
  56. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/yaml/__init__.py +0 -0
  57. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/idf_build_apps/yaml/parser.py +0 -0
  58. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/license_header.txt +0 -0
  59. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/tests/conftest.py +0 -0
  60. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/tests/test_app.py +0 -0
  61. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/tests/test_build.py +0 -0
  62. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/tests/test_finder.py +0 -0
  63. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/tests/test_manifest.py +0 -0
  64. {idf_build_apps-2.2.2 → idf_build_apps-2.3.0}/tests/test_utils.py +0 -0
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## v2.3.0 (2024-03-20)
6
+
7
+ ### Feat
8
+
9
+ - support ignore app dependencies by components
10
+
5
11
  ## v2.2.2 (2024-03-13)
6
12
 
7
13
  ### Fix
@@ -101,6 +107,14 @@ Here are the breaking changes:
101
107
  - remove `LOGGER` from `idf_build_apps`, use `logging.getLogger('idf_build_apps')` instead
102
108
  - rename `build_job.py` to `build_apps_args.py`, `BuildAppJob` to `BuildAppsArgs`
103
109
 
110
+ ## v1.1.5 (2024-03-20)
111
+
112
+ ### Fix
113
+
114
+ - python 2.7 old class
115
+ - search sdkconfig path
116
+ - improve error message when env var IDF_PATH not set
117
+
104
118
  ## v1.1.4 (2023-12-29)
105
119
 
106
120
  ### Fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: idf-build-apps
3
- Version: 2.2.2
3
+ Version: 2.3.0
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.2.2'
11
+ __version__ = '2.3.0'
12
12
 
13
13
  from .session_args import (
14
14
  SessionArgs,
@@ -66,12 +66,26 @@ def _check_app_dependency(
66
66
  manifest_rootpath: t.Optional[str] = None,
67
67
  modified_components: t.Optional[t.List[str]] = None,
68
68
  modified_files: t.Optional[t.List[str]] = None,
69
+ ignore_app_dependencies_components: t.Optional[t.List[str]] = None,
69
70
  ignore_app_dependencies_filepatterns: t.Optional[t.List[str]] = None,
70
71
  ) -> bool:
71
72
  # not check since modified_components and modified_files are not passed
72
73
  if modified_components is None and modified_files is None:
73
74
  return False
74
75
 
76
+ # not check since ignore_app_dependencies_components is passed and matched
77
+ if (
78
+ ignore_app_dependencies_components
79
+ and modified_components is not None
80
+ and set(modified_components).intersection(ignore_app_dependencies_components)
81
+ ):
82
+ LOGGER.info(
83
+ 'Build all apps since modified components %s matches ignored components %s',
84
+ ', '.join(modified_components),
85
+ ', '.join(ignore_app_dependencies_components),
86
+ )
87
+ return False
88
+
75
89
  # not check since ignore_app_dependencies_filepatterns is passed and matched
76
90
  if (
77
91
  ignore_app_dependencies_filepatterns
@@ -79,7 +93,7 @@ def _check_app_dependency(
79
93
  and files_matches_patterns(modified_files, ignore_app_dependencies_filepatterns, manifest_rootpath)
80
94
  ):
81
95
  LOGGER.info(
82
- 'Build all apps since patterns %s matches modified files %s',
96
+ 'Build all apps since modified files %s matches ignored file patterns %s',
83
97
  ', '.join(modified_files),
84
98
  ', '.join(ignore_app_dependencies_filepatterns),
85
99
  )
@@ -108,6 +122,7 @@ def find_apps(
108
122
  default_build_targets: t.Optional[t.Union[t.List[str], str]] = None,
109
123
  modified_components: t.Optional[t.Union[t.List[str], str]] = None,
110
124
  modified_files: t.Optional[t.Union[t.List[str], str]] = None,
125
+ ignore_app_dependencies_components: t.Optional[t.Union[t.List[str], str]] = None,
111
126
  ignore_app_dependencies_filepatterns: t.Optional[t.Union[t.List[str], str]] = None,
112
127
  sdkconfig_defaults: t.Optional[str] = None,
113
128
  include_skipped_apps: bool = False,
@@ -137,8 +152,8 @@ def find_apps(
137
152
  :param default_build_targets: default build targets used in manifest files
138
153
  :param modified_components: modified components
139
154
  :param modified_files: modified files
140
- :param ignore_app_dependencies_filepatterns: file patterns that used for ignoring checking the component
141
- dependencies
155
+ :param ignore_app_dependencies_components: components used for ignoring checking the app dependencies
156
+ :param ignore_app_dependencies_filepatterns: file patterns used for ignoring checking the app dependencies
142
157
  :param sdkconfig_defaults: semicolon-separated string, pass to idf.py -DSDKCONFIG_DEFAULTS if specified,
143
158
  also could be set via environment variables "SDKCONFIG_DEFAULTS"
144
159
  :param include_skipped_apps: include skipped apps or not
@@ -168,6 +183,7 @@ def find_apps(
168
183
 
169
184
  modified_components = to_list(modified_components)
170
185
  modified_files = to_list(modified_files)
186
+ ignore_app_dependencies_components = to_list(ignore_app_dependencies_components)
171
187
  ignore_app_dependencies_filepatterns = to_list(ignore_app_dependencies_filepatterns)
172
188
  config_rules_str = to_list(config_rules_str)
173
189
 
@@ -199,6 +215,7 @@ def find_apps(
199
215
  manifest_rootpath=manifest_rootpath,
200
216
  modified_components=modified_components,
201
217
  modified_files=modified_files,
218
+ ignore_app_dependencies_components=ignore_app_dependencies_components,
202
219
  ignore_app_dependencies_filepatterns=ignore_app_dependencies_filepatterns,
203
220
  ),
204
221
  modified_components=modified_components,
@@ -225,6 +242,7 @@ def build_apps(
225
242
  manifest_rootpath: t.Optional[str] = None,
226
243
  modified_components: t.Optional[t.Union[t.List[str], str]] = None,
227
244
  modified_files: t.Optional[t.Union[t.List[str], str]] = None,
245
+ ignore_app_dependencies_components: t.Optional[t.Union[t.List[str], str]] = None,
228
246
  ignore_app_dependencies_filepatterns: t.Optional[t.Union[t.List[str], str]] = None,
229
247
  check_app_dependencies: t.Optional[bool] = None,
230
248
  # BuildAppsArgs
@@ -249,8 +267,8 @@ def build_apps(
249
267
  are relative paths. Use the current directory if not specified
250
268
  :param modified_components: modified components
251
269
  :param modified_files: modified files
252
- :param ignore_app_dependencies_filepatterns: file patterns that used for ignoring checking the component
253
- dependencies
270
+ :param ignore_app_dependencies_components: components used for ignoring checking the app dependencies
271
+ :param ignore_app_dependencies_filepatterns: file patterns used for ignoring checking the app dependencies
254
272
  :param check_app_dependencies: check app dependencies or not. if not set, will be calculated by modified_components,
255
273
  modified_files, and ignore_app_dependencies_filepatterns
256
274
  :param parallel_count: number of parallel tasks to run
@@ -263,6 +281,7 @@ def build_apps(
263
281
  apps = to_list(apps)
264
282
  modified_components = to_list(modified_components)
265
283
  modified_files = to_list(modified_files)
284
+ ignore_app_dependencies_components = to_list(ignore_app_dependencies_components)
266
285
  ignore_app_dependencies_filepatterns = to_list(ignore_app_dependencies_filepatterns)
267
286
 
268
287
  test_suite = TestSuite('build_apps')
@@ -313,7 +332,11 @@ def build_apps(
313
332
  modified_components=modified_components,
314
333
  modified_files=modified_files,
315
334
  check_app_dependencies=_check_app_dependency(
316
- manifest_rootpath, modified_components, modified_files, ignore_app_dependencies_filepatterns
335
+ manifest_rootpath=manifest_rootpath,
336
+ modified_components=modified_components,
337
+ modified_files=modified_files,
338
+ ignore_app_dependencies_components=ignore_app_dependencies_components,
339
+ ignore_app_dependencies_filepatterns=ignore_app_dependencies_filepatterns,
317
340
  )
318
341
  if check_app_dependencies is None
319
342
  else check_app_dependencies,
@@ -563,6 +586,18 @@ def get_parser() -> argparse.ArgumentParser:
563
586
  'If set to "", the value would be considered as None. '
564
587
  'If set to ";", the value would be considered as an empty list',
565
588
  )
589
+ common_args.add_argument(
590
+ '-ic',
591
+ '--ignore-app-dependencies-components',
592
+ type=semicolon_separated_str_to_list,
593
+ help='semicolon-separated string which specifies the modified components used for '
594
+ 'ignoring checking the app dependencies. '
595
+ 'The `depends_components` and `depends_filepatterns` set in the manifest files will be ignored when any of the '
596
+ 'specified components matches any of the modified components. '
597
+ 'Must be used together with --modified-components. '
598
+ 'If set to "", the value would be considered as None. '
599
+ 'If set to ";", the value would be considered as an empty list',
600
+ )
566
601
  common_args.add_argument(
567
602
  '-if',
568
603
  '--ignore-app-dependencies-filepatterns',
@@ -683,11 +718,13 @@ def validate_args(parser: argparse.ArgumentParser, args: argparse.Namespace) ->
683
718
  default_build_targets.append(target)
684
719
  args.default_build_targets = default_build_targets
685
720
 
721
+ if args.ignore_app_dependencies_components is not None:
722
+ if args.modified_components is None:
723
+ raise InvalidCommand('Must specify "--ignore-app-dependencies-components" with "--modified-components", ')
724
+
686
725
  if args.ignore_app_dependencies_filepatterns is not None:
687
726
  if args.modified_files is None:
688
- raise InvalidCommand(
689
- 'Must specify "--ignore-component-dependencies-file-patterns" with "--modified-files", '
690
- )
727
+ raise InvalidCommand('Must specify "--ignore-app-dependencies-filepatterns" with "--modified-files", ')
691
728
 
692
729
 
693
730
  def apply_config_args(args: argparse.Namespace) -> None:
@@ -731,6 +768,7 @@ def main():
731
768
  default_build_targets=args.default_build_targets,
732
769
  modified_components=args.modified_components,
733
770
  modified_files=args.modified_files,
771
+ ignore_app_dependencies_components=args.ignore_app_dependencies_components,
734
772
  ignore_app_dependencies_filepatterns=args.ignore_app_dependencies_filepatterns,
735
773
  sdkconfig_defaults=args.sdkconfig_defaults,
736
774
  )
@@ -766,6 +804,7 @@ def main():
766
804
  manifest_rootpath=args.manifest_rootpath,
767
805
  modified_components=args.modified_components,
768
806
  modified_files=args.modified_files,
807
+ ignore_app_dependencies_components=args.ignore_app_dependencies_components,
769
808
  ignore_app_dependencies_filepatterns=args.ignore_app_dependencies_filepatterns,
770
809
  junitxml=args.junitxml,
771
810
  )
@@ -60,7 +60,7 @@ idf-build-apps = "idf_build_apps:main.main"
60
60
 
61
61
  [tool.commitizen]
62
62
  name = "cz_conventional_commits"
63
- version = "2.2.2"
63
+ version = "2.3.0"
64
64
  tag_format = "v$version"
65
65
  version_files = [
66
66
  "idf_build_apps/__init__.py",
@@ -30,7 +30,7 @@ entry_points = \
30
30
  {'console_scripts': ['idf-build-apps = idf_build_apps:main.main']}
31
31
 
32
32
  setup(name='idf-build-apps',
33
- version='2.2.2',
33
+ version='2.3.0',
34
34
  description='Tools for building ESP-IDF related apps.',
35
35
  author=None,
36
36
  author_email='Fu Hanxi <fuhanxi@espressif.com>',
File without changes
File without changes