summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-15Add infrastructure for end-to-end tests using just serveKlaus Aehlig
2023-09-15just serve: add remote execution endpoint and --fetch-absent optionPaul Cristian Sarbu
The serve service will communicate with this endpoint when needed, as well as ensure artifacts it provides are synced with the remote execution CAS, if requested by the client. If just-mr is given the --fetch-absent option, it Always produce present roots irrespective of the 'absent' pragma. For Git repositories marked with the 'absent' pragma, first try to fetch any commit trees provided by the serve endpoint from the execution endpoint CAS, before reverting to a network fetch. Co-authored-by: Klaus Aehlig <klaus.aehlig@huawei.com> Co-authored-by: Alberto Sartori <alberto.sartori@huawei.com>
2023-09-15GitApi: implement RetrieveToCASAlberto Sartori
This functionality will be needed to upload git trees to a remote-execution end point by `just serve.
2023-09-13target-level caching as a service design: add clarifying commentsKlaus Aehlig
- Document that `just serve` can be asked to back up a tree to the remote execution end point. - Specify, that similar to getting the tree of a commit, just serve can also be asked to provide the tree of an unpacked archive given by its blob identifier. - Document the auxilliary request by which `just build` can get the needed information about the flexible variables of an export target in order to construct the correct cache key.
2023-09-13CHANGELOG: describe current state of affairsKlaus Aehlig
2023-09-13Document 'just serve' protocol and implementationPaul Cristian Sarbu
2023-09-13test: Check that just-mr creates correct absent rootsPaul Cristian Sarbu
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-09-13just serve: Add endpoint argumentsPaul Cristian Sarbu
2023-09-13just serve: Implement basic API handling service requestsPaul Cristian Sarbu
2023-09-13test: Add initial checks for serve service clientPaul Cristian Sarbu
2023-09-13test: Add test environment running 'just serve'Paul Cristian Sarbu
2023-09-13just serve: Implement initial serve clientPaul Cristian Sarbu
...able to request the tree of a commit known to the remote.
2023-09-13just serve: Basic service implementation with commit-of-tree RPCPaul Cristian Sarbu
Initial version, to be extended later with other RPCs.
2023-09-13just: Add handling of 'just serve' configurationPaul Cristian Sarbu
2023-09-13remote: Extract port parsing in own libraryPaul Cristian Sarbu
2023-09-13remote: Extract common client implementation utils in own libraryPaul Cristian Sarbu
2023-09-13targets: Add missing explicit dependencies and fix library namePaul Cristian Sarbu
2023-09-13just-mr fetch: Fix minor typo in digest checkPaul Cristian Sarbu
The IsAvailable method with the correct signature is now called.
2023-09-13utils: No hash for upcoming libstdc++ 11 releasesOliver Reiche
2023-09-07just-mr: allow subkeys to be skipped in RC filePaul Cristian Sarbu
If a key has a map value, do not force all its subkeys to be present. Fixes changes brought in with supporting remote execution and authentication options in just-mr.
2023-09-05just.1: Disambiguate short name of optionPaul Cristian Sarbu
Add missing support list for --print-to-stdout option, which thus also disambiguates the -P short version.
2023-09-01just-mr.1: Add missing gc subcommand in synopsisPaul Cristian Sarbu
...and use same ordering of subcommands throughout.
2023-09-01fmt: Fix includes to only bring in the core APIPaul Cristian Sarbu
There is no need to use the full format API, so avoid increasing the compile time gratuitously.
2023-09-01Update fmt to 10.1.1Klaus Aehlig
2023-09-01add basic test for deduplicationKlaus Aehlig
... verifying that deduplication does not modify the analysis result.
2023-09-01Add a utility tool to deduplicate internal repositoriesKlaus Aehlig
Together with just-import-git that allows a work flow of easily importing dependencies without exponential blow up of the resulting repos.json files.
2023-08-31just-mr.py: Fix None checksPaul Cristian Sarbu
2023-08-31just-mr.py: Fix wrong check added by type annotation changesPaul Cristian Sarbu
The checkout locations keys can, of course, include the empty string, so key check should be explicitly typed.
2023-08-31just-import-git: fix fallout of type annotationsKlaus Aehlig
In order to get the type checker happy, some wrong type annotations were added and, as a consequence, an unwarrented conditional as well. To make things worse, this as checking for the non-None-ness of a value by inspecting the truth value, ignoring that the non-None value "" also has truth value False. Remove this conditional alltogether and fix the type annotations.
2023-08-29python: Add type hints and fix style in rules scriptsPaul Cristian Sarbu
2023-08-29python: Add type hints and fix style in test scriptsPaul Cristian Sarbu
For maximum compatibility, we use the uppercase types from the typing package instead of the built-in types, therefore compliant with PEP 484 and PEP 526.
2023-08-29just-import-git.py: Add type hints and fix stylePaul Cristian Sarbu
For maximum compatibility, we use the uppercase types from the typing package instead of the built-in types, therefore compliant with PEP 484 and PEP 526. As unfortunately there is no proper JSON typing option that requires many casts, we use a more lax typing for JSON inputs, but enforce return types in order to implicitly infer the actual format of an input JSON variable (dict, list, string etc.).
2023-08-29bootstrap.py: Add type hints and fix stylePaul Cristian Sarbu
For maximum compatibility, we use the uppercase types from the typing package instead of the built-in types, therefore compliant with PEP 484 and PEP 526.
2023-08-29parallel-bootstrap-traverser.py: Add type hints and fix stylePaul Cristian Sarbu
For maximum compatibility, we use the uppercase types from the typing package instead of the built-in types, therefore compliant with PEP 484 and PEP 526. As unfortunately there is no proper JSON typing option that requires many casts, we use a more lax typing for JSON inputs, but enforce return types in order to implicitly infer the actual format of an input JSON variable (dict, list, string etc.).
2023-08-29bootstrap-traverser.py: Add type hints and fix stylePaul Cristian Sarbu
For maximum compatibility, we use the uppercase types from the typing package instead of the built-in types, therefore compliant with PEP 484 and PEP 526.
2023-08-29just-mr.py: Add type hints, fix style, and improve readabilityPaul Cristian Sarbu
For maximum compatibility, we use the uppercase types from the typing package instead of the built-in types, therefore compliant with PEP 484 and PEP 526. As unfortunately there is no proper JSON typing option that requires many casts, we use a more lax typing for JSON inputs, but enforce return types in order to implicitly infer the actual format of an input JSON variable (dict, list, string etc.).
2023-08-28fmt: Specialize formatter only for version >= 10Oliver Reiche
2023-08-28Add end-to-end test that the shell is settable in "generic"Klaus Aehlig
2023-08-28Extend built-in "generic" rule to allow setting "sh"Klaus Aehlig
2023-08-28man: Fix missing quoting of literalsPaul Cristian Sarbu
2023-08-28Silence warnings produced by older compilersOliver Reiche
... in particular options like '-Wno-array-parameter', which are needed to silence newer compilers are not supported by older ones. Hence, add '-Wno-unknown-warning-option' for all.
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.
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 Co-authored-by: Oliver Reiche <oliver.reiche@huawei.com>
2023-08-28absl: avoid off64_tKlaus T. Aehlig
... to improve portability
2023-08-28Fix rule doc string of patch defaultsOliver Reiche
2023-08-25man: Document --backup-to-remote argument for just-mr fetchPaul Cristian Sarbu
2023-08-25man: Extend just-mr and just-mrrc specifications...Paul Cristian Sarbu
with the remote execution address and mTLS authentication options.
2023-08-25test: Check that just-mr interacts correctly with a remote endpointPaul Cristian Sarbu
The argument --backup-to-remote of just-mr and, thus, also this test can only be run in native mode.
2023-08-25just-mr fetch: Allow to back up fetched archives to a given remote CASPaul Cristian Sarbu