[engine] Add native filesystem node type.
Review Request #3550 - Created March 9, 2016 and submitted
FilesystemNodefor native filesystem operations to pave the way for invalidation.
ProjectTreeinstance access to
test_scheduler.py:test_dependency_inferencexfail pending #3024.
- Misc cleanups and a quick fix to retain
.dotfiles generated by the visualizer for direct analysis.
N.B. this currently omits a prior short-circuiting
StepContext.task_nodes (which seems to break globs due to the use of
Paths) in favor of a more permissive approach for the time being.
As mentioned above, I don't think it goes into Storage.
Given that there is an accessor method, can probably make this private.
Rather than taking the key, this should just take the instance, no?
In the multi-process case, I think the assumption is that each node must have access to the relevant git checkout (or to scoot), and so each of them can have a clone of the ProjectTree.
Thinking about this more, it seems like the ProjectTree is probably a property of the Engine (ie, the execution environment) rather than the scheduler.
xx: see below.
and can drop the "in a FilesystemNode" bit: the type of the Node should always be available.
These are definitely specific to the
legacysubdirectory. I can understand moving things here temporarily in order to break cycles directly in
exp, but I'm pretty sure these shouldn't be causing a cycle.
Maybe rather than
is_native, this is
is_filesystem_product? There will be other native nodes soonish.
Address Stu's feedback.
Revision 3 (+249 -170)
Fixup for omission of the removal of
exp/register.pyin the last changeset.
Revision 4 (+235 -170)