{"push_id":673482581,"size":58,"distinct_size":1,"ref":"refs/heads/master","head":"281babee641560de89cbb3e5472eea490950b0be","before":"ab9b19589b2be2720ff887f8b6e6a253ddc3db36","commits":[{"sha":"6ebc4dc38a186d85633d52f24e73ba20c727ec6e","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"IO reboot.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/6ebc4dc38a186d85633d52f24e73ba20c727ec6e"},{"sha":"fc7bf43617c7f2873b13cfa86ce02329cb1e8601","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Well all that was a lovely enslaught of psuedofunctional programming but turns out the core premise of converting caches back into direct materializer lambda behaviors is bunkum because at the very highest level when we assemble more than one of these things, we need *that* system to have control of the placers... and we want them to know it, too, because in terms of failure modes that should be pretty clearly separate.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/fc7bf43617c7f2873b13cfa86ce02329cb1e8601"},{"sha":"f32cd152405d5d4e72be01ce17c260830ba3a430","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Clean the slate.  Round 2.  Orienting everything around the yielding universe.\n\nSeems to be working a little better.  Might carry it all the way over the line and drop imperative locations as a separate interface, because they're really the exception, but gonna meditate on that a while yet.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/f32cd152405d5d4e72be01ce17c260830ba3a430"},{"sha":"3b02d9651ad2c66647e757200b4d829a308ae3c4","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Just for the sake of discussion, show the work that ensues when you remove the Haver/Materializer distinction by making everything take a destpath which it may elect to ignore.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/3b02d9651ad2c66647e757200b4d829a308ae3c4"},{"sha":"e3517fe094724363951ee5868abcb02178c20c05","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Walk a little farther down that road.  Define the workPath better.\n\nBut we probably *are* going to need objects per filesystem back.  Outputs, definitely, because they have a prepare stage... and inputs, actually: we should prepare for some of those to have a *teardown* stage.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/e3517fe094724363951ee5868abcb02178c20c05"},{"sha":"9672abec6b49b6067f1d225da37648d60132dcb2","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Do a bunch more research on IO reboot...\n\n- Came up with a good way to do progress reporting on noticably timeconsuming operations, which removes the last objection to exporting purely synchronous interfaces... so now we're doing so\n- Putting in the groundwork on a Cheney-style options pattern while we're there, just so we track where those sort of fields ought to go\n- Tossed in some typedefs on stringy stuff, just for fun\n- Accepting the fate that filesystems we produce are going to be stateful fun things.  Which in some ways isn't all bad; putting an Archive method on an Arena instead of having slurpers as their own wholy separate concept with strangely inverted args, and then just using only the appropriate methods in practice... might be interesting, and there's known bonus points for getting input and output filesystems to look the same (look ma, it's all mounts).\n\nBut then get the creeping realiziation that Everything is Still Wrong:\n\n- We need state *recovery* mechanisms, which means almost all of this stuff has to be designed around serializable tokens fed to a driver\n- And that caching materializer example we wrote was way, way too clued in to tar input systems.  The thing should work with other systems that use mounts, and that means relocation is bonkers, and that blew a cachebust through basically everything about the whole \"yielding you a path, deal with it\" thing.... so looks like we ARE going to go with a `func(Cacher, Placer) func(Materializer) Materializer` adapter system after all.\n\nWhee.  Being mindful of all the different semantics we someday need to deal with at once is tricky.  I think this is nearing the right thing, though, after we reforge for the last two concerns again.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/9672abec6b49b6067f1d225da37648d60132dcb2"},{"sha":"d3c579b777d499f2a25142d430b1f1ee1a57e9e7","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"IO rework now centers around transport drivers.\n\nAnd, added back in data system kind names, so we can now talk about examples of dispatcher systems.  There's now a dispatcher system; it manages to have the same interface as single Transmats do.\n\nPrior commits tell the bloody details of the progress of science, but basically the driving force behind this focus is realization that some sort of manager structure for a group of dataset manifestations is actually the normative state of being, because somebody with an algorithm has to be able to own an area, so that they know how to handle it when re-loading from cold.\n\nA lot of dispatcher setup is coming out as imperative programmatic stuff, but that's probably going to work out just fine.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/d3c579b777d499f2a25142d430b1f1ee1a57e9e7"},{"sha":"592be9d91b00dbea2dce106cc27f63b293fd2495","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Starting draft work on assemblers.\n\nDrafted a test and example of what results should look like; still mostly husks of interfaces with implementations to come.\n\nPlacers, like other things before them, are sprouting a return value that allows for their future cleanup.  The temptation to wrap all that out of sight with a function-passing system is strong, but it's key to remember that all these systems are supposed to also be prepared to work on a cleanup situation where the original invokers died unexpectedly.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/592be9d91b00dbea2dce106cc27f63b293fd2495"},{"sha":"dad160bb1ee1cab4e9ef703ade80d93d10cc383a","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Export the filefixture Defaults method.\n\nOther packages may want to use the terse filefixture declaration pattern.  Assemblers are an example; they don't end up checking against the pre-made fixtures because their composite is a whole new beast.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/dad160bb1ee1cab4e9ef703ade80d93d10cc383a"},{"sha":"05ba1344e581bc425ecb61a5f70519c175c02cd7","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Hack ability to specify root uid in filefixtures.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/05ba1344e581bc425ecb61a5f70519c175c02cd7"},{"sha":"b295ff6c59811e3389c6a9d221a2125f49d685cd","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Create copying placer system.  Enable tests!\n\nThis will be... almost never used in practice, since it will be the least efficient thing possible.  But it's a useful example for:\n\n1 - MVP (testsssssss we have them now, and facing an assembler interface so it's reusable as we swap in smarter placers), and\n\n2 - since it isn't mount based, has a lot in common with other situations where manifesting a purely local rootfs won't be on the table for a future executor (i.e. this teardown might need to *do* something for output data arenas, and that's probably a good example to be prepared for).\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/b295ff6c59811e3389c6a9d221a2125f49d685cd"},{"sha":"9c3fb6e01fecbcac2e37051df860fe8c82858ab9","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Implement bind placers!\n\nThese will do fast zero-copy happiness.\n\nNext step after this will definitely need to be More Tests.  This and the copy placer already have quietly different behavior in how changes propagate back to the source; we're going to need to spec, test, and document all that.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/9c3fb6e01fecbcac2e37051df860fe8c82858ab9"},{"sha":"c5aeff18783859abc172ff6901d8218a846a918d","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Add error checking during assembler dir creation.\n\nFix edge case in mkdirAll revealed.  (I hate the hot water easily ignorable error returns get you into SO MUCH.)  Feels like an oddly ducktape change, but chtimes blows up on \".\" and yet we clearly need that top chtime or the existing tests rightly fail, so.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/c5aeff18783859abc172ff6901d8218a846a918d"},{"sha":"876acdf81cd4035bd508b8259484c25e89d3335f","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Run more assertions before giving up.\n\nTravis is continuing to experience incredible reality excursions with //mkdir// and it's really helpful to see the scan outputs even when there are errors from the assembly process.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/876acdf81cd4035bd508b8259484c25e89d3335f"},{"sha":"4bb703ffdcbd7ca2dbe81d4314ce034f3c83079c","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Refactor assembler test common steps.\n\nOutline a bunch of more precise subheaddings (mostly still as todos) -- surprise surprise, one big test that lumps together like 8 major behaviors is *really* hard to debug when it fails in some odd environment that isn't your own -- so we're dealing with that asap.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/4bb703ffdcbd7ca2dbe81d4314ce034f3c83079c"},{"sha":"39f2a07a472e8681b63b0cbe061c87b97da3067e","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Implement source fs reuse test.\n\nStart doing generated fixture joins, too.  Yes, these look a *lot* like the assembler code itself.  But yes, it is still useful: in fact, another test needed has become obvious from doing this.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/39f2a07a472e8681b63b0cbe061c87b97da3067e"},{"sha":"95d4fc37ecfe3fe3095cb7ed7dcb4a6786cc27f9","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"More tests.\n\nMove the ConjoinFixtures method to the filefixture package.  It needs to sort fixture files.  (Could've exported the that sort interface too; /shrug.)\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/95d4fc37ecfe3fe3095cb7ed7dcb4a6786cc27f9"},{"sha":"af32633e81db87d3f8a83c4b6d6919aac1170f1e","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Implement placer overlap behavior test.\n\nFix copying placer to have same behavior as bind mount systems.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/af32633e81db87d3f8a83c4b6d6919aac1170f1e"},{"sha":"3977d07a9525d14bcf1a95d4b1205d3f0e961f23","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Skip bind placer tests in travis.  Travis can't handle it.\n\nIt's still super, super unclear to me why on earth this is coming out as an EROFS error on a makedir before the bind, but I just... I give up.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/3977d07a9525d14bcf1a95d4b1205d3f0e961f23"},{"sha":"f29976be37364bcdc182c87d1bc733218990b211","author":{"email":"2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us","name":"Eric Myhre"},"message":"Various docs cleanup.\n\nSigned-off-by: Eric Myhre <hash@exultant.us>","distinct":false,"url":"https://api.github.com/repos/polydawn/repeatr/commits/f29976be37364bcdc182c87d1bc733218990b211"}]}