Skip to content

First try at a Fuserunner - #60

Open
matclab wants to merge 22 commits into
brushtechnology:masterfrom
matclab:fuserunner
Open

First try at a Fuserunner#60
matclab wants to merge 22 commits into
brushtechnology:masterfrom
matclab:fuserunner

Conversation

@matclab

@matclab matclab commented Apr 21, 2015

Copy link
Copy Markdown

This is a first try…
The rationale behind this pull request is to provide a more robust way to collect dependencies than by using other runners which all have shortcomings (I still have some problems with StraceRunner, which is understandable, as strace log format was probably not meant as an interface for other programs).

It works as described hereafter:

  • the working dir is fuse mounted on a subdirectory ./.fusefab/#pid,
  • the fuse filesystem is a proxy that record each action on the filesystem, for process that share the same process group id than fabricate (thus eliminating actions done by other daemons, or by user),
  • at the end of running a command, the deps and outputs are collected from the fuse proxy.

The idea mainly comes from TUP build system : http://gittup.org/tup/
The cons of such a method is that fabricate.py becomes a bit eavier as it incorporate the fuse.py binding to the fuse librayr (which obviously become a dependancy). I also for now didn't take parallel execution into account.

So… Tell me what you think about this pull request (which may certainly be improved).

I will now try to add some automated test cases (with py.test ?) in order to have a better confidence in its working properly. And I may perhaps generalize the use of logging instead of printing to stderr…

Note that part of this work was founded by my employer Systerel.

@matclab
matclab force-pushed the fuserunner branch 2 times, most recently from 7edf4ad to 6c287aa Compare October 11, 2015 13:26
@chriscz

chriscz commented Mar 16, 2017

Copy link
Copy Markdown
Collaborator

Hi @matclab .
Thanks so much for the contribution.
This would be a really neat feature to integrate into fabricate.

As I am still new to this project and its code base,
it will take a while before I get around to merging it.

I will be merging #65 as soon as I have rights to the PyPI package.

@matclab

matclab commented Mar 17, 2017

Copy link
Copy Markdown
Author

I haven't work on it for a long time, but I think there are still some issues about the way the fuse and fabricate processes communicates. I'm not sure but it is possible that from time to time the build was unexpectedly failing.

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

Successfully merging this pull request may close these issues.

2 participants