ScriptCollection 3.5.25__py3-none-any.whl → 3.5.27__py3-none-any.whl

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.
@@ -271,8 +271,9 @@ def BuildCodeUnits() -> int:
271
271
  parser.add_argument('--verbosity', required=False, default=1)
272
272
  parser.add_argument('--targetenvironment', required=False, default="QualityCheck")
273
273
  parser.add_argument('--additionalargumentsfile', required=False, default=None)
274
+ parser.add_argument('--removeuncommittedfiles', required=False, default=False, action='store_true')
274
275
  args = parser.parse_args()
275
- TasksForCommonProjectStructure().build_codeunits(args.repositoryfolder, int(args.verbosity), args.targetenvironment, args.additionalargumentsfile, False, None, sys.argv)
276
+ TasksForCommonProjectStructure().build_codeunits(args.repositoryfolder, int(args.verbosity), args.targetenvironment, args.additionalargumentsfile, False, None, sys.argv, args.removeuncommittedfiles)
276
277
  return 0
277
278
 
278
279
 
@@ -31,7 +31,7 @@ from .ProgramRunnerBase import ProgramRunnerBase
31
31
  from .ProgramRunnerPopen import ProgramRunnerPopen
32
32
  from .ProgramRunnerEpew import ProgramRunnerEpew, CustomEpewArgument
33
33
 
34
- version = "3.5.25"
34
+ version = "3.5.27"
35
35
  __version__ = version
36
36
 
37
37
 
@@ -990,7 +990,7 @@ class TasksForCommonProjectStructure:
990
990
  target_folder_base = os.path.join(information.artifacts_folder, information.projectname, project_version)
991
991
  GeneralUtilities.ensure_directory_exists(target_folder_base)
992
992
 
993
- self.build_codeunits(information.repository, information.verbosity, information.target_environmenttype_for_productive, information.additional_arguments_file, False, information.export_target)
993
+ self.build_codeunits(information.repository, information.verbosity, information.target_environmenttype_for_productive, information.additional_arguments_file, False, information.export_target, [], True)
994
994
 
995
995
  reference_folder = os.path.join(information.reference_repository, "ReferenceContent")
996
996
 
@@ -1199,7 +1199,7 @@ class TasksForCommonProjectStructure:
1199
1199
  raise ValueError(f"Can not merge because the source-branch and the target-branch are on the same commit (commit-id: {src_branch_commit_id})")
1200
1200
 
1201
1201
  self.__sc.git_checkout(repository_folder, source_branch)
1202
- self.build_codeunits(repository_folder, verbosity, "QualityCheck", additional_arguments_file, True, None)
1202
+ self.build_codeunits(repository_folder, verbosity, "QualityCheck", additional_arguments_file, True, None, [], True)
1203
1203
  self.__sc.git_merge(repository_folder, source_branch, target_branch, False, False, None)
1204
1204
  self.__sc.git_commit(repository_folder, f'Merge branch {source_branch} into {target_branch}', stage_all_changes=True, no_changes_behavior=1)
1205
1205
  self.__sc.git_checkout(repository_folder, target_branch)
@@ -1258,7 +1258,7 @@ class TasksForCommonProjectStructure:
1258
1258
  self.__sc.run_program("git", "clean -dfx", information.repository, verbosity=information.verbosity, throw_exception_if_exitcode_is_not_zero=True)
1259
1259
  project_version = self.__sc.get_semver_version_from_gitversion(information.repository)
1260
1260
 
1261
- self.build_codeunits(information.repository, information.verbosity, information.target_environmenttype_for_qualitycheck, information.additional_arguments_file, False, information.export_target)
1261
+ self.build_codeunits(information.repository, information.verbosity, information.target_environmenttype_for_qualitycheck, information.additional_arguments_file, False, information.export_target, [], True)
1262
1262
 
1263
1263
  self.assert_no_uncommitted_changes(information.repository)
1264
1264
 
@@ -1692,8 +1692,11 @@ class TasksForCommonProjectStructure:
1692
1692
  GeneralUtilities.write_text_to_file(file, result)
1693
1693
 
1694
1694
  @GeneralUtilities.check_arguments
1695
- def do_npm_install(self, package_json_folder: str, verbosity: int) -> None:
1696
- self.run_with_epew("npm", "clean-install", package_json_folder, verbosity=verbosity)
1695
+ def do_npm_install(self, package_json_folder: str,force:bool, verbosity: int) -> None:
1696
+ argument = "clean-install"
1697
+ if force:
1698
+ argument = f"{argument} --force"
1699
+ self.run_with_epew("npm", argument, package_json_folder, verbosity=verbosity)
1697
1700
 
1698
1701
  @GeneralUtilities.check_arguments
1699
1702
  def run_with_epew(self, program: str, argument: str = "", working_directory: str = None, verbosity: int = 1, print_errors_as_information: bool = False, log_file: str = None, timeoutInSeconds: int = 600, addLogOverhead: bool = False, title: str = None, log_namespace: str = "", arguments_for_log: list[str] = None, throw_exception_if_exitcode_is_not_zero: bool = True, custom_argument: object = None, interactive: bool = False) -> tuple[int, str, str, int]:
@@ -2129,10 +2132,12 @@ class TasksForCommonProjectStructure:
2129
2132
  ce_source_folder = GeneralUtilities.resolve_relative_path("Other/Resources/DevelopmentCertificate", codeunit_folder)
2130
2133
  ca_source_folder = GeneralUtilities.resolve_relative_path("Other/Resources/CA", codeunit_folder)
2131
2134
  ce_target_folder = GeneralUtilities.resolve_relative_path("Other/Artifacts/DevelopmentCertificate", codeunit_folder)
2132
- ca_target_folder = GeneralUtilities.resolve_relative_path("Other/Artifacts/A", codeunit_folder)
2135
+ ca_target_folder = GeneralUtilities.resolve_relative_path("Other/Artifacts/CA", codeunit_folder)
2133
2136
 
2137
+ GeneralUtilities.ensure_directory_does_not_exist(ce_target_folder)
2134
2138
  GeneralUtilities.ensure_directory_exists(ce_target_folder)
2135
2139
  GeneralUtilities.copy_content_of_folder(ce_source_folder, ce_target_folder)
2140
+ GeneralUtilities.ensure_directory_does_not_exist(ca_target_folder)
2136
2141
  GeneralUtilities.ensure_directory_exists(ca_target_folder)
2137
2142
  GeneralUtilities.copy_content_of_folder(ca_source_folder, ca_target_folder)
2138
2143
 
@@ -2161,7 +2166,7 @@ class TasksForCommonProjectStructure:
2161
2166
  codeunit_folder = GeneralUtilities.resolve_relative_path_from_current_working_directory(codeunit_folder)
2162
2167
  codeunit_name = os.path.basename(codeunit_folder)
2163
2168
  repository_folder = os.path.dirname(codeunit_folder)
2164
- self.build_specific_codeunits(repository_folder, [codeunit_name], verbosity, target_environmenttype, additional_arguments_file, is_pre_merge, export_target_directory, assume_dependent_codeunits_are_already_built, commandlinearguments)
2169
+ self.build_specific_codeunits(repository_folder, [codeunit_name], verbosity, target_environmenttype, additional_arguments_file, is_pre_merge, export_target_directory, assume_dependent_codeunits_are_already_built, commandlinearguments, False)
2165
2170
 
2166
2171
  @GeneralUtilities.check_arguments
2167
2172
  def build_codeunitsC(self, repository_folder: str, image: str, verbosity: int = 1, target_environmenttype: str = "QualityCheck", additional_arguments_file: str = None, commandlinearguments: list[str] = []) -> None:
@@ -2173,19 +2178,23 @@ class TasksForCommonProjectStructure:
2173
2178
  self.__sc.run_program("docker", f"run --volume {repository_folder}:/Workspace/Repository " + f"-e repositoryfolder=/Workspace/Repository -e verbosity={verbosity} -e targetenvironment={target_environmenttype} {image}", repository_folder)
2174
2179
 
2175
2180
  @GeneralUtilities.check_arguments
2176
- def build_codeunits(self, repository_folder: str, verbosity: int = 1, target_environmenttype: str = "QualityCheck", additional_arguments_file: str = None, is_pre_merge: bool = False, export_target_directory: str = None, commandline_arguments: list[str] = []) -> None:
2181
+ def build_codeunits(self, repository_folder: str, verbosity: int = 1, target_environmenttype: str = "QualityCheck", additional_arguments_file: str = None, is_pre_merge: bool = False, export_target_directory: str = None, commandline_arguments: list[str] = [], do_git_clean_when_no_changes: bool = False) -> None:
2177
2182
  self.__check_target_environmenttype(target_environmenttype)
2178
2183
  repository_folder = GeneralUtilities.resolve_relative_path_from_current_working_directory(repository_folder)
2179
2184
  codeunits = self.get_codeunits(repository_folder, False)
2180
- self.build_specific_codeunits(repository_folder, codeunits, verbosity, target_environmenttype, additional_arguments_file, is_pre_merge, export_target_directory, False, commandline_arguments)
2185
+ self.build_specific_codeunits(repository_folder, codeunits, verbosity, target_environmenttype, additional_arguments_file, is_pre_merge, export_target_directory, False, commandline_arguments, do_git_clean_when_no_changes)
2181
2186
 
2182
2187
  @GeneralUtilities.check_arguments
2183
- def build_specific_codeunits(self, repository_folder: str, codeunits: list[str], verbosity: int = 1, target_environmenttype: str = "QualityCheck", additional_arguments_file: str = None, is_pre_merge: bool = False, export_target_directory: str = None, assume_dependent_codeunits_are_already_built: bool = True, commandline_arguments: list[str] = []) -> None:
2188
+ def build_specific_codeunits(self, repository_folder: str, codeunits: list[str], verbosity: int = 1, target_environmenttype: str = "QualityCheck", additional_arguments_file: str = None, is_pre_merge: bool = False, export_target_directory: str = None, assume_dependent_codeunits_are_already_built: bool = True, commandline_arguments: list[str] = [], do_git_clean_when_no_changes: bool = False) -> None:
2184
2189
  self.__check_target_environmenttype(target_environmenttype)
2185
2190
  repository_folder = GeneralUtilities.resolve_relative_path_from_current_working_directory(repository_folder)
2186
2191
  contains_uncommitted_changes = self.__sc.git_repository_has_uncommitted_changes(repository_folder)
2187
- if is_pre_merge and contains_uncommitted_changes:
2188
- raise ValueError(f'Repository "{repository_folder}" has uncommitted changes.')
2192
+ if contains_uncommitted_changes:
2193
+ if is_pre_merge:
2194
+ raise ValueError(f'Repository "{repository_folder}" has uncommitted changes.')
2195
+ else:
2196
+ if do_git_clean_when_no_changes:
2197
+ self.__sc.run_program("git", "clean -dfx", repository_folder)
2189
2198
  subfolders = [os.path.join(repository_folder, codeunit) for codeunit in codeunits]
2190
2199
  codeunits_with_dependent_codeunits: dict[str, set[str]] = dict[str, set[str]]()
2191
2200
 
@@ -2615,7 +2624,7 @@ class TasksForCommonProjectStructure:
2615
2624
  else:
2616
2625
  GeneralUtilities.write_message_to_stdout(f"There are no dependencies to update in codeunit {codeunit}.")
2617
2626
  if updated_dependencies:
2618
- self.__sc.run_program("scbuildcodeunits", "--targetenvironment QualityCheck", repository_folder, verbosity=verbosity) # TODO set timeout
2627
+ self.__sc.run_program("scbuildcodeunits", "--targetenvironment QualityCheck --removeuncommittedfiles", repository_folder, verbosity=verbosity) # TODO set timeout
2619
2628
  self.__sc.git_commit(repository_folder, "Updated dependencies")
2620
2629
 
2621
2630
  class GenericPrepareNewReleaseArguments:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ScriptCollection
3
- Version: 3.5.25
3
+ Version: 3.5.27
4
4
  Summary: The ScriptCollection is the place for reusable scripts.
5
5
  Home-page: https://github.com/anionDev/ScriptCollection
6
6
  Author: Marius Göcke
@@ -23,7 +23,7 @@ Classifier: Topic :: Utilities
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  Requires-Dist: build >=1.2.2.post1
26
- Requires-Dist: coverage >=7.6.3
26
+ Requires-Dist: coverage >=7.6.4
27
27
  Requires-Dist: cyclonedx-bom >=5.0.0
28
28
  Requires-Dist: defusedxml >=0.7.1
29
29
  Requires-Dist: keyboard >=0.13.5
@@ -1,16 +1,16 @@
1
- ScriptCollection/Executables.py,sha256=rdyVf_rWHIHeAeOngTeyohYYIimb0BqtZxUBDDpQSDQ,20028
1
+ ScriptCollection/Executables.py,sha256=57f2bopoRUchbyyCZTseBk0ynEyHfXc2u4-LraxI7qg,20161
2
2
  ScriptCollection/GeneralUtilities.py,sha256=AElXv2NO30cTw-Qs3qVmO-YCOQ5FvBQM3RZMywuKQ_Y,35121
3
3
  ScriptCollection/ProcessesRunner.py,sha256=3mu4ZxzZleQo0Op6o9EYTCFiJfb6kx5ov2YfZfT89mU,1395
4
4
  ScriptCollection/ProgramRunnerBase.py,sha256=7QAjoqOz6XPmJH19F2k-Z1fFQB_uZnPFvn-T54IJcHQ,2324
5
5
  ScriptCollection/ProgramRunnerEpew.py,sha256=C2Rs3YWOWWWJct7XmKphp5CF1tf0j4Fp-ljV2drLTfs,6349
6
6
  ScriptCollection/ProgramRunnerPopen.py,sha256=G3LgQUVCfaq7XjBsGzalElH31Hbr0etttGR2_H87YzA,3512
7
7
  ScriptCollection/RPStream.py,sha256=NRRHL3YSP3D9MuAV2jB_--0KUKCsvJGxeKnxgrRZ9kY,1545
8
- ScriptCollection/ScriptCollectionCore.py,sha256=QkSVb1Ehol4v-13QRK44aQcGbvWG8O4H0wW5OUm86B0,101078
9
- ScriptCollection/TasksForCommonProjectStructure.py,sha256=2s_oiUzfcBgKWc33kYphcqDlfdnwpYkn8oCUxKeWmhc,193504
8
+ ScriptCollection/ScriptCollectionCore.py,sha256=ghiD-bDQz7a0WeZyur_ziZHKdmIdVi_70iMYo4185rA,101078
9
+ ScriptCollection/TasksForCommonProjectStructure.py,sha256=iZWDpFSF0VQotKpjGngs1bBy1-7sVEZiUFRUD08d5wo,194090
10
10
  ScriptCollection/UpdateCertificates.py,sha256=Eynbgu7k9jLxApP2D_8Il77B6BFjJap6K7oTeEAZYbk,7790
11
11
  ScriptCollection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- ScriptCollection-3.5.25.dist-info/METADATA,sha256=Yj0rW-8rdvEl6z12x6uLz3MIiTt4xOWVwZchFUOQMnM,7684
13
- ScriptCollection-3.5.25.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
14
- ScriptCollection-3.5.25.dist-info/entry_points.txt,sha256=yASwR6hWZ_b5d4W49YeX1htD8ngfWbwgjpfQiJdtUAU,2322
15
- ScriptCollection-3.5.25.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
16
- ScriptCollection-3.5.25.dist-info/RECORD,,
12
+ ScriptCollection-3.5.27.dist-info/METADATA,sha256=6ZIEIrTa60Zt0EWsS0HnSMg6BsTnyJUZNwx6WyqEH6A,7684
13
+ ScriptCollection-3.5.27.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
14
+ ScriptCollection-3.5.27.dist-info/entry_points.txt,sha256=yASwR6hWZ_b5d4W49YeX1htD8ngfWbwgjpfQiJdtUAU,2322
15
+ ScriptCollection-3.5.27.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
16
+ ScriptCollection-3.5.27.dist-info/RECORD,,