summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2025-01-29garbage collection: remove garbage recursivelyKlaus Aehlig
When garbage collecting the oldest generation, we expect it to be a non-empty directory. Therefore, remove it recursively.
2025-01-28Progress reporting: also report the primary action outputKlaus Aehlig
While reporting an origin target with action number within that target describes an action uniquely in a way meaningful to the user, it might not always be eay to unserstand which precise action is currently running. For example, for a library with many source files, we have a target generating a large number of actions and the association of source file to action number requires detailled knowledge of the build description. The name of the primary ouput of that action, on the other hand immediately identifies the file that is compiled. Therefore, report this as well.
2025-01-24Add native comparison of configured targetsKlaus Aehlig
... and use it when normalizing the origins of actions. For this task, any well-defined linear order is sufficient. Using a native comparision (rather than comparing the canonical serialisation) significantly speeds up that normalisation process, as the assumption that it would be rare that an action has more than one origin turned out to be false. In fact, we have seeen cases where this sorting used to take several seconds before this change, so that this change reduced analysis time by more than a factor of 5.
2025-01-24"generic" rule: verify staging conflicts on inputsKlaus Aehlig
The "generic" rules deliberately resolves conflicts on identical paths in a latest-wins fashion (seeing all artifacts as later than all runfiles) to allow an easy way to define actions. However, the inputs stage obtained by this resolution can still contain conflicts and those are an error. Properly detect those. Also clarify in the documentation, that only conflicts on identical paths are resolved in the described priority, not semantic overlap.
2025-01-23Computed roots: add basic progress reportingKlaus Aehlig
2025-01-23Add basic progress reporter on root evaluationKlaus Aehlig
2025-01-23Remove unused library "root_utils"Maksim Denisov
2025-01-23JustMr: Replace calls to CheckServeHasAbsentRoot with direct calls to serveMaksim Denisov
2025-01-23PrecomputedRoot: Remove DownloadFromServeMaksim Denisov
... and replace it with a direct call to serve.
2025-01-23ServeApi: Implement DownloadTreeMaksim Denisov
2025-01-23PrecomputedRoots: Remove UploadToServeMaksim Denisov
... and replace it with a direct call to serve.
2025-01-23Remove function EnsureAbsentRootOnServeMaksim Denisov
...since it is superseded by ServeApi's method.
2025-01-23JustMr: ContentGitMap: Remove unused arguments.Maksim Denisov
2025-01-23JustMr: ContentGitMap: Use serve callsMaksim Denisov
...instead of EnsureAbsentRootOnServe.
2025-01-23JustMr: ContentGitMap: Remove code duplication.Maksim Denisov
2025-01-23JustMr: DistdirGitMap: Use serve callsMaksim Denisov
...instead of EnsureAbsentRootOnServe. And remove unused arguments.
2025-01-23JustMr: CommitGitMap: Remove unused arguments.Maksim Denisov
2025-01-23JustMr: CommitGitMap: Use serve callsMaksim Denisov
...instead of EnsureAbsentRootOnServe.
2025-01-23JustMr: FilePathGitMap: Remove unused arguments.Maksim Denisov
2025-01-23JustMr: FilePathGitMap: Use serve callsMaksim Denisov
...instead of EnsureAbsentRootOnServe
2025-01-23ServeApi: Implement UploadTreeMaksim Denisov
2025-01-23ServeApi: Capture ApiBundle and StorageConfig in the ctor.Maksim Denisov
2025-01-23Call serve directly instead of EnsureAbsentRootOnServe.Maksim Denisov
2025-01-22Git CAS access: reduce log levelKlaus Aehlig
Trying to access a git object return a recoverable failure, hence the failure to find the object in the git object database should be logged at warning level at most. Moreover, in some cases we should log that event at an even lower level, e.g., if we're just checking the presence of the object in the local git cas to avoid unnecessary network access.
2025-01-22local api: take git fallback seriouslyKlaus Aehlig
... and, when asked if an artifact is available, also inspect the git cas.
2025-01-22absent computed roots: obtain value from serve without fetching artifactsKlaus Aehlig
2025-01-22just-mr: support absent computed rootsKlaus Aehlig
2025-01-22Computed roots: extend data structure to support the absent pragmaKlaus Aehlig
2025-01-22serve client: support keep_artifact_rootKlaus Aehlig
2025-01-22serve service: honor keep_artifact_rootKlaus Aehlig
2025-01-22Source-tree service: accept lock referenceKlaus Aehlig
... so that tagging in the associated git root can be synchronized with other services provided by just serve.
2025-01-22Serve protocol: support keeping the artifact stage as rootKlaus Aehlig
In the serve protocol, extend ServeTargetRequest by a flag indicating that the client whishes the server to keep the artifact stage as an additional root. In this way, if a computed root is built on serve it can be used as an absent root without additional communication overhead.
2025-01-21TreeStructure: Evaluate absent tree structure rootsMaksim Denisov
2025-01-21Implement UploadToServeMaksim Denisov
2025-01-21JustMr: Support absent tree structure rootsMaksim Denisov
2025-01-21Just: Support absent tree structure rootsMaksim Denisov
2025-01-21TreeStructure: Evaluate local tree structure roots of absent rootsMaksim Denisov
2025-01-21Implement DownloadFromServeMaksim Denisov
2025-01-21TreeStructure: Compute on serveMaksim Denisov
2025-01-21TreeStructure: Extend just-serve's protoMaksim Denisov
2025-01-21TreeStructure: move resolution logic to a separate function.Maksim Denisov
2025-01-21TreeStructure: use FileRoot as a result of resolutionMaksim Denisov
2025-01-21TreeStructureUtils: implement local computation of tree structureMaksim Denisov
2025-01-21TreeStructureUtils: export from gitMaksim Denisov
2025-01-21TreeStructureUtils: import to gitMaksim Denisov
Unify logic from evaluator of precomputed roots.
2025-01-21Rename compute_tree_structure to tree_structure_utilsMaksim Denisov
2025-01-15Use GitRepo::IsTreeInRepo during evaluation of precomputed roots.Maksim Denisov
2025-01-15Use GitRepo::IsTreeInRepo in target utilsMaksim Denisov
2025-01-15Use GitRepo::IsTreeInRepo in SourceTreeServiceMaksim Denisov
2025-01-15Add to GitRepo common implementation IsTreeInRepoMaksim Denisov