{"items": [{"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975124166232", "anchor": "fb-975124166232", "service": "fb", "text": "The main goal would be fun, but it would also be interesting practice in learning CI systems.", "timestamp": "1546462345"}, {"author": "Julian", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975125119322", "anchor": "fb-975125119322", "service": "fb", "text": "Would you start with any code in the repo? This sounds neat, I'd like to play.", "timestamp": "1546463120"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975125119322&reply_comment_id=975125538482", "anchor": "fb-975125119322_975125538482", "service": "fb", "text": "&rarr;&nbsp;I think I'd want to start with code in the repo and integration configured that provided basic things like:<br><br>* invoking the CI system<br>* flagging the PR as mergeable based on mutability and approval count checks<br>* declaring a winner<br><br>I'm not sure whether including automated tests for basic functionality is better or worse: it makes you less likely to break things by accident (and so make someone win) but is that more fun?", "timestamp": "1546463358"}, {"author": "Jacob", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975136571372", "anchor": "fb-975136571372", "service": "fb", "text": "This seems like it loses most of the fun of Nomic, which is to try to wrangle things into a state where there is a paradox.", "timestamp": "1546467092"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975136571372&reply_comment_id=975136870772", "anchor": "fb-975136571372_975136870772", "service": "fb", "text": "&rarr;&nbsp;I'm not sure how it would work out, but I'd be willing to try it if others are!", "timestamp": "1546467191"}, {"author": "Nix", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975140832832", "anchor": "fb-975140832832", "service": "fb", "text": "I'm interested but not sure I have the time right now.  I could perhaps be convinced to team up with someone?", "timestamp": "1546469215"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975224435292", "anchor": "fb-975224435292", "service": "fb", "text": "Interested!", "timestamp": "1546528278"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975224849462", "anchor": "fb-975224849462", "service": "fb", "text": "Maybe set up a regular nomic game with some of the same players, so people have some basis for comparison?", "timestamp": "1546528323"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975225742672", "anchor": "fb-975225742672", "service": "fb", "text": "Haven't played nomic, but I had the impression that many of the interesting rule changes have to do with changing the procedure for rule changes. That seems hard with this system, though not impossible...", "timestamp": "1546528416"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975225742672&reply_comment_id=975238821462", "anchor": "fb-975225742672_975238821462", "service": "fb", "text": "&rarr;&nbsp;You can still change this.  Specifically, you can change the criteria for accepting a rule change, since the code that determines whether a PR is eligible to be merged (based on the state of the PR) is in the repo.", "timestamp": "1546529949"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975225742672&reply_comment_id=975276755442", "anchor": "fb-975225742672_975276755442", "service": "fb", "text": "&rarr;&nbsp;I see, cool. So the \"CI\" server gets the players' votes as inputs, uses whatever other inputs it wants, and tells us whether merging is good? I like it", "timestamp": "1546536808"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975225742672&reply_comment_id=975278741462", "anchor": "fb-975225742672_975278741462", "service": "fb", "text": "&rarr;&nbsp;Oh, maybe use the GitHub API to access approvals.", "timestamp": "1546537347"}, {"author": "Todd", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975246570932", "anchor": "fb-975246570932", "service": "fb", "text": "This sounds amazing. My one experience with Nomic was pretty silly, but it was in high school, so probably not terribly indicative. I'd be interested in participating provided the pace of play was pretty relaxed (which I imagine it would have to be anyway).", "timestamp": "1546530656"}, {"author": "Pavel", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975269634712", "anchor": "fb-975269634712", "service": "fb", "text": "I would be very interested!", "timestamp": "1546533521"}, {"author": "Shawn", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975295228422", "anchor": "fb-975295228422", "service": "fb", "text": "Haha, never played nomic, but I'd try this :)", "timestamp": "1546543332"}, {"author": "Mark", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975303676492", "anchor": "fb-975303676492", "service": "fb", "text": "How do you avoid when someone makes the ci tests non terminate?", "timestamp": "1546546899"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975303676492&reply_comment_id=975306121592", "anchor": "fb-975303676492_975306121592", "service": "fb", "text": "&rarr;&nbsp;Mark everyone loses?", "timestamp": "1546547861"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975303676492&reply_comment_id=975306420992", "anchor": "fb-975303676492_975306420992", "service": "fb", "text": "&rarr;&nbsp;Oh you mean in a PR", "timestamp": "1546547923"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975303676492&reply_comment_id=975306435962", "anchor": "fb-975303676492_975306435962", "service": "fb", "text": "&rarr;&nbsp;Just can't merge that one!", "timestamp": "1546547931"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975303676492&reply_comment_id=975319205372", "anchor": "fb-975303676492_975319205372", "service": "fb", "text": "&rarr;&nbsp;The CI system has a timeout, and things timing out blocks merging", "timestamp": "1546553976"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975366804982", "anchor": "fb-975366804982", "service": "fb", "text": "I was just playing around with this some.  The main way this isn't a good fit for existing CI tools is that they generally run \"CI as it is on the PR\" on the PR, whereas we want to run the \"CI as it is on master\".  For example, if there's a check that specific people have approved a PR before it can be merged, a PR that removes this check isn't valid.<br><br>Fixing this properly is a lot of work, but an easier fix would be just to declare .travis.yml to be out of bounds.", "timestamp": "1546573391"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852", "anchor": "fb-975400302852", "service": "fb", "text": "Here's a first draft; anyone want to take a look?  https://github.com/jeffkaufman/nomic<br><br>David Shawn Julian Todd", "timestamp": "1546609008"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975400622212", "anchor": "fb-975400302852_975400622212", "service": "fb", "text": "&rarr;&nbsp;We're not playing yet: if there are dumb mistakes in how it's set up I want to fix them before really starting", "timestamp": "1546609295"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975400667122", "anchor": "fb-975400302852_975400667122", "service": "fb", "text": "&rarr;&nbsp;For example, since I only have one GitHub account and can't approve my own PRs I'm not confident it only allows things to be merged with unanimous approval", "timestamp": "1546609332"}, {"author": "Todd", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975400731992", "anchor": "fb-975400302852_975400731992", "service": "fb", "text": "&rarr;&nbsp;What's the rationale behind the random chance to win?", "timestamp": "1546609362"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975400941572", "anchor": "fb-975400302852_975400941572", "service": "fb", "text": "&rarr;&nbsp;You also have to manually trigger a CI build after all expected approvals are in, since getting an approval doesn't trigger CI Canaan pushing new commits triggers CI but also resets approvals", "timestamp": "1546609459"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975401086282", "anchor": "fb-975400302852_975401086282", "service": "fb", "text": "&rarr;&nbsp;Possibly the win condition should just be \"get the build to fail on master\"?", "timestamp": "1546609572"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975401779892", "anchor": "fb-975400302852_975401779892", "service": "fb", "text": "&rarr;&nbsp;Todd the initial random chance to win is kind of the same mechanic as the dice rolls in the original nomic game, intended to be replaced by the players", "timestamp": "1546609972"}, {"author": "Todd", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975401844762", "anchor": "fb-975400302852_975401844762", "service": "fb", "text": "&rarr;&nbsp;Huh, didn't even remember there was a dice roll. Fair enough.", "timestamp": "1546610000"}, {"author": "Jacob", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975432777772", "anchor": "fb-975400302852_975432777772", "service": "fb", "text": "&rarr;&nbsp;The dice roll was intended only for use in time-limited face-to-face games; it was explicitly suggested that play by mail or online games remove it.", "timestamp": "1546627168"}, {"author": "Mark", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975433885552", "anchor": "fb-975400302852_975433885552", "service": "fb", "text": "&rarr;&nbsp;it's missing a gitter for trash talk?", "timestamp": "1546627627"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975434105112", "anchor": "fb-975400302852_975434105112", "service": "fb", "text": "&rarr;&nbsp;Jacob my reading was that for remote games there's no good way of doing shared trusted randomness, which is why it's not there", "timestamp": "1546627871"}, {"author": "Jacob", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975438770762", "anchor": "fb-975400302852_975438770762", "service": "fb", "text": "&rarr;&nbsp;I've never seen an online Nomic, including ones with features much more complex than an RNG, use it. I think it's there mostly to make the game end in a reasonable timeframe.", "timestamp": "1546629438"}, {"author": "Julian", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975456116002", "anchor": "fb-975400302852_975456116002", "service": "fb", "text": "&rarr;&nbsp;Well, if you don't like the random win condition, you can make a pull request about it.", "timestamp": "1546637887"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975456305622", "anchor": "fb-975400302852_975456305622", "service": "fb", "text": "&rarr;&nbsp;Some PRs would definitely be helpful so I can test whether the approval logic is working", "timestamp": "1546638031"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975456789652", "anchor": "fb-975400302852_975456789652", "service": "fb", "text": "&rarr;&nbsp;It looks like validate.py doesn't use the argument that validate_on_master passes to it?", "timestamp": "1546638478"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975456869492", "anchor": "fb-975400302852_975456869492", "service": "fb", "text": "&rarr;&nbsp;David yup, that's just there for future use so validate can learn it's context<br><br>(Since v_o_m is out of bounds)", "timestamp": "1546638586"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975457014202", "anchor": "fb-975400302852_975457014202", "service": "fb", "text": "&rarr;&nbsp;Ah", "timestamp": "1546638686"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975457418392", "anchor": "fb-975400302852_975457418392", "service": "fb", "text": "&rarr;&nbsp;How do PRs actually get merged once they pass?", "timestamp": "1546638957"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975494978122", "anchor": "fb-975400302852_975494978122", "service": "fb", "text": "&rarr;&nbsp;There's a manual step where I add people from players.txt to github colaborators for the repo, and then they can click \"merge\" if it's green", "timestamp": "1546652632"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975494988102", "anchor": "fb-975400302852_975494988102", "service": "fb", "text": "&rarr;&nbsp;I don't see a way to make https://github.com/jeffkaufman/nomic/settings/collaboration read from the repo", "timestamp": "1546652645"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975400302852&reply_comment_id=975495047982", "anchor": "fb-975400302852_975495047982", "service": "fb", "text": "&rarr;&nbsp;I could set up webhooks and another server, but that sounds annoying", "timestamp": "1546652656"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975497228612", "anchor": "fb-975497228612", "service": "fb", "text": "Ok, ready to play! https://github.com/jeffkaufman/nomic<br><br>David&nbsp;Chudzicki Julian Todd Shawn Pavel", "timestamp": "1546653528"}, {"author": "Shawn", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975497228612&reply_comment_id=975569503772", "anchor": "fb-975497228612_975569503772", "service": "fb", "text": "&rarr;&nbsp;Some questions:<br>1. Does each PR actually need unanimous approval to be submitted? That's what my reading of determine_if_mergeable() is.<br>2. What is a turn? Do we each get turns? Will this be explained once the \"game begins\"? Has the game begun? Is Travis configured to run the script which will call determine_if_winner() every X hours or something?", "timestamp": "1546714603"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975497228612&reply_comment_id=975571459852", "anchor": "fb-975497228612_975571459852", "service": "fb", "text": "&rarr;&nbsp;1: currently, though I think as part of the game we should relax that<br><br>2: no turns, just submit PRs. The game has started. Part of the game can be changing the win condition", "timestamp": "1546715796"}, {"author": "David&nbsp;Chudzicki", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975497228612&reply_comment_id=975587158392", "anchor": "fb-975497228612_975587158392", "service": "fb", "text": "&rarr;&nbsp;Re (2): the win condition (in the sense of \"uncaught exception that says you win\") can't change in the game, but the win condition (in the sense of, what leads to that exception) can", "timestamp": "1546723650"}, {"author": "Pavel", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975535926062", "anchor": "fb-975535926062", "service": "fb", "text": "Meta-kvetch: can we move the discussion about this to somewhere besides Facebook? I'm not quite at the \"delete my account\" stage yet, but only because of tired ol' family reasons.", "timestamp": "1546695679"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975535926062&reply_comment_id=975536644622", "anchor": "fb-975535926062_975536644622", "service": "fb", "text": "&rarr;&nbsp;Pavel can we discuss on GitHub issues or do we need something better?", "timestamp": "1546696283"}, {"author": "Pavel", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975535926062&reply_comment_id=975541280332", "anchor": "fb-975535926062_975541280332", "service": "fb", "text": "&rarr;&nbsp;I think Github issues would be fine.", "timestamp": "1546700949"}, {"author": "Pavel", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975535926062&reply_comment_id=975541350192", "anchor": "fb-975535926062_975541350192", "service": "fb", "text": "&rarr;&nbsp;(If everyone feels pretty strongly about staying on Facebook, I'll play along.)", "timestamp": "1546700975"}, {"author": "Todd", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975535926062&reply_comment_id=975572258252", "anchor": "fb-975535926062_975572258252", "service": "fb", "text": "&rarr;&nbsp;Something more threaded would probably be better than Facebook anyway", "timestamp": "1546716646"}, {"author": "Jeff&nbsp;Kaufman", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975535926062&reply_comment_id=975575935882", "anchor": "fb-975535926062_975575935882", "service": "fb", "text": "&rarr;&nbsp;Would a mailing list be better?", "timestamp": "1546718220"}, {"author": "Todd", "source_link": "https://www.facebook.com/jefftk/posts/975119006572?comment_id=975535926062&reply_comment_id=975579309122", "anchor": "fb-975535926062_975579309122", "service": "fb", "text": "&rarr;&nbsp;Not a fan of email myself. Something like a google group would be okay, but I don't see why we couldn't just use github as already suggested (that's what I was implying when saying \"something more threaded\").", "timestamp": "1546719075"}]}