-
-
Notifications
You must be signed in to change notification settings - Fork 645
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor Core::new including command runner setup #10993
Conversation
[ci skip-build-wheels]
[ci skip-build-wheels]
@gshuflin: I didn't end up introducing the enumeration that you had suggested. The parsing of the existing options seemed simple enough once the setup code was refactored out. |
src/rust/engine/src/context.rs
Outdated
named_caches_dir: &Path, | ||
process_execution_metadata: &ProcessMetadata, | ||
exec_strategy_opts: &ExecutionStrategyOptions, | ||
) -> Result<Box<dyn CommandRunner>, String> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does this need to return a Result
? I don't see a way this can fail
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wanted to be consistent with the other refactored methods. They all return Result<_, String>
. You are correct though, as it is currently, it cannot fail.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's not return a Result
here - can always change the signature if we need to in the future :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. Now just Box<dyn CommandRunner>
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good :) Are you going to move CommandRunner
to Session
, too?
src/rust/engine/src/context.rs
Outdated
named_caches_dir: &Path, | ||
process_execution_metadata: &ProcessMetadata, | ||
exec_strategy_opts: &ExecutionStrategyOptions, | ||
) -> Result<Box<dyn CommandRunner>, String> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's not return a Result
here - can always change the signature if we need to in the future :)
[ci skip-build-wheels]
I was considering it, but probably not until after I have the remote caching PR finalized. This PR just cleans up Core::new enough to make the changes for remote caching easier to understand. |
I'm not sure that that is a good idea... the The workunit store is provided thread/task-local, so per- |
My aim with the moving is to stop all of the remote execution related flags from being daemon-restarting flags... Ideally the flags would form part of the Graph, and the CommandRunner itself would form part of the graph, but that seems tricky... shrug something to think about, definitely not something urgent :) |
Internal-only changes: * upgrade to cpython crate v0.5.1 (#11052) `PR #11052 <https://github.com/pantsbuild/pants/pull/11052>`_ * Prepare 2.0.0 (#11053) `PR #11053 <https://github.com/pantsbuild/pants/pull/11053>`_ * Revert "Add new EngineAware method metadata() (#11030)" (#11047) `PR #11030 <https://github.com/pantsbuild/pants/pull/11030>`_ `PR #11047 <https://github.com/pantsbuild/pants/pull/11047>`_ * Remove deprecated `python_binary` target in favor of `pex_binary` (#11046) `PR #11046 <https://github.com/pantsbuild/pants/pull/11046>`_ * Prepare 2.0.0rc3 (#11044) `PR #11044 <https://github.com/pantsbuild/pants/pull/11044>`_ * Eagerly validate entry points for `setup_py().with_binaries()` (#11034) `PR #11034 <https://github.com/pantsbuild/pants/pull/11034>`_ `PR #11021 <https://github.com/pantsbuild/pants/pull/11021>`_ * Use Ubuntu Bionic for CI (#11027) `PR #11027 <https://github.com/pantsbuild/pants/pull/11027>`_ * Prepare 2.0.0rc2 (#11017) `PR #11017 <https://github.com/pantsbuild/pants/pull/11017>`_ * Remove RunTrackerLogger (#11018) `PR #11018 <https://github.com/pantsbuild/pants/pull/11018>`_ * Upgrade Pex to 2.1.20 (#11014) `PR #11014 <https://github.com/pantsbuild/pants/pull/11014>`_ * Remove more unused code from RunTracker (#11012) `PR #11012 <https://github.com/pantsbuild/pants/pull/11012>`_ * Add type annotations to AggregatedTimings (#11009) `PR #11009 <https://github.com/pantsbuild/pants/pull/11009>`_ * Increase default `[python-setup].resolver_jobs` to `cpu_count / 2` (#11006) `PR #11006 <https://github.com/pantsbuild/pants/pull/11006>`_ * Include `<PYENV>` in `[python-setup].interpreter_search_paths` default (#10998) `PR #10998 <https://github.com/pantsbuild/pants/pull/10998>`_ * Remove PantsDaemonStats class wrapper (#11003) `PR #11003 <https://github.com/pantsbuild/pants/pull/11003>`_ `PR #files#r508861045 <https://github.com/pantsbuild/pants/pull/11000/files#r508861045>`_ * Revert using libCST for dep inference due to performance (#10907) (#11001) `PR #10907 <https://github.com/pantsbuild/pants/pull/10907>`_ `PR #11001 <https://github.com/pantsbuild/pants/pull/11001>`_ * Run tracker refactor (#11000) `PR #11000 <https://github.com/pantsbuild/pants/pull/11000>`_ * refactor Core::new including command runner setup (#10993) `PR #10993 <https://github.com/pantsbuild/pants/pull/10993>`_ `PR #10960 <https://github.com/pantsbuild/pants/pull/10960>`_ * Allow changing the versioning scheme for `python_distribution` first-party dependencies (#10977) `PR #10977 <https://github.com/pantsbuild/pants/pull/10977>`_ * Remove tokio Handle type from Executor::new (#10980) `PR #10980 <https://github.com/pantsbuild/pants/pull/10980>`_ * Remove deprecated `Address.parse()` and `Address.reference()` (#10981) `PR #10981 <https://github.com/pantsbuild/pants/pull/10981>`_ * Remove project_ methods from the externs module (#10955) `PR #10955 <https://github.com/pantsbuild/pants/pull/10955>`_ * Prepare 2.0.0rc1 (#10972) `PR #10972 <https://github.com/pantsbuild/pants/pull/10972>`_ * Fix interpreter selection when building a PEX to use `[python-setup].interpreter_search_paths` (#10965) `PR #10965 <https://github.com/pantsbuild/pants/pull/10965>`_ * Delete `JsonReporter` (#10964) `PR #10964 <https://github.com/pantsbuild/pants/pull/10964>`_ * Fix log (#10959) `PR #10959 <https://github.com/pantsbuild/pants/pull/10959>`_ * Expose getattr method for Python-related APIs (#10953) `PR #10953 <https://github.com/pantsbuild/pants/pull/10953>`_ * Upgrade tokio package to 0.2.22 (#10949) `PR #10949 <https://github.com/pantsbuild/pants/pull/10949>`_ * Use `package` to build Pants's wheels, rather than `setup-py` (#10947) `PR #10947 <https://github.com/pantsbuild/pants/pull/10947>`_ * Simplify val_to_str and have it and val_to_log_level use PyObject (#10946) `PR #10946 <https://github.com/pantsbuild/pants/pull/10946>`_
Problem
Core::new is a very convoluted function and it is hard to read what is actually going on in it.
Solution
Refactor the store and command runner setup into separate functions. (Also refactors the load of some certificates.) This refactor will make the subsequent introduction of remote caching in #10960 easier to comprehend.
Result
Existing tests pass.