summaryrefslogtreecommitdiff
path: root/src/other_tools/just_mr/TARGETS
AgeCommit message (Collapse)Author
2024-01-30just-mr rc: honor "rc files" optionKlaus Aehlig
... to pull in rc files from different locations, given by location objects.
2024-01-30Add library for overlaying just-mr rcsKlaus Aehlig
2023-12-19other_tools: Fix missing includes of direct dependenciesPaul Cristian Sarbu
This fixes the multiple instances of (mainly) missing or wrong includes of standard, third-party, and own headers in the other_tools source folder.
2023-12-11just-mr: move rc handling to a separate libraryKlaus Aehlig
2023-12-07just-mr fetch: Extend to include 'git tree' repositoriesPaul Cristian Sarbu
This includes implementing the logic for the --backup-to-remote and --fetch-absent options.
2023-12-07just-mr git tree: Extract the fetch logic in its own async mapPaul Cristian Sarbu
2023-12-07just-mr fetch: Clarify naming of current fetch async mapPaul Cristian Sarbu
As preparatory step for extending the types of repositories that are targeted by a just-mr fetch subcommand, names of certain variables and of the currently only fetch operation async map were changed to clarify that they only target archives.
2023-11-14just-mr: Add utility getters for alternative mirrors specificationsPaul Cristian Sarbu
2023-11-14just-mr: Parse mirrors specification from checkout locations filePaul Cristian Sarbu
2023-11-02Decoupling symlinks map and CAS utilities from just-mrPaul Cristian Sarbu
This is required in order to make them available to 'just serve' in a minimal just installation.
2023-09-13just-mr: Implement 'absent' rootsPaul Cristian Sarbu
...via an 'absent' pragma in repository descriptions. For 'git'-type repositories, first interrogates a 'just serve' remote, if given, before reverting to fetching from the network.
2023-08-25just-mr: Interrogate remote CAS before defaulting to network fetch...Paul Cristian Sarbu
...for archives not already in local CAS.
2023-08-25just-mr utils: Extract setup-related code into separate libraryPaul Cristian Sarbu
This better separates the utility methods used in just-mr commands and avoids any cyclic dependencies that might arise in new utility methods requiring both existing utilities and the command-line arguments.
2023-08-25just-mr: Add remote execution and mTLS argumentsPaul Cristian Sarbu
These have similar meanings as in 'just', are forwarded to 'just' subcommands that support them, and can be set also in the RC file via appropriate fields.
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-07just-mr maps: Add logic for resolving symlinks in file repositoriesPaul Cristian Sarbu
2023-06-28just-mr: lock garbage collectionKlaus Aehlig
just-mr accesses the CAS at several occations, most importantly, the generated multi-repository configuration is written there. In particular, when used as a launcher, it needs to keep that file in its location as the path is passed to the exec of just.
2023-05-31Support FINAL_LDFLAGS variable for binariesOliver Reiche
... and set default stack size to 8 MB.
2023-04-26imports: Switch to Microsoft GSL implementationOliver Reiche
... with two minor code base changes compared to previous use of gsl-lite: - dag.hpp: ActionNode::Ptr and ArtifactNode::Ptr are not wrapped in gsl::not_null<> anymore, due to lack of support for wrapping std::unique_ptr<>. More specifically, the move constructor is missing, rendering it impossible to use std::vector<>::emplace_back(). - utils/cpp/gsl.hpp: New header file added to implement the macros ExpectsAudit() and EnsureAudit(), asserts running only in debug builds, which were available in gsl-lite but are missing in MS GSL.
2023-03-22just-mr: support log options in rc fileKlaus Aehlig
2023-03-13Storage: Reworked storage and garbage collectionOliver Reiche
The improved GC implementation uses refactored storage classes instead of directly accessing "unknown" file paths. The required storage class refactoring is quite substantial and outlined in the following paragraphs. The module `buildtool/file_system` was extended by: - `ObjectCAS`: a plain CAS implementation for reading/writing blobs and computing digests for a given `ObjectType`. Depending on that type, files written to the file system may have different properties (e.g., the x-bit set) or the digest may be computed differently (e.g., tree digests in non-compatible mode). A new module `buildtool/storage` was introduced containing: - `LocalCAS`: provides a common interface for the "logical CAS", which internally combines three `ObjectCAS`s, one for each `ObjectType` (file, executable, tree). - `LocalAC`: implements the action cache, which needs the `LocalCAS` for storing cache values. - `TargetCache`: implements the high-level target cache, which also needs the `LocalCAS` for storing cache values. - `LocalStorage`: combines the storage classes `LocalCAS`, `LocalAC`, and `TargetCache`. Those are initialized with settings from `StorageConfig`, such as the build root base path or number of generations for the garbage collector. `LocalStorage` is templated with a Boolean parameter `kDoGlobalUplink`, which indicates that, on every read/write access, the garbage collector should be used for uplinking across all generations (global). - `GarbageCollector`: responsible for garbage collection and the global uplinking across all generations. To do so, it employs instances of `LocalStorage` with `kDoGlobalUplink` set to false, in order to avoid endless recursion. The actual (local) uplinking within two single generations is performed by the corresponding storage class (e.g., `TargetCache` implements uplinking of target cache entries between two target cache generations etc.). Thereby, the actual knowledge how data should be uplinked is implemented by the instance that is responsible for creating the data in the first place.
2023-03-10Move common defaults for just and just-mr into a separate libraryKlaus Aehlig
... and, in this way, avoid duplication of these constants that might lead to inconsistencies between those two tools later.
2023-02-27Just-MR: Add progress reporting for setup commandPaul Cristian Sarbu
This includes also the setup-env command, as well as all ~just~ known subcommands that require a just-mr setup step. Co-authored-by: Sascha Roloff <sascha.roloff@huawei.com>
2023-02-27Just-MR: Add progress reporting for update commandPaul Cristian Sarbu
Co-authored-by: Sascha Roloff <sascha.roloff@huawei.com>
2023-02-23Add a version command for just-mr itselfKlaus Aehlig
Both, just and the launcher just-mr are developped and released together and hence share version numbers. Nevertheless, the tools are used independently. In fact, just-mr has an option to specify the just binary to be used. Hence it is useful that each tool is aware of its own version number. As a launcher, just-mr is supposed to forward all subcommands known to just, hence the just-mr command to show the version information cannot be called "version"; we use "mrversion" instead.
2023-01-20Move file_storage.hpp to file_system subdirectorySascha Roloff
2022-12-23just-mr: fix exec log messageKlaus Aehlig
... to show the argument vector properly serialized as json. In this way, the vector can be read unambigiously even if arguments contain white space.
2022-12-21Just-MR: Add main logic for setup and setup-env sub-commandsPaul Cristian Sarbu
2022-12-21Just-MR: Add main logic for update sub-commandPaul Cristian Sarbu
2022-12-21Just-MR: Add main logic for fetch sub-commandPaul Cristian Sarbu
2022-12-21Just-MR: Add main with CL args handlingPaul Cristian Sarbu
2022-12-21Just-MR: Add repos-to-setup mapPaul Cristian Sarbu
Contains the logic for the checkout of all supported repositories.
2022-12-21Just-MR: Add archive content-in-CAS mapPaul Cristian Sarbu
Calls libcurl to fetch the archives from the internet.
2022-12-21Just-MR: Add utilities library for just-mrPaul Cristian Sarbu