continuous-delivery-scripts 3.4.1__tar.gz → 3.5.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 (71) hide show
  1. {continuous_delivery_scripts-3.4.1/continuous_delivery_scripts.egg-info → continuous_delivery_scripts-3.5.0}/PKG-INFO +1 -1
  2. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/_version.py +4 -4
  3. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/golang.py +76 -15
  4. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/git_helpers.py +1 -0
  5. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0/continuous_delivery_scripts.egg-info}/PKG-INFO +1 -1
  6. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/LICENSE +0 -0
  7. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/MANIFEST.in +0 -0
  8. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/README.md +0 -0
  9. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/__init__.py +0 -0
  10. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/assert_news.py +0 -0
  11. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/create_news_file.py +0 -0
  12. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/detect_secrets.py +0 -0
  13. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/generate_docs.py +0 -0
  14. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/generate_news.py +0 -0
  15. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/get_config.py +0 -0
  16. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/get_version.py +0 -0
  17. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/language_specifics.py +0 -0
  18. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/license_files.py +0 -0
  19. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/BASIC.MD +0 -0
  20. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/CI.MD +0 -0
  21. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/GITHUB_ACTIONS.MD +0 -0
  22. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/GOLAND.MD +0 -0
  23. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/NOOP.MD +0 -0
  24. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/PYTHON.MD +0 -0
  25. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/__init__.py +0 -0
  26. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/basic.py +0 -0
  27. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/ci.py +0 -0
  28. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/docker.py +0 -0
  29. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/github_actions.py +0 -0
  30. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/noop.py +0 -0
  31. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/plugins/python.py +0 -0
  32. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/report_third_party_ip.py +0 -0
  33. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/__init__.py +0 -0
  34. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/spdx_dependency.py +0 -0
  35. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/spdx_document.py +0 -0
  36. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/spdx_file.py +0 -0
  37. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/spdx_helpers.py +0 -0
  38. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/spdx_package.py +0 -0
  39. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/spdx_project.py +0 -0
  40. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/spdx_summary.py +0 -0
  41. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/templates/third_party_IP_report.csv.jinja2 +0 -0
  42. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/templates/third_party_IP_report.html.jinja2 +0 -0
  43. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/spdx_report/templates/third_party_IP_report.txt.jinja2 +0 -0
  44. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/tag_and_release.py +0 -0
  45. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/update_secrets_registry.py +0 -0
  46. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/__init__.py +0 -0
  47. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/aws_helpers.py +0 -0
  48. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/configuration.py +0 -0
  49. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/definitions.py +0 -0
  50. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/filesystem_helpers.py +0 -0
  51. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/hash_helpers.py +0 -0
  52. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/language_specifics_base.py +0 -0
  53. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/logging.py +0 -0
  54. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/news_file.py +0 -0
  55. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/noop/__init__.py +0 -0
  56. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/noop/package_helpers.py +0 -0
  57. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/package_helpers.py +0 -0
  58. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/python/__init__.py +0 -0
  59. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/python/package_helpers.py +0 -0
  60. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/python/python_helpers.py +0 -0
  61. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/string_helpers.py +0 -0
  62. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/third_party_licences.py +0 -0
  63. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts/utils/versioning.py +0 -0
  64. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts.egg-info/SOURCES.txt +0 -0
  65. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts.egg-info/dependency_links.txt +0 -0
  66. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts.egg-info/entry_points.txt +0 -0
  67. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts.egg-info/requires.txt +0 -0
  68. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/continuous_delivery_scripts.egg-info/top_level.txt +0 -0
  69. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/pyproject.toml +0 -0
  70. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/setup.cfg +0 -0
  71. {continuous_delivery_scripts-3.4.1 → continuous_delivery_scripts-3.5.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: continuous-delivery-scripts
3
- Version: 3.4.1
3
+ Version: 3.5.0
4
4
  Summary: Continuous Delivery scripts to increase automation
5
5
  Home-page: https://github.com/ARMmbed/continuous-delivery-scripts
6
6
  Author: CMSIS team
@@ -11,8 +11,8 @@ References
11
11
  This file is autogenerated, do not modify by hand.
12
12
  """
13
13
 
14
- __version__ = "3.4.1"
15
- COMMIT = "3cb7eefdafb8306ca4750f371325574e1a2ec9c7"
14
+ __version__ = "3.5.0"
15
+ COMMIT = "c8bbe64d754ac6d58403d50c46679ccebc5e1ef8"
16
16
  MAJOR = 3
17
- MINOR = 4
18
- PATCH = 1
17
+ MINOR = 5
18
+ PATCH = 0
@@ -4,6 +4,7 @@
4
4
  #
5
5
  """Plugin for Golang projects."""
6
6
 
7
+ import json
7
8
  import logging
8
9
  import os
9
10
  import shutil
@@ -143,24 +144,85 @@ def _call_goreleaser_check(version: str) -> None:
143
144
  check_call(_generate_goreleaser_check_command_list(), cwd=ROOT_DIR, env=env)
144
145
 
145
146
 
146
- def _determine_go_module_tag(version: str) -> Optional[str]:
147
- """Determines go module for tagging.
148
-
149
- See https://golang.org/ref/mod#vcs-version.
150
- and https://github.com/golang/go/wiki/Modules#should-i-have-multiple-modules-in-a-single-repository.
151
- """
152
- module = ""
147
+ def _determine_go_module_tag_for_directory(module_directory: Path, version: str) -> Optional[str]:
153
148
  try:
154
- module = str(SRC_DIR.relative_to(ROOT_DIR))
149
+ module = module_directory.relative_to(ROOT_DIR)
155
150
  except ValueError:
156
151
  try:
157
- module = str(ROOT_DIR.relative_to(SRC_DIR))
152
+ module = ROOT_DIR.relative_to(module_directory)
158
153
  except ValueError as exception:
159
154
  logger.warning(exception)
160
- if module == "." or len(module) == 0:
155
+ return None
156
+ module_as_posix = module.as_posix().rstrip("/")
157
+ if module_as_posix == "." or len(module_as_posix) == 0:
161
158
  return None
162
- module = module.rstrip("/")
163
- return f"{module}/{version}"
159
+ return f"{module_as_posix}/{version}"
160
+
161
+
162
+ def _find_go_work_files() -> List[Path]:
163
+ go_work_files: List[Path] = []
164
+ for go_work_file in [SRC_DIR.joinpath("go.work"), ROOT_DIR.joinpath("go.work")]:
165
+ if go_work_file.exists() and go_work_file not in go_work_files:
166
+ go_work_files.append(go_work_file)
167
+ return go_work_files
168
+
169
+
170
+ def _determine_go_work_module_directories_from_json(go_work_file: Path) -> List[Path]:
171
+ """Determine module directories from `go work edit -json` output.
172
+
173
+ `go.work` lists all workspace modules that should be released together.
174
+ See https://go.dev/ref/mod#workspaces and https://pkg.go.dev/cmd/go#hdr-Edit_workspace_file.
175
+ """
176
+ go_work_root = go_work_file.parent
177
+ go_work = json.loads(check_output(["go", "work", "edit", "-json"], cwd=go_work_root, encoding="utf8"))
178
+ module_directories: List[Path] = []
179
+ for use_definition in go_work.get("Use", []):
180
+ disk_path = use_definition.get("DiskPath") or use_definition.get("Path")
181
+ if not disk_path:
182
+ continue
183
+ module_directory = Path(str(disk_path))
184
+ module_directories.append(
185
+ module_directory if module_directory.is_absolute() else go_work_root.joinpath(module_directory)
186
+ )
187
+ return module_directories
188
+
189
+
190
+ def _determine_go_work_module_directories() -> List[Path]:
191
+ """Determine module directories declared in `go.work`.
192
+
193
+ `go.work` lists all workspace modules that should be released together.
194
+ See https://go.dev/ref/mod#workspaces.
195
+ """
196
+ module_directories: List[Path] = []
197
+ for go_work_file in _find_go_work_files():
198
+ module_directories.extend(_determine_go_work_module_directories_from_json(go_work_file))
199
+ return list(dict.fromkeys(module_directories))
200
+
201
+
202
+ def _determine_go_subproject_directories() -> List[Path]:
203
+ if not SRC_DIR.exists():
204
+ return []
205
+ return sorted((go_mod_file.parent for go_mod_file in SRC_DIR.rglob("go.mod")), key=lambda path: str(path))
206
+
207
+
208
+ def _determine_go_module_tag(version: str) -> List[str]:
209
+ """Determine all go module tags for release.
210
+
211
+ See https://golang.org/ref/mod#vcs-version,
212
+ https://go.dev/ref/mod#workspaces, and
213
+ https://github.com/golang/go/wiki/Modules/a549b3e4b7ad6be6e7d11c37ef247bb2279c8146#faqs--multi-module-repositories.
214
+ """
215
+ module_directories = [SRC_DIR]
216
+ go_work_module_directories = _determine_go_work_module_directories()
217
+ if go_work_module_directories:
218
+ module_directories.extend(go_work_module_directories)
219
+ else:
220
+ module_directories.extend(_determine_go_subproject_directories())
221
+
222
+ tags = [
223
+ _determine_go_module_tag_for_directory(module_directory, version) for module_directory in module_directories
224
+ ]
225
+ return list(dict.fromkeys([tag for tag in tags if tag]))
164
226
 
165
227
 
166
228
  class Go(BaseLanguage):
@@ -209,7 +271,7 @@ class Go(BaseLanguage):
209
271
  r".*go\.sum$",
210
272
  r"^\.circleci[\\/].*",
211
273
  r"^workflows/.*",
212
- r"^\.github[\\/]workflows[\\/].*",
274
+ (r"^\.github[\\/]workflows[\\/].*"),
213
275
  ]
214
276
 
215
277
  def get_current_spdx_project(self) -> Optional["SpdxProject"]:
@@ -224,8 +286,7 @@ class Go(BaseLanguage):
224
286
  def tag_release(self, git: GitWrapper, version: str, shortcuts: Dict[str, bool]) -> None:
225
287
  """Tags release commit."""
226
288
  super().tag_release(git, version, shortcuts)
227
- go_tag = _determine_go_module_tag(self.get_version_tag(version))
228
- if go_tag:
289
+ for go_tag in _determine_go_module_tag(self.get_version_tag(version)):
229
290
  git.create_tag(go_tag, message=f"Golang module release: {go_tag}")
230
291
 
231
292
  def _call_goreleaser_release(self, version: str) -> None:
@@ -808,6 +808,7 @@ class GitTempClone:
808
808
  Tempfiles objects on Windows are holding references to open files until
809
809
  they are collected by the garbage collector, thus preventing deletion.
810
810
  """
811
+ self._clone.repo.close()
811
812
  self._repo.repo.close()
812
813
  self._temporary_dir.cleanup()
813
814
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: continuous-delivery-scripts
3
- Version: 3.4.1
3
+ Version: 3.5.0
4
4
  Summary: Continuous Delivery scripts to increase automation
5
5
  Home-page: https://github.com/ARMmbed/continuous-delivery-scripts
6
6
  Author: CMSIS team