{"sha": "2db977d8f30e0eb8b7cda1481a4a8852b414915d", "message": "tests/fixtures.py can now write out plugins too\n\nThis command:\n\n python tests/fixtures.py \\\n fixtures.db \\\n metadata.json \\\n fixtures-plugins/\n\nWill now create the fixtures.db and metadata.json files, AND create\na folder called fixtures-plugins/ containing two test plugins.\n\nYou can then run it like this:\n\n datasette fixtures.db \\\n -m metadata.json --plugins-dir=fixtures-plugins/", "author_date": "2019-05-06T02:50:33Z", "committer_date": "2019-05-09T16:44:21Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "9fdb47ca952b93b7b60adddb965ea6642b1ff523", "message": "New encode/decode_path_component functions\n\nASGI cannot differentiate between / and %2F in a URL, so we need an\nalternative scheme for encoding the names of tables that contain special\ncharacters such as /\n\nFor background, see\n https://github.com/django/asgiref/issues/51#issuecomment-450603464\n\nSome examples:\n\n \"table/and/slashes\" => \"tableU+002FandU+002Fslashes\"\n \"~table\" => \"U+007Etable\"\n \"+bobcats!\" => \"U+002Bbobcats!\"\n \"U+007Etable\" => \"UU+002B007Etable\"", "author_date": "2019-05-05T22:36:04Z", "committer_date": "2019-05-09T16:44:21Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "b80b03ac9a9b8fc676ae17570b32f5439545198e", "message": "datasette publish cloudrun --service=x, closes #457", "author_date": "2019-05-09T16:45:01Z", "committer_date": "2019-05-09T16:45:01Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "bfa2ae0d16d39bb82dbe4da4f3fdc3c7f6257418", "message": "Promote Glitch instead of Datasette Publish\n\nDatasette Publish is currently broken due to Zeit API and platform changes.", "author_date": "2019-05-09T00:02:47Z", "committer_date": "2019-05-09T00:02:47Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "f825e2012109247fa246e2b938f8174069e574f1", "message": "Run black and update docs for #457", "author_date": "2019-05-09T16:47:58Z", "committer_date": "2019-05-09T16:48:13Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}}