Repository navigation
v4.4.43
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 ofset_file_contentand of the taskfile-generation (called non-existing commands). - Removed the broken commandline-commands
scuploadfileandscupdatenugetpackagesincsharpproject(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_gitversionandTFCPS_Tools_General.update_dependencies_of_package_json(they had no callers anymore; the dependency-updates of node-codeunits are done byTFCPS_CodeUnitSpecific_Base.update_dependencies_with_specific_echolon, the project-version is calculated byScriptCollectionCore.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 byscdownloadcachabletools(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/.ScriptCollectionhides this tool-cache. Every function which uses the tool-cache (theensure_*_is_available-functions ofTFCPS_Tools_General, which store their tools belowScriptCollectionCore.get_global_cache_folder()) then does not find the tool and tries to download it intoGlobalCache/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_thisandmerge_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 theTFCPS-folder and the fileGlobalCache/OCIImages/ImageRegistries.csvread-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.