Skip to content

Use a trait for remote action result caching#19097

Merged
huonw merged 4 commits intopantsbuild:mainfrom
huonw:feature/action-result-trait-2
Jun 1, 2023
Merged

Use a trait for remote action result caching#19097
huonw merged 4 commits intopantsbuild:mainfrom
huonw:feature/action-result-trait-2

Conversation

@huonw
Copy link
Copy Markdown
Contributor

@huonw huonw commented May 23, 2023

This separates the remote::remote_cache coordination code from the gRPC REAPI implementation by:

  • adding a remote::remote_cache::ActionCacheProvider trait
  • moving the REAPI implementation into remote::remote_cache::reapi and implementing that trait

This is, in theory, just a lift-and-shift, with no functionality change.

This is preparation work for supporting more remote stores like GHA cache or S3, for #11149, and is specifically broken out of #17840. It continues #19050. Additional work required to actually solve #11149:

  • implementing other byte store and action cache providers
  • dynamically choosing the right providers for store::remote::ByteStore and remote::remote_cache

The commits are individually reviewable:

  1. preparatory breaking out of gRPC code
  2. defining the trait
  3. move the REAPI code and implement the trait, close to naively as possible:
  4. minor clean-up

@huonw huonw requested review from stuhood and tdyas May 23, 2023 11:29
@huonw huonw added the category:internal CI, fixes for not-yet-released features, etc. label May 23, 2023
@huonw
Copy link
Copy Markdown
Contributor Author

huonw commented Jun 1, 2023

Friendly ping 😄

@huonw huonw merged commit 713bb5b into pantsbuild:main Jun 1, 2023
@huonw huonw deleted the feature/action-result-trait-2 branch June 1, 2023 23:28
@wisechengyi wisechengyi mentioned this pull request Jun 3, 2023
wisechengyi added a commit that referenced this pull request Jun 4, 2023
### Internal

* upgrade to Rust v1.70.0
([#19228](#19228))

* Remove the last mentions of NO_TOOL_LOCKFILE.
([#19229](#19229))

* Upgrade Helm unittest
([#19220](#19220))

* Prepare `2.17.0rc0`.
([#19226](#19226))

* Use a trait for remote action result caching
([#19097](#19097))

* Port `Field` to Rust
([#19143](#19143))

* Upgrade `pyo3` to `0.19`.
([#19223](#19223))

* Prepare `2.16.0rc5`.
([#19221](#19221))

* internal: Create dep inference request type
([#19001](#19001))

* Avoid requiring Python when trying to install Python (using Pyenv)
([#19208](#19208))

* Fix secondary ownership warning semantics
([#19191](#19191))

* Bump os_pipe from 1.1.3 to 1.1.4 in /src/rust/engine
([#19202](#19202))

* Include committer date in local version identifier of unstable builds
([#19179](#19179))

* Ensure we set the AWS region.
([#19178](#19178))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:internal CI, fixes for not-yet-released features, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants