summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-12-19Release 1.2.4v1.2.4Klaus Aehlig
2023-12-13Filesystem: Fix copy overwrite of symlink with fileOliver Reiche
... and improve log messages in case of failure. (cherry picked from commit 65d35006de65e540355833a56bcaa7659f6f1afd)
2023-12-13just: Fix wrong access to moved structPaul Cristian Sarbu
The traverser instantiation consumes the arguments.build struct, therefore one must not access that struct later in the code. (cherry picked from commit bc09302c2772c979c45ecc716c36e4a70bb484ac)
2023-12-13LocalAction: Fix staging of empty treesOliver Reiche
(cherry picked from bab0d949d51fe4f10c8d492083427d514206cb63)
2023-12-13built-in "install" rule: verify well-formedness of resulting stageKlaus Aehlig
The install target, like any other target, has to have artifacts and runfiles being proper stages, i.e., in such a way that the keys can be interpreted as names in the file system without causing conflicts. This property used to be unchecked, thus allowing users to define mal-formed targets that, when used as inputs to actions, would result in unspecified layout of the action directory. Fix this by adding an appropriate check enforcing well-formedness of the resulting stage. (cherry picked from f66db4bb21efeead140a453f91280bb9471f24a9)
2023-12-13Start 1.2.4 development cycleOliver Reiche
2023-11-15Release 1.2.3v1.2.3Klaus Aehlig
2023-11-15bugfix: Also unlink symlinks before installingOliver Reiche
Make sure that all CopyFile, WriteFile, and CreateSymlink functions properly unlink the target file (if it exists and overwrite requested) to avoid interferences of the install command. With this change, the clean up step for install-cas and the within GraphTraverser can new be omitted. (cherry-picked from 04e2f0aa0ccfe4f39c5f6c713bde182c6b7704dd)
2023-11-15Fix serialization of the target cache keyOliver Reiche
... which was accidentially a list of (a single) object, instead of only a single JSON object. (cherry-picked from 63a874517618a57dd5ca223d19a795c28a39c123)
2023-11-15Base export target chache key on the exported targetKlaus Aehlig
The cache key for an export target should contain as target name that of the export target (and its effective configuration) rather than the exported target. As we computed the repository part of the cache key for the target included in the key, this was still a correct cache key except in the case an explicit file reference was exported (as here, the information that the file was to be taken rather than the target of the same name got lost). We still fix this issue by making the implementation match our design (rather than by including the file-reference bit in the cache key), as the original design gives the cleaner protocol for target-level caching as a service. (cherry-picked from 180d8d89ffa92f8c3e8b8bcb912ec1a4990569c9)
2023-11-15just execute: fix race condition during garbage collection...Alberto Sartori
...of the internal cache used for keeping track of running operations. (cherry-picked from bec4dbd9bd995f73eab1ff803e7895187068ddb0)
2023-11-15Start 1.2.3 development cycleKlaus Aehlig
2023-10-17Release 1.2.2v1.2.2Klaus Aehlig
2023-10-17curl_easy_handle: Ensure we report a fail on HTTP codes >=400Paul Cristian Sarbu
...which signal either cient- or server-side failures. This ensures we exit with a failed network fetch early in cases where it is clear we won't receive useful data. (cherry-picked from 4ef74caa5d96471d058bd1c9542d79ad58538da7)
2023-10-17just-mr fetch: Fix exception on fetched data hash mismatchPaul Cristian Sarbu
After successfully fetching data over the network for an archive, if the optional checksums are not provided, the code will throw if there is a mismatch between the hash of the fetched data stream and the provided content hash. This commit fixes the issue by adding an additional check which properly handles the possible mismatch. (cherry-picked from 9acaa7f60c88c97f58b757ffb6ce206f3f2953a2)
2023-10-17utils: No hash for upcoming libstdc++ 11 releasesOliver Reiche
(cherry-picked from 82e0bd818aee1ca8751e0abf20455af88cc513bf)
2023-10-17Start 1.2.2 development cycleKlaus Aehlig
2023-08-29Release 1.2.1v1.2.1Klaus Aehlig
2023-08-29fmt: Specialize formatter only for version >= 10Oliver Reiche
(cherry picked from 53ba5581070bc8914a35a5e16af901c562923e61)
2023-08-28Fix path hash for libstdc++ bug-fix release 11.4Oliver Reiche
... std::hash<fs::path> was first implemented in libstdc++ version 12. However, that change was also backported to bug-fix release 11.4, so we may not include our reimplementation if that version is used. (cherry picked from 8fb4a41a63e5d195c2463ce0bc75e9d41cc0c5be)
2023-08-28Add explicit fmt::formatter for nlohmann::basic_jsonMichael Thies
The formatter is based on fmt's ostream_formatter, using the provided operator<<(std::ostream&) of nlohmann::basic_json. This is required to allow compilation against fmt 10.x (cherry picked from 601d546b8452159c38d65231d52f0dbd05e793d2) Co-authored-by: Oliver Reiche <oliver.reiche@huawei.com>
2023-08-28Start 1.2.1 development cycleOliver Reiche
2023-08-25Release 1.2.0v1.2.0Klaus Aehlig
2023-08-24LinkedMap: Simplify ::Find() methodsOliver Reiche
... to silence false-positive 'possible dangling reference' warning produced by gcc 13.2.0.
2023-08-24Execution: only take complete actions from cacheKlaus Aehlig
... which are only actions that, besides giving exit code 0 also created all the outputs they promised to.
2023-08-23utils path: Add missing inline specifierOliver Reiche
... to suppress 'unused function' warnings.
2023-08-23target_map: Use iterators instead of pointer arithmeticOliver Reiche
2023-08-23just: split main codeKlaus Aehlig
... by moving the diagnose and cli related code into to separate libraries. In this way, we hopefully improve maintainability of the code base.
2023-08-23just-mr: Split main codePaul Cristian Sarbu
...by moving subcommands code into separate libraries. This maintains a cleaner code structure and lowers the build time by improving target caching.
2023-08-22Release 1.2.0~beta3v1.2.0-beta3Oliver Reiche
2023-08-18Release 1.2.0~beta2v1.2.0-beta2Klaus Aehlig
2023-08-16Release 1.2.0~beta1v1.2.0-beta1Klaus Aehlig
2023-08-14just-mr: More consistent error messages in parsing RC filePaul Cristian Sarbu
2023-08-14just-mr archives: Add 7zip support via autodetection optionPaul Cristian Sarbu
Similarly to tarballs, an autodetection option for zip-like archives is added to enable a unified handling of both traditional zip and 7zip formats. Thus, for "zip" archives just-mr uses now this autodetection option.
2023-08-14ArchiveOps: Add handling of 7zip archivesPaul Cristian Sarbu
Also updates the archive usage tests accordingly.
2023-08-14ArchiveOps: Allow lzip and lzma compression filters for tarballsPaul Cristian Sarbu
These are provided by the recently added liblzma external dependency.
2023-08-14ArchiveOps: Add proper autodetection option for tarballsPaul Cristian Sarbu
We shouldn't exclude the possibility of receiving uncompressed tarballs as repositories in just-mr. Therefore, we introduce an explicit type that performs the autodetection (default behaviour in just-mr). This is done to also be more in line with our implementation which allows the granular handling of various archive types (currently used only for testing purposes).
2023-08-14ArchiveOps: reduce verbosity in archive type enumPaul Cristian Sarbu
2023-08-14expression: add new built in "reverse"Klaus Aehlig
While a foldl is enough to implement a reverse functionality, adding it as a built in allows doing so in linear time.
2023-08-14expression: add new built in "set"Klaus Aehlig
... to obtain from a list of strings a map with those entries as keys and true as value. In this way, repeated membership tests in lists can be implemented more efficiently.
2023-08-14expressions: add constant for trueKlaus Aehlig
2023-08-11just build: allow -P to reach into treesKlaus Aehlig
2023-08-11Move downstepping to subobjects to a libraryKlaus Aehlig
... in order to make that functionality reusable
2023-08-10built-in: Add 'symlink' rulePaul Cristian Sarbu
The rule generates a non-upwards symbolic link with given target path.
2023-08-09Update fmt libraryKlaus Aehlig
2023-08-08Unlink files before creation on install-casKlaus Aehlig
If install-cas finds a file in the target location, unlink it before writing (in the same way as install does already). In this way, we avoid changing other file locations in the presence of hard links.
2023-08-08just execute: Fix uncollected upwards symlinksPaul Cristian Sarbu
Upwards symlinks should still be collected from actions, even if only the non-upwards symlinks are supported artifact types. The client side is thus the one responsible with enforcing the non-upwardness condition.
2023-08-07just-mr maps: Add logic for resolving symlinks in archive repositoriesPaul Cristian Sarbu
2023-08-07just-mr maps: Add logic for resolving symlinks in file repositoriesPaul Cristian Sarbu
2023-08-07just-mr utils: Add resolved tree id file getterPaul Cristian Sarbu