summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-06-13bootstrap: use etc/repos.in.jsonKlaus Aehlig
... as repository configuration. We know that everything imported is not needed for the bootstrap process. Hence, by taking the description before import, we can avoid fetching unnecessary archives.
2025-06-13Import clang-18 from toolchainKlaus Aehlig
... and make it available to a new "lint" repository. In this way, there is no dependency of the main or test repository on the newly importet toolchain, while the "lint" repository has access to a well-defined version of clang-tidy.
2025-06-12Update documentationMaksim Denisov
2025-06-12Test compactification gets skipped for `gc --all`Maksim Denisov
2025-06-12Add a flag to `gc` command: `--all`Maksim Denisov
2025-06-12GarbageCollector: Support removal of all generations at onceMaksim Denisov
...that ignores compactification.
2025-06-11Add design document for full GCMaksim Denisov
2025-06-05lint tutorial: hint on the discovered but not processed actionsKlaus Aehlig
Linting is a natural example where actions are discovered that are not neded for the artifact that is requested to be built. Use this opportunity to explain the difference between discovering an action and processing it.
2025-06-05test ["end-to-end/git-import", "computed"]: move to subdirKlaus Aehlig
This test uses a file repository at "." with the "to_git" pragma. Now, if we build the tool to be tested in debug mode, the sources end up in the test's action directory. If we take the work dir of the simulated use case top level, all these sources end up unnecessarily in the workspace root of the test repo. Avoid this overhead by moving to a subdirectory.
2025-06-05test end-to-end/actions: Fix typo in TARGETS filePaul Cristian Sarbu
2025-06-05tutorial lint: Update example outputPaul Cristian Sarbu
2025-06-05Executor: Log action outputs sorted by pathPaul Cristian Sarbu
...also on failure or warning.
2025-06-05GitRepo: Fix wrong handling of fatal loggingPaul Cristian Sarbu
...in creating Git tree from filesystem directory.
2025-06-05GitRepo: Fix capitalisation inconsistency in loggingPaul Cristian Sarbu
2025-06-05GitRepo: Use std::invoke to call generic loggerPaul Cristian Sarbu
2025-06-05GitRepo: Reduce logging levelsPaul Cristian Sarbu
...in methods that should not report at error level themselves, but let this be handled by its callers. While there, remove an unneeded path manipulation in a defferent set of log messages.
2025-06-05GitRepo: Ensure compliance with existing noexcept specifiersPaul Cristian Sarbu
...while also removing some unneeded one. Do not implicitly trust that the third-party code called in these methods is non-throwing and instead properly handle any exception that might arise. Also remove the specifiers from some anonymous namespace methods where a try-catch would be overkill and let their callers handle any exceptions instead.
2025-06-05GitCAS: Reduce log level where fatal not expectedPaul Cristian Sarbu
...and fix inconsistent capitalisation.
2025-06-05GitCAS: Ensure compliance with existing noexcept specifiersPaul Cristian Sarbu
Do not implicitly trust that the third-party code called in these methods is non-throwing and instead properly handle any exception that might arise.
2025-06-05Update CHANGELOGKlaus Aehlig
2025-06-05man pages: extend "see also" sectionKlaus Aehlig
... to include at least all pages referenced throughout the man page.
2025-06-04test: Add check that TREE references reject upwards symlinksPaul Cristian Sarbu
2025-06-04directory_map: Correctly report fatal on failures to read from workspace rootsPaul Cristian Sarbu
2025-06-04Tests: Verify symlink handling in APIsOliver Reiche
... which should not do any symlink checks in compatible mode.
2025-06-04Remove unneeded extra checks for upwards symlinksPaul Cristian Sarbu
2025-06-04Executor: Check validity of action outputs in compatible modePaul Cristian Sarbu
This ensures that any entries that the standard remote execution protocol accepts but are invalid in justbuild, i.e., upwards symlinks, are rejected. For this purpose, do not fail in the action response instances, just perform the check there, as all required information is available, and set a flag that the executor can check as needed.
2025-06-04{Local,Bazel}Response: Fix logic for marking succesful populationPaul Cristian Sarbu
While in practice a failure to populate the fields of a response happens once per invocation, as it will trigger a failure of the execution, from an algorithmic standpoint the flag to mark a successful population of the response fields should only be set on actual success. Fix this.
2025-06-04Executor: Move noexcept enforcement to main public call pointsPaul Cristian Sarbu
...and remove specifiers from methods that might throw in unexpected ways. By doing this, balance the need to avoid wrongly silencing exception sources during execution with reducing the amount of try-catch blocks.
2025-06-04LocalCasReader: Add validity check for bazel directoriesPaul Cristian Sarbu
This will check if directories contain upwards symlinks.
2025-06-04Execution server: Let the underlying API handle invalid entriesPaul Cristian Sarbu
The execution server itself should not consider anything special in setting the response message to the client, instead let the underlying API fail or not during collection.
2025-06-04FileRoot: Improve documentationPaul Cristian Sarbu
2025-06-04FileRoot: Ensure all read blobs and trees contain valid entriesPaul Cristian Sarbu
In particular, ensure that Git roots check for, e.g., upwards symlinks, before returning blobs and trees. To ensure that only the bear minimum extra work is performed for this purpose, Git roots now keep also the root's GitTreeEntry as a field, allowing the validity check of root source trees to take place only once and only if required.
2025-06-04FileRoot: Small format fixPaul Cristian Sarbu
2025-06-04FileRoot: Give git-based roots access to storage configPaul Cristian Sarbu
2025-06-04RepositoryConfig: Ensure consistency in reading blobs and treesPaul Cristian Sarbu
...with respect to rejecting invalid entries such as upwards symlinks. Also ensure that valid trees are only checked once by remebering known valid tress though marker files in local storage.
2025-06-04RepositoryConfig: Give access to a persistent storage config...Paul Cristian Sarbu
...whenever it is given access to a Git repository. The referenced storage config needs to outlive the repository config instance.
2025-06-04Add utility methods for caching valid treesPaul Cristian Sarbu
...through marker files kept in storage under generation regime. These can be used to allow valid source trees, i.e., those free of upwards symlinks, to be cached in a persistent manner over multiple builds.
2025-06-04GitTree: Allow tree reading to skip symlinks checkerPaul Cristian Sarbu
This is useful when the caller already knows that the tree to look up is valid, and thus the extra check step can be safely skipped.
2025-06-04GitRepo: Fix wrong logging level in reading treesPaul Cristian Sarbu
This removes a scenario where otherwise successful (exit code 0) calls to just and just-mr would result in an error-level log message.
2025-06-04GitRepo: Add tree reader without symlink checkerPaul Cristian Sarbu
2025-06-04GitTree: Ensure all read entries are validPaul Cristian Sarbu
Match behaviour of reading trees, which always checks for invalid entries, also for reading blobs.
2025-06-04git_cas read object: allow validation of individual blobsPaul Cristian Sarbu
This allows individual blobs read to be checked, e.g., for upwards symlinks, also when not part of a tree, which performs such a validation for its entries during its parsing into a GitTree.
2025-06-04git_cas: Be explicit in hash type (raw or hex) when readingPaul Cristian Sarbu
2025-06-04end-to-end glob: Fix typos in test outputPaul Cristian Sarbu
2025-06-04GitTree: Fix comment typoPaul Cristian Sarbu
2025-06-03Invocation server: also show counts in headingsKlaus Aehlig
Often, the simple number, e.g., for failed actions can already give valuable information. For example, when investigating flakiness, the count of failed actions already gives a hint whether a change increased or decreased flakiness which can be valuable before even investigating if the nature of the failure has changed. As we have that information available and an additional number in a heading does not clutter the page too much, let's just show it.
2025-06-02Use quoting for literalsKlaus Aehlig
... to improve readability of target files.
2025-06-02ParallelRetrieveToCasWithCache: abort early on failureKlaus Aehlig
... and do mark artifacts internally as synchronized. First all all, we will abort anyway, to the entry won't even be read and, secondly it is not necessarily true that the artifact is synchronized.
2025-06-02CHANGELOG: document fix in parallelismKlaus Aehlig
2025-06-02end-to-end just-mr/absent-closure: Fix typoPaul Cristian Sarbu