Updated docs

This commit is contained in:
2023-02-20 15:55:20 +01:00
parent 48d0daabf5
commit 9e28dce5ce
632 changed files with 10917 additions and 6775 deletions

View File

@@ -11,16 +11,16 @@ CPL internal tool to set version from branch name
"""
__title__ = 'set_version'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2022 sh-edraft.de'
__version__ = '2022.12.0'
__title__ = "set_version"
__author__ = "Sven Heidemann"
__license__ = "MIT"
__copyright__ = "Copyright (c) 2022 sh-edraft.de"
__version__ = "2022.12.0"
from collections import namedtuple
# imports:
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2022', minor='12', micro='0')
VersionInfo = namedtuple("VersionInfo", "major minor micro")
version_info = VersionInfo(major="2022", minor="12", micro="0")

View File

@@ -16,7 +16,6 @@ from set_version.version_setter_service import VersionSetterService
class Application(ApplicationABC):
def __init__(self, config: ConfigurationABC, services: ServiceProviderABC):
ApplicationABC.__init__(self, config, services)
@@ -30,15 +29,15 @@ class Application(ApplicationABC):
self._configuration.parse_console_arguments(self._services)
def main(self):
Console.write_line('Set versions:')
Console.write_line("Set versions:")
args = self._configuration.additional_arguments
version = {}
branch = ""
suffix = ""
force = False
if '--force' in args:
args.remove('--force')
if "--force" in args:
args.remove("--force")
force = True
if len(args) > 1:
@@ -50,46 +49,50 @@ class Application(ApplicationABC):
try:
branch = self._git_service.get_active_branch_name()
Console.write_line(f'Found branch: {branch}')
Console.write_line(f"Found branch: {branch}")
except Exception as e:
Console.error('Branch not found', traceback.format_exc())
Console.error("Branch not found", traceback.format_exc())
return
try:
if suffix != '':
self._configuration.add_json_file(self._workspace.projects[self._workspace.default_project], optional=False, output=False)
if suffix != "":
self._configuration.add_json_file(
self._workspace.projects[self._workspace.default_project], optional=False, output=False
)
ps: ProjectSettings = self._configuration.get_configuration(ProjectSettings)
version[VersionSettingsNameEnum.major.value] = ps.version.major
version[VersionSettingsNameEnum.minor.value] = ps.version.minor
version[VersionSettingsNameEnum.micro.value] = suffix
elif branch.startswith('#'):
self._configuration.add_json_file(self._workspace.projects[self._workspace.default_project], optional=False, output=False)
elif branch.startswith("#"):
self._configuration.add_json_file(
self._workspace.projects[self._workspace.default_project], optional=False, output=False
)
ps: ProjectSettings = self._configuration.get_configuration(ProjectSettings)
version[VersionSettingsNameEnum.major.value] = ps.version.major
version[VersionSettingsNameEnum.minor.value] = ps.version.minor
version[VersionSettingsNameEnum.micro.value] = f'dev{branch.split("#")[1]}'
else:
version[VersionSettingsNameEnum.major.value] = branch.split('.')[0]
version[VersionSettingsNameEnum.minor.value] = branch.split('.')[1]
if len(branch.split('.')) == 2:
if suffix == '':
suffix = '0'
version[VersionSettingsNameEnum.micro.value] = f'{suffix}'
version[VersionSettingsNameEnum.major.value] = branch.split(".")[0]
version[VersionSettingsNameEnum.minor.value] = branch.split(".")[1]
if len(branch.split(".")) == 2:
if suffix == "":
suffix = "0"
version[VersionSettingsNameEnum.micro.value] = f"{suffix}"
else:
version[VersionSettingsNameEnum.micro.value] = f'{branch.split(".")[2]}{suffix}'
except Exception as e:
Console.error(f'Branch {branch} does not contain valid version')
Console.error(f"Branch {branch} does not contain valid version")
return
diff_paths = []
for file in self._git_service.get_diff_files():
if file.startswith('tools'):
if file.startswith("tools"):
continue
if '/' in file:
file = file.split('/')[1]
if "/" in file:
file = file.split("/")[1]
else:
file = os.path.basename(os.path.dirname(file))
@@ -106,12 +109,16 @@ class Application(ApplicationABC):
skipped.append(project)
continue
Console.write_line(f'Set dependencies {self._version_pipe.transform(version)} for {project}')
self._version_setter.set_dependencies(self._workspace.projects[project], version, 'Dependencies', skipped=skipped)
self._version_setter.set_dependencies(self._workspace.projects[project], version, 'DevDependencies', skipped=skipped)
Console.write_line(f"Set dependencies {self._version_pipe.transform(version)} for {project}")
self._version_setter.set_dependencies(
self._workspace.projects[project], version, "Dependencies", skipped=skipped
)
self._version_setter.set_dependencies(
self._workspace.projects[project], version, "DevDependencies", skipped=skipped
)
Console.write_line(f'Set version {self._version_pipe.transform(version)} for {project}')
Console.write_line(f"Set version {self._version_pipe.transform(version)} for {project}")
self._version_setter.set_version(self._workspace.projects[project], version)
except Exception as e:
Console.error('Version could not be set', traceback.format_exc())
Console.error("Version could not be set", traceback.format_exc())
return

View File

@@ -5,7 +5,6 @@ from git import Repo
class GitService:
def __init__(self, env: ApplicationEnvironmentABC):
self._env = env
self._repo = Repo(env.working_directory)

View File

@@ -10,5 +10,5 @@ def main():
app_builder.build().run()
if __name__ == '__main__':
if __name__ == "__main__":
main()

View File

@@ -11,19 +11,22 @@ from set_version.version_setter_service import VersionSetterService
class Startup(StartupABC):
def __init__(self):
StartupABC.__init__(self)
def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC:
configuration.add_json_file('cpl-workspace.json', optional=True, output=False)
def configure_configuration(
self, configuration: ConfigurationABC, environment: ApplicationEnvironment
) -> ConfigurationABC:
configuration.add_json_file("cpl-workspace.json", optional=True, output=False)
if configuration.get_configuration(WorkspaceSettings) is None:
environment.set_working_directory(os.path.join(environment.working_directory, '../../'))
configuration.add_json_file('cpl-workspace.json', optional=False, output=False)
environment.set_working_directory(os.path.join(environment.working_directory, "../../"))
configuration.add_json_file("cpl-workspace.json", optional=False, output=False)
return configuration
def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC:
def configure_services(
self, services: ServiceCollectionABC, environment: ApplicationEnvironment
) -> ServiceProviderABC:
services.add_pipes()
services.add_singleton(GitService)
services.add_transient(VersionSetterService)

View File

@@ -7,13 +7,12 @@ from cpl_core.utils import String
class VersionSetterService:
def __init__(self, env: ApplicationEnvironmentABC):
self._env = env
def _read_file(self, file: str) -> dict:
project_json = {}
with open(os.path.join(self._env.working_directory, file), 'r', encoding='utf-8') as f:
with open(os.path.join(self._env.working_directory, file), "r", encoding="utf-8") as f:
# load json
project_json = json.load(f)
f.close()
@@ -21,37 +20,43 @@ class VersionSetterService:
return project_json
def _write_file(self, file: str, project_json: dict):
with open(os.path.join(self._env.working_directory, file), 'w', encoding='utf-8') as f:
with open(os.path.join(self._env.working_directory, file), "w", encoding="utf-8") as f:
f.write(json.dumps(project_json, indent=2))
f.close()
def set_version(self, file: str, version: dict):
project_json = self._read_file(file)
project_json['ProjectSettings']['Version'] = version
project_json["ProjectSettings"]["Version"] = version
self._write_file(file, project_json)
def set_dependencies(self, file: str, version: dict, key: str, skipped=None):
project_json = self._read_file(file)
if key not in project_json['ProjectSettings']:
project_json['ProjectSettings'][key] = []
if key not in project_json["ProjectSettings"]:
project_json["ProjectSettings"][key] = []
dependencies = project_json['ProjectSettings'][key]
dependencies = project_json["ProjectSettings"][key]
new_deps = []
for dependency in dependencies:
if not dependency.startswith('cpl-'):
if not dependency.startswith("cpl-"):
new_deps.append(dependency)
continue
dep_version = dependency.split('=')[1]
dep_name = dependency.split('=')[0]
if dep_name[len(dep_name)-1] not in ascii_letters:
dep_name = dep_name[:len(dep_name)-1]
dep_version = dependency.split("=")[1]
dep_name = dependency.split("=")[0]
if dep_name[len(dep_name) - 1] not in ascii_letters:
dep_name = dep_name[: len(dep_name) - 1]
if skipped is not None and (dep_name in skipped or String.convert_to_snake_case(dep_name) in skipped) or dep_version == '':
if (
skipped is not None
and (dep_name in skipped or String.convert_to_snake_case(dep_name) in skipped)
or dep_version == ""
):
new_deps.append(dependency)
continue
new_deps.append(dependency.replace(dep_version, f'{version["Major"]}.{version["Minor"]}.{version["Micro"]}'))
new_deps.append(
dependency.replace(dep_version, f'{version["Major"]}.{version["Minor"]}.{version["Micro"]}')
)
project_json['ProjectSettings'][key] = new_deps
project_json["ProjectSettings"][key] = new_deps
self._write_file(file, project_json)