3 ms·
> I'm sure almost everyone reading this thinks I'm hopelessly pedantic to care so much about the sequence of lines of output in my build logs. Not at all! In f
by rhymenoceros 8y ago
> I'm sure almost everyone reading this thinks I'm hopelessly pedantic to care so much about the sequence of lines of output in my build logs.
Not at all! In fact there are other tools in other domains that could benefit from careful thought about how to interleave parallel outputs in a way that favors interactivity/immediate output but preserves (effective) ordering [1][2]. This is a tough problem a lot of tools just give up on, but the status quo of "buffer everything until it is completely done" grates against one's senses.
[1] https://github.com/saltstack/salt/issues/22733 https://github.com/saltstack/salt/issues/22733
[2] https://github.com/ansible/ansible/issues/3887 https://github.com/ansible/ansible/issues/3887
- apenwarr 8y agoWow, those are quite fascinating use cases I hadn't considered. I'm actually curious about things like ansible; what exactly does it do that you couldn't just do with a bunch of redo scripts? Or alternatively, what if you ignored ansible's parallelism and just ran ansible once per host, from redo?
- rhymenoceros 8y agoA lot of devops tools, including Ansible and Salt, have higher-level concepts of ordering across hosts. In some cases this is implicit in the way the tool operates and people just take advantage of it, but in others (like Salt's orchestrate runner) the ordering of operations across hosts is explicitly defined by users. That can be useful for scripting blue/green deployment cutovers, pushing out new load balancer rules, etc. > I'm actually curious about things like ansible; what exactly does it do that you couldn't just do with a bunch of redo scripts? That might be more of a philosophical question :-) Most of those tools could be replaced with a sufficiently intelligent set of scripts. I think they get their popularity from providing more convenient syntax, building in parallelism for applying changes across hosts, offering cross-platform ways of doing common admin actions like creating accounts, etc. But if you look at them the right way, they definitely share a lot in common with build systems, particularly when it comes to managing dependent actions.
- JdeBP 8y agoSeveral things can be operated like build systems, and this has come up on Hacker News several times. I, for example, maintain my Debian package repository and my GOPHER site using redo, and use redo to import external software configuration into my service management. * https://news.ycombinator.com/item?id=14837740 https://news.ycombinator.com/item?id=14837740 * https://news.ycombinator.com/item?id=14928216 https://news.ycombinator.com/item?id=14928216 * https://news.ycombinator.com/item?id=14836340 https://news.ycombinator.com/item?id=14836340 * gopher://jdebp.info/h/Softwares/nosh/guide/external-formats.html * http://jdebp.eu./Softwares/nosh/guide/external-formats.html http://jdebp.eu./Softwares/nosh/guide/external-formats.html