From a20c20ca4a8825a97b9b24744bbe12aacfc8cc2b Mon Sep 17 00:00:00 2001 From: Lucian Mogosanu Date: Thu, 31 Jan 2019 23:55:46 +0200 Subject: [PATCH] posts: 080 --- posts/y05/080-botworks-regrind.markdown | 167 ++++++++++++++++++++++++++++++- uploads/2018/11/botworks-v-tree.svg | 91 +++++++++++++++++ 2 files changed, 257 insertions(+), 1 deletion(-) create mode 100644 uploads/2018/11/botworks-v-tree.svg diff --git a/posts/y05/080-botworks-regrind.markdown b/posts/y05/080-botworks-regrind.markdown index dffe1a6..7ef216d 100644 --- a/posts/y05/080-botworks-regrind.markdown +++ b/posts/y05/080-botworks-regrind.markdown @@ -6,4 +6,169 @@ author: Lucian Mogoșanu tags: tech, tmsr --- -TODO: Merge downstream from tuvok +This post is a regrind proposal for [Trinque][trinque]'s +[botworks patchset][bot], including [ircbot][ircbot], [logbot][logbot] +and [trilemabot][trilemabot], as a result of multiple discussion threads +in the forum of the Most Serene Republic[^1]. + +The new set of V patches is available in my [repository][botworks]. It +can be pressed with e.g. [vk.pl][diana] as follows: + +~~~~ {.bash} +$ mkdir botworks; cd botworks; mkdir .wot +# Make sure to add spyked.asc key in .wot (via e.g. deedbot) +$ vk.pl init http://lucian.mogosanu.ro/src/botworks/ +# Example: pressing to logbot-genesis +$ vk.pl p v logbot-genesis logbot-genesis.vpatch +~~~~ + +Some notes, starting from the structure of the new V tree: + + +
+ +
+ +This particular organization of V patches was chosen in order to +preserve both history and the "based on" relation between botworks +components -- currently ircbot, logbot and trilemabot. Thus: a. both +trilemabot and logbot are based on ircbot, and the Python command router +is based on logbot; b. logbot-genesis flows directly from +ircbot-genesis; c. trilemabot flows from +ircbot-multiple-channels-corrected[^2]; and d. the +{logbot,ircbot}-multiple-channels-corrected patches are also "merged" +together in a new V patch[^3]. + +A consequence of this organization is that trilemabot and logbot being +on two separate sides of the tree, at the moment they cannot be pressed +together[^4]. + +Another consequence is that out of three tested V implementations, one +([v.py][barksinthewind]) is not able to generate a correct press, +requiring that only one side of the tree exist in the patches +directory[^5]. The other two ([v.pl][diana] and [Esthlos V][esthlos]) +however work. For example: + +~~~~ +$ ls -1 patches .seals +patches: +ircbot-genesis.vpatch +ircbot-logbot-multiple-channels-corrected.vpatch +ircbot-multiple-channels-corrected.vpatch +logbot_command_router_python_genesis.vpatch +logbot-genesis.vpatch +trilemabot-prefixed-cmd.vpatch +trilemabot-voicer.vpatch + +.seals: +ircbot-genesis.vpatch.spyked.sig +ircbot-logbot-multiple-channels-corrected.vpatch.spyked.sig +ircbot-multiple-channels-corrected.vpatch.spyked.sig +logbot_command_router_python_genesis.vpatch.spyked.sig +logbot-genesis.vpatch.spyked.sig +trilemabot-prefixed-cmd.vpatch.spyked.sig +trilemabot-voicer.vpatch.spyked.sig + +$ vk.pl pp logbot_command_router_python_genesis.vpatch +ircbot-genesis.vpatch (spyked) +logbot-genesis.vpatch (spyked) +ircbot-logbot-multiple-channels-corrected.vpatch (spyked) +logbot_command_router_python_genesis.vpatch (spyked) + +$ vk.pl pp trilemabot-prefixed-cmd.vpatch +ircbot-genesis.vpatch (spyked) +ircbot-multiple-channels-corrected.vpatch (spyked) +trilemabot-voicer.vpatch (spyked) +trilemabot-prefixed-cmd.vpatch (spyked) +~~~~ + +And yes, e.g. `vk.pl p v my-dir trilemabot-prefixed-cmd.vpatch` produces +a correct press. Neat, huh? So go [grab the patches][botworks] and tell +me what you think! + +[^1]: Long story short: a. the current Republican IRC bot components are + to be unified under a single V tree; and b. no new Vtronic work + shall be submitted using the heathen SHA hashes, which implies a + Keccak regrind before anything. A few references below: + + * [Discussion][btcbase-1819005] on the organization of V trees and + the flow of V patches, and in particular those of ircbot, logbot + and similar. + * [I propose][btcbase-1832542] to do a regrind of the botworks tree. + * [I agree][btcbase-1832815] to do said regrind. + * [Discussion][btcbase-1820387] on the directory structure of V + presses, in particular that of botworks. + * Proposal for a [Keccak-based v.py][barksinthewind], a + [V in Common Lisp][esthlos], and a [Keccak-based v.pl][diana]. + * All new Republican V patches + [must be based on Keccak][btcbase-1851879]. + + The last point solves my [earlier dilemma][trilemabot-ii] on what to + prioritize. + +[^2]: While trilemabot-voicer could in principle be a direct child of + ircbot-genesis, I, as a trilemabot user who keeps all his bots in + multiple channels, don't see any reason for keeping this + functionality out. If you feel strongly about this, you're free to + submit patches, test results and so on. + +[^3]: This is, as far as I can tell, the cleanest way to represent the + fact that the so-called "logbot-with-multiple-channels" depends on + both "logbot-genesis" and "ircbot-with-multiple-channels", while at + the same time adhering to the "V patch may have only one parent" + philosophy that arises from the use of [manifests][manifest]. + +[^4]: Which suggests that this might be the wrong way to cut it (at + least for some). Let's take a deeper look at this problem, because + it informs other decisions, such as the + [eventual replacement][btcbase-1856367] of ASDF with V. + + First off, we know from numerous discussions in the logs, + e.g. [1][btcbase-1862430], [2][btcbase-1862674] or + [3][btcbase-1873668], that manifests enforce a linear flow of V + patches, to sit well with the linear flow of history. Then a + divergence in the V chain, i.e. the existence of a branching point + in history, will denote changes that are (semantically) mutually + exclusive, such as the particularization of some functionality to a + specific hardware architecture. + + This is all good, but I reground the trilemabot and logbot patches + -- that provide two disjunct but *not* mutually exclusive components + of the botworks set -- as two divergent branches for a different + reason: I for example want to exclude Postgres dependencies from the + trilemabot-based [spykedbot][spykedbot] (I might later want to add a + text or MySQL-based logging mechanism, or who knows), while on the + other hand [Lobbes][lobbes] [needs][btcbase-1862345] both logging + and voicing functionality into his own bot. + + This problem could be solved for example by extending one of the + existing branches with the missing functionality -- but which one? + Since I'm not sure how to proceed here, I'm submitting this to the + forum for discussion. I'm eager to hear your comments! + +[^5]: See also [this discussion][btcbase-1833105]. + +[trinque]: http://trinque.org/ +[bot]: http://btcbase.org/patches?patchset=bot +[ircbot]: http://trinque.org/2016/08/10/ircbot-genesis/ +[logbot]: http://trinque.org/2016/08/11/logbot-genesis/ +[trilemabot]: /posts/y04/072-trilemabot-i.html +[btcbase-1819005]: http://btcbase.org/log/2018-05-25#1819005 +[btcbase-1832542]: http://btcbase.org/log/2018-07-07#1832542 +[btcbase-1832815]: http://btcbase.org/log/2018-07-08#1832815 +[btcbase-1820387]: http://btcbase.org/log/2018-06-03#1820387 +[barksinthewind]: http://barksinthewind.com/2018/vpy-updated-for-vtools/ +[esthlos]: http://blog.esthlos.com/esthlos-v-release-with-working-keccak/ +[diana]: http://ossasepia.com/2018/11/13/v-with-vtools-keccak-hashes-and-its-own-tree/ +[btcbase-1851879]: http://btcbase.org/log/2018-09-19#1851879 +[trilemabot-ii]: /posts/y05/078-trilemabot-ii.html#selection-227.0-234.1 +[botworks]: http://lucian.mogosanu.ro/src/botworks/ +[manifest]: http://trinque.org/2018/06/02/v-manifest-specification/ +[btcbase-1856367]: http://btcbase.org/log/2018-10-01#1856367 +[btcbase-1862430]: http://btcbase.org/log/2018-10-14#1862430 +[btcbase-1862674]: http://btcbase.org/log/2018-10-15#1862674 +[btcbase-1873668]: http://btcbase.org/log/2018-11-19#1873668 +[spykedbot]: http://btcbase.org/log-search?q=from%3Aspykedbot +[lobbes]: http://lobbesblog.com/ +[btcbase-1862345]: http://btcbase.org/log/2018-10-14#1862345 +[btcbase-1833105]: http://btcbase.org/log/2018-07-10#1833105 diff --git a/uploads/2018/11/botworks-v-tree.svg b/uploads/2018/11/botworks-v-tree.svg new file mode 100644 index 0000000..af40808 --- /dev/null +++ b/uploads/2018/11/botworks-v-tree.svg @@ -0,0 +1,91 @@ + + + + + + +botworks + + + +ircbot-genesis + +ircbot-genesis + + + +ircbot-multiple-channels-corrected + +ircbot-multiple-channels-corrected + + + +ircbot-genesis->ircbot-multiple-channels-corrected + + + + + +logbot-genesis + +logbot-genesis + + + +ircbot-genesis->logbot-genesis + + + + + +trilemabot-voicer + +trilemabot-voicer + + + +ircbot-multiple-channels-corrected->trilemabot-voicer + + + + + +trilemabot-prefixed-cmd + +trilemabot-prefixed-cmd + + + +trilemabot-voicer->trilemabot-prefixed-cmd + + + + + +ircbot-logbot-multiple-channels-corrected + +ircbot-logbot-multiple-channels-corrected + + + +logbot-genesis->ircbot-logbot-multiple-channels-corrected + + + + + +logbot_command_router_python_genesis + +logbot_command_router_python_genesis + + + +ircbot-logbot-multiple-channels-corrected->logbot_command_router_python_genesis + + + + + -- 1.7.10.4