Skip to content

v4.4.43

Choose a tag to compare

@anionDev anionDev released this 04 Oct 15:16
· 116 commits to main since this release
v4.4.43
e5a8eed

Release notes

Changes

  • linting
  • Fixed typos in comments, docstrings, messages and documentation.
  • Added unit-tests for GeneralUtilities, ScriptCollectionCore and UnassignedVariablesCheck.
  • Fixed the commandline-command scsetcontentoffile (pointed to a non-existing function) and the remote-execution of set_file_content and of the taskfile-generation (called non-existing commands).
  • Removed the broken commandline-commands scuploadfile and scupdatenugetpackagesincsharpproject (their implementation does not exist anymore).
  • Documented known bugs in the readme.
  • The .notes-folder of this repository is git-ignored now.
  • Fixed the git-history-diagrams (RepositoryHistoryAnalyzer): the commits were counted per committer-name of the commit instead of per author-identity which is used for the committer-list, so commits which were merged via the web-interface of a forge appeared as an additional committer which was missing in the committer-list. The commits are now counted per author-identity (with the configured identity-mapping applied) and with the author-date.
  • Removed the unused functions GeneralUtilities.get_docker_executable, ScriptCollectionCore.get_version_from_gitversion and TFCPS_Tools_General.update_dependencies_of_package_json (they had no callers anymore; the dependency-updates of node-codeunits are done by TFCPS_CodeUnitSpecific_Base.update_dependencies_with_specific_echolon, the project-version is calculated by ScriptCollectionCore.get_semver_version). Scripts outside of ScriptCollection which still call one of them have to be adapted.
  • Aligned the reference-articles with the actual behavior of the code (configuration-folder, custom registries, downloadable tools, remote-build, required tools per codeunit-type, platform-independent commands) and removed documentation of things which have no effect (for example DockerExecutable.txt).
  • Corrected and extended the documentation (readme, reference-articles, docstrings, help-text of scruncommandinfolder).

Changed recommendation for the build-runner-configuration

The reference-article BuildRunnerConfiguration.md now recommends to mount only the subfolders TFCPS and GlobalCache/OCIImages of the configuration-folder of the runner-host read-only into the job-container (to /root/.ScriptCollection/TFCPS and /root/.ScriptCollection/GlobalCache/OCIImages), instead of mounting the whole configuration-folder read-only to /root/.ScriptCollection. Existing runners which were set up according to the old recommendation should change their mounts accordingly.

Problem which is solved by this:

  • The SCBuilder-image contains a prefilled tool-cache in /root/.ScriptCollection/GlobalCache/Tools. It is filled by scdownloadcachabletools (TFCPS_Tools_General.download_all_cachable_tools) when the image is built, so that builds do not have to download these tools and are not affected by rate-limits of the download-sources.
  • A read-only mount of the whole configuration-folder to /root/.ScriptCollection hides this tool-cache. Every function which uses the tool-cache (the ensure_*_is_available-functions of TFCPS_Tools_General, which store their tools below ScriptCollectionCore.get_global_cache_folder()) then does not find the tool and tries to download it into GlobalCache/Tools. That fails with "Read-only file system" and the build aborts.
  • Builds which are affected are for example builds which merge the bill-of-materials of a codeunit with the ones of its dependent codeunits (TFCPS_Tools_General.merge_sbom_file_from_dependent_codeunit_into_this and merge_sbom_file), builds which generate code from an API-specification and builds of Android-app-bundles. Builds which do not use the tool-cache (for example a repository with only one library-codeunit without dependent codeunits) are not affected, which is why the problem did not show up on every runner.
  • A build on a developer-machine with scbuildcodeunits -c (TFCPS_CodeUnit_BuildCodeUnits.build_codeunits_in_container) was never affected, because it already mounts only the TFCPS-folder and the file GlobalCache/OCIImages/ImageRegistries.csv read-only. The new recommendation for build-runners follows the same approach.

Verification: tested with the SCBuilder-image v1.2.13. With the whole folder mounted read-only scdownloadcachabletools fails with "Read-only file system"; with only the two subfolders mounted read-only it succeeds and uses the prefilled tool-cache of the image.