{"action":"closed","issue":{"url":"https://api.github.com/repos/warner/magic-wormhole-mailbox-server/issues/3","repository_url":"https://api.github.com/repos/warner/magic-wormhole-mailbox-server","labels_url":"https://api.github.com/repos/warner/magic-wormhole-mailbox-server/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/warner/magic-wormhole-mailbox-server/issues/3/comments","events_url":"https://api.github.com/repos/warner/magic-wormhole-mailbox-server/issues/3/events","html_url":"https://github.com/warner/magic-wormhole-mailbox-server/issues/3","id":303197071,"node_id":"MDU6SXNzdWUzMDMxOTcwNzE=","number":3,"title":"collect client versions in usage DB","user":{"login":"warner","id":27146,"node_id":"MDQ6VXNlcjI3MTQ2","avatar_url":"https://avatars3.githubusercontent.com/u/27146?v=4","gravatar_id":"","url":"https://api.github.com/users/warner","html_url":"https://github.com/warner","followers_url":"https://api.github.com/users/warner/followers","following_url":"https://api.github.com/users/warner/following{/other_user}","gists_url":"https://api.github.com/users/warner/gists{/gist_id}","starred_url":"https://api.github.com/users/warner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/warner/subscriptions","organizations_url":"https://api.github.com/users/warner/orgs","repos_url":"https://api.github.com/users/warner/repos","events_url":"https://api.github.com/users/warner/events{/privacy}","received_events_url":"https://api.github.com/users/warner/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-03-07T17:49:01Z","updated_at":"2018-06-24T01:41:14Z","closed_at":"2018-06-24T01:41:14Z","author_association":"OWNER","body":"This is the receiving end of https://github.com/warner/magic-wormhole/issues/287\r\n\r\nEach side that `open`s a `Mailbox` might include a version tuple. The usage DB's `mailboxes` table should get a new pair of columns, named `version_side1` and `version_side2`. These will be a string (I'm thinking `python-0.10.5`), or `unknown` if the client didn't supply a version string, or NULL if that side didn't connect (i.e. if only one side ever connects, we'll see `version_side1` = something, `version_side2` = NULL, and `result` = `lonely`).\r\n\r\nWe'll need to uncomment the DB-upgrader code to handle the upgrade to this new schema. The upgrade process should be done in python this time, not in SQL, to follow exarkun's advice in https://github.com/warner/magic-wormhole/issues/190 . The python upgrader code should get two database references, and should copy everything from the old DB to the new one (synthesizing or defaulting new columns as necessary: in this case, just putting NULLs into the new version fields). And the upgrader code will need tests, for which I think we can mostly just use the old SQL-based upgrader tests, although we might have to mine the Git history to resurrect them, since I think I deleted them when I commented out the upgrader code itself.\r\n"}}
{"actor":{"display_login":"warner"}}