On 23/04/2015 23:26, Joan Picanyol i Puig wrote:
I'd really expect a ui that can "diff" "compiled" & "live" vs. "source" (and obviously, to inspect "compile" & "live").
There will definitely be a ui to inspect compiled + live. As for diffing the current state vs. source, I think it will be too complex, because it would amount more or less to performing the work of the compiler again. What can be done is something that compares two "compiled" databases, so to diff against the source, you would compile the source into a temp database then compare the temp to the current compiled.
I find ./down so convinient that would like having support for it in the "source" format.
The thing is, s6-rc already makes use of ./down internally. When you run "s6-rc -d this-longrun-service", it first brings down everything that depends on this-longrun-service, then creates ./down in this-longrun-service's service directory in live, then calls s6-svc -d on this-longrun-service. It says that the service is supposed to be down and remain that way, because that is the state you want to see enforced. s6-rc is a global state manager. If you use it, you delegate all your service management to it.
Any heuristics will face unsolvable situations. I'd aim at getting the "patch" (dual of "diff" above) action right all the time first.
That can be done, but with or without heuristics, there will still need to be a tool to actually update the live state. "diff" is easier than "patch"; the details of "patch" are what I'm interested in. -- Laurent