Skip to content
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

Port IsolatedProcess implementation to rust, and align with bazel remoting API #4397

Closed
stuhood opened this issue Mar 28, 2017 · 2 comments
Closed
Assignees

Comments

@stuhood
Copy link
Member

stuhood commented Mar 28, 2017

Isolated processes currently work for the purposes of testing, but there are lots of abstraction leaks: in particular, a _Snapshots snapshots object is exposed which the python code uses to reverse engineer the location of snapshots.

Instead, process execution should be ported to rust (maybe using duct?) to remove that leak.

Additionally, the outcome of discussion around https://docs.google.com/document/d/1jGq34ds_fhRLPDnmHNV_FHcJiJnbhmk2XEwOf9-w5To/edit#heading=h.ylneg9wnwxcs was that we should adapt the process execution model (which is implicitly also a "remote process execution" model) more closely with the draft of bazel's process execution model.

@stuhood stuhood added the engine label Mar 28, 2017
@stuhood stuhood added this to the post-v2 cleanup milestone Mar 28, 2017
@stuhood stuhood modified the milestones: post-v2 cleanup, 1.4.0 Apr 7, 2017
@stuhood stuhood changed the title Port isolated process implementation to rust Port IsolatedProcess implementation to rust, and align with bazel remoting API Jun 14, 2017
@stuhood stuhood added this to the 1.4.x milestone Aug 3, 2017
@stuhood
Copy link
Member Author

stuhood commented Sep 14, 2017

Assigning to @illicitonion : thanks!

@stuhood stuhood assigned ity and unassigned illicitonion Dec 16, 2017
@stuhood stuhood modified the milestones: 1.4.x, 1.5.x Jan 12, 2018
ity added a commit that referenced this issue Jan 20, 2018
)

* Port IsolatedProcess implementation from Python to Rust - Part 1
Problem
From #4397 - Isolated processes currently work for the purposes of testing, but there are lots of abstraction leaks: in particular, a _Snapshots snapshots object is exposed which the python code uses to reverse engineer the location of snapshots.
Instead, process execution should be ported to rust (maybe using duct?) to remove that leak.
Additionally, the outcome of discussion around https://docs.google.com/document/d/1jGq34ds_fhRLPDnmHNV_FHcJiJnbhmk2XEwOf9-w5To/edit#heading=h.ylneg9wnwxcs was that we should adapt the process execution model (which is implicitly also a "remote process execution" model) more closely with the draft of bazel's process execution model.

Solution
This is the first split of the bigger branch (master...ity:ity/cloc_rules) that ports the implementation to Rust. This PR can go in independently and will make it easier to work with smaller branches.

Changes made in this PR:
Invoke process execution in Rust from Python
Plumbing for ExecuteProcessRequest/ExecuteProcessResult
cloc can be invoked from commandline which invokes Rust process execution 
Test (test_javac_version_example) added in python which invokes Rust through Rules.
Removed directories_to_create after discussing with @illicitonion
stuhood pushed a commit that referenced this issue Jan 24, 2018
)

* Port IsolatedProcess implementation from Python to Rust - Part 1
Problem
From #4397 - Isolated processes currently work for the purposes of testing, but there are lots of abstraction leaks: in particular, a _Snapshots snapshots object is exposed which the python code uses to reverse engineer the location of snapshots.
Instead, process execution should be ported to rust (maybe using duct?) to remove that leak.
Additionally, the outcome of discussion around https://docs.google.com/document/d/1jGq34ds_fhRLPDnmHNV_FHcJiJnbhmk2XEwOf9-w5To/edit#heading=h.ylneg9wnwxcs was that we should adapt the process execution model (which is implicitly also a "remote process execution" model) more closely with the draft of bazel's process execution model.

Solution
This is the first split of the bigger branch (master...ity:ity/cloc_rules) that ports the implementation to Rust. This PR can go in independently and will make it easier to work with smaller branches.

Changes made in this PR:
Invoke process execution in Rust from Python
Plumbing for ExecuteProcessRequest/ExecuteProcessResult
cloc can be invoked from commandline which invokes Rust process execution 
Test (test_javac_version_example) added in python which invokes Rust through Rules.
Removed directories_to_create after discussing with @illicitonion
@stuhood
Copy link
Member Author

stuhood commented Apr 23, 2018

Resolved in #5239 and #5703.

@stuhood stuhood closed this as completed Apr 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants