{"sha": "6b15a53cd3cd40880a5e2d38827d5fac10e4bb5f", "message": "Unit test for unlabelled foreign keys from #207", "author_date": "2018-04-14T15:00:54Z", "committer_date": "2018-04-14T15:00:54Z", "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": "dd4491dd8112d70d96d73f8f1d12b58cb42fe1bd", "message": "Update number of expected tables", "author_date": "2018-04-14T15:03:41Z", "committer_date": "2018-04-14T15:16:54Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "c857608738d6b6c3e4f3248304a22f8b2648dd3e", "message": "Merge \"Support filtering with units\" from #205", "author_date": "2018-04-14T15:12:34Z", "committer_date": "2018-04-14T15:17:09Z", "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": "43ae15c0d14b3e968e8d5bfef72ac0c39783c3a2", "message": "Releasing v0.18 - support for units!\n\nRefs #203", "author_date": "2018-04-14T15:36:10Z", "committer_date": "2018-04-14T15:36:10Z", "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": "92396ae5bacedfcb3d7c81319ccdd04483fd7fd4", "message": "Better fix for setup.py version", "author_date": "2018-04-16T04:28:24Z", "committer_date": "2018-04-16T04:38:04Z", "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": "904f1c75a3c17671d25c53b91e177c249d14ab3b", "message": "Initial documentation for plugins, closes #213\n\nhttps://datasette.readthedocs.io/en/latest/plugins.html", "author_date": "2018-04-16T15:12:09Z", "committer_date": "2018-04-16T15:12:09Z", "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": "10a34f995c70daa37a8a2aa02c3135a4b023a24c", "message": "Removed rogue print() call", "author_date": "2018-04-16T15:38:09Z", "committer_date": "2018-04-16T15:38:09Z", "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": "2abe539a0f9f967ec0de6894774cb7ee83c4b3b9", "message": "Fixed #216 - paginate correctly when sorting by nullable column", "author_date": "2018-04-16T23:51:51Z", "committer_date": "2018-04-16T23:52:50Z", "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": "07fc2d113e462bfd8d7d56152c0d1fc55e0fdbe9", "message": "Fix for _sort_desc=sortable_with_nulls test, refs #216", "author_date": "2018-04-17T00:05:03Z", "committer_date": "2018-04-17T00:05:03Z", "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": "5364fa7f3357f2de24fd45c85832205377642f19", "message": "Revert #216 until I can get tests to pass in Travis\n\nRevert \"Fix for _sort_desc=sortable_with_nulls test, refs #216\"\n\nThis reverts commit 07fc2d113e462bfd8d7d56152c0d1fc55e0fdbe9.\n\nRevert \"Fixed #216 - paginate correctly when sorting by nullable column\"\n\nThis reverts commit 2abe539a0f9f967ec0de6894774cb7ee83c4b3b9.", "author_date": "2018-04-17T00:52:22Z", "committer_date": "2018-04-17T00:53:37Z", "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": "e7c769ef30add8f984eab920b2f503d4b8096bde", "message": "Working implementation of #216 which passes the tests\n\nReverted commit 5364fa7f3357f2de24fd45c85832205377642f19 (where I removed the\ncode that didn't work).\n\nAdded primary keys to order-by clause for sorting to get tests to pass", "author_date": "2018-04-17T01:41:17Z", "committer_date": "2018-04-17T01:41:55Z", "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": "ba9bfa583179c25aaef94b1f44da7eba74620b9a", "message": "Datasette 0.19: plugin preview (with release notes)", "author_date": "2018-04-17T02:12:21Z", "committer_date": "2018-04-17T02:12: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": "1f384e662b58e2eb43ce20842976b677e4478f43", "message": "Updated PyPI classifiers", "author_date": "2018-04-18T00:30:46Z", "committer_date": "2018-04-18T00:30:46Z", "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": "5ebc7137d736d8fa47b24cc799fb93909f49cabb", "message": "Use application/octet-stream for downloadable databses\n\nI'd also like to send the Content-Length here but that's not currently\npossible in Sanic - see bug report here:\n\nhttps://github.com/channelcat/sanic/issues/1194", "author_date": "2018-04-18T00:31:54Z", "committer_date": "2018-04-18T00:31:54Z", "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": "aaf59db570ab7688af72c08bb5bc1edc145e3e07", "message": "Longer time limit for test_paginate_compound_keys\n\nIt was failing intermittently in Travis - see #209", "author_date": "2018-04-18T01:08:51Z", "committer_date": "2018-04-18T01:09:48Z", "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": "dfb87d012c30a5a3e2d6c4f2cf0a94d2fd080723", "message": "Use to_css_class for table cell column classes\n\nThis ensures that columns with spaces in the name will still\ngenerate usable CSS class names. Refs #209", "author_date": "2018-04-18T01:19:21Z", "committer_date": "2018-04-18T01:19: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": "a5792a8c61b9bb6a7a5295c8ec87c2567a5e39a2", "message": " now gets class=\"col-X\" - plus added col-X documentation\n\nRefs #209", "author_date": "2018-04-18T02:11:11Z", "committer_date": "2018-04-18T02:11:54Z", "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": "0bb483ca5bee61c9f7d148b5755d2eed56001aca", "message": " /-/static-plugins/PLUGIN_NAME/ now serves static/ from plugins\n\n Refs #214", "author_date": "2018-04-18T02:32:48Z", "committer_date": "2018-04-18T02:32:48Z", "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": "ca588b6a30e50212f6ac233121745a4216d878f9", "message": "Fixed example HTML in CSS docs", "author_date": "2018-04-18T02:35:03Z", "committer_date": "2018-04-18T02:35:03Z", "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": "1c36d07dd432b9960f4f2d096739460b4fcf8877", "message": "New plugin hooks: extra_css_urls() and extra_js_urls()\n\nCloses #214", "author_date": "2018-04-18T03:12:21Z", "committer_date": "2018-04-18T03:12: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": "2b344f6a34d2adaa305996a1a580ece06397f6e4", "message": "Ran black against datasette/cli.py\n\nhttps://pypi.org/project/black/\n\ncli.py was getting a bit untidy due to all of the heavily annotated\nclick function methods - used black to clean it up and make it\neasier to read.", "author_date": "2018-04-18T14:14:21Z", "committer_date": "2018-04-18T14:52:17Z", "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": "404fa2252b070952ff1d1fc8bafc153789f36ada", "message": "datasette publish/package --install option, closes #223\n\nAllows you to specify one or more additional packages to be installed,\nuseful for deploying plugins.", "author_date": "2018-04-18T14:48:34Z", "committer_date": "2018-04-18T14:55:36Z", "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": "7581320823d542fd827cb6788be87e6d51aa96dd", "message": "Documentation for --install option, refs #223", "author_date": "2018-04-18T15:05:06Z", "committer_date": "2018-04-18T15:05:06Z", "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": "6e28ed447f879a46ee5457882cf6ae8b785c87b4", "message": "Thanks to #214 JavaScript is no longer 'soon'", "author_date": "2018-04-18T15:17:10Z", "committer_date": "2018-04-18T15:17:20Z", "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": "b55809a1e20986bb2e638b698815a77902e8708d", "message": "Added /-/metadata /-/plugins /-/inspect, closes #225", "author_date": "2018-04-19T05:24:48Z", "committer_date": "2018-04-19T05:25:22Z", "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": "b52171db1e97e2be1ff2dc505ccf29107288b27b", "message": "Plugins can now bundle custom templates, closes #224\n\nRefs #14", "author_date": "2018-04-19T05:50:27Z", "committer_date": "2018-04-19T05:50:27Z", "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": "1e4c29501289f7bc7b3b7daf60f1ddd9f66ee338", "message": "Fixed out-dated template in documentation", "author_date": "2018-04-19T05:57:31Z", "committer_date": "2018-04-19T05:57:31Z", "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": "e2750c7cc0585adaa8c866be611089e62961ee35", "message": "Add col-X classes to HTML table on custom query page", "author_date": "2018-04-19T15:36:14Z", "committer_date": "2018-04-19T15:36:14Z", "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": "72a7ae6859c9f9a951b96c4bd603d44acf634f00", "message": "Datasette 0.20: static assets and templates for plugins", "author_date": "2018-04-20T14:32:02Z", "committer_date": "2018-04-20T14:32:02Z", "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": "3a5d7951ce8f35118ffdd7f8d86e09b909e1218c", "message": "Added Datasette 0.20 to news", "author_date": "2018-04-20T14:36:24Z", "committer_date": "2018-04-20T14:36:29Z", "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": "f27cabbaf3d834f47bc6bea1de7e27c11fcfa5e7", "message": "label_column option in metadata.json - closes #234", "author_date": "2018-04-22T17:51:43Z", "committer_date": "2018-04-22T17:53:16Z", "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": "f3f42957128c1e7ece584d45d9167f2ac003a3b8", "message": "label_column now defined on the table-being-linked-to, fixes #234", "author_date": "2018-04-22T20:46:18Z", "committer_date": "2018-04-22T20:46:18Z", "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": "00ab95430003768067bb496b125a2be93134e73d", "message": "Added CSS class rows-and-columns to main table", "author_date": "2018-04-24T01:30:03Z", "committer_date": "2018-04-24T01:31:32Z", "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": "db7a57a9a62d1d32e204d8acd9ab4341a1436ef9", "message": "Added class=rows-and-columns to custom query results table", "author_date": "2018-04-26T03:24:22Z", "committer_date": "2018-04-26T03:24:22Z", "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": "d3a0069c54aeaeffd197740120e0dca64bd0eeff", "message": "Hide idx_* tables if spatialite detected, closes #228", "author_date": "2018-04-26T03:25:21Z", "committer_date": "2018-04-26T03:25: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": "02ee31c8b45b872fff91e2059c15a20532e2d035", "message": "New hidden: True option for table metadat, closes #239", "author_date": "2018-04-26T03:42:57Z", "committer_date": "2018-04-26T03:42:57Z", "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": "4504d5160b2d86d4dae17b7c2f72bc3b02509c2c", "message": "If max_returned_rows==page_size, increment max_returned_rows\n\nFixes #230, where if the two were equal pagination didn't work correctly.", "author_date": "2018-04-26T04:04:12Z", "committer_date": "2018-04-26T04:04:12Z", "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": "f188ceaa2a3a5b2eab83425ad0f00cb0d364e24a", "message": "New ?_size=XXX querystring parameter for table view, closes #229\n\nAlso added documentation for all of the _special arguments.\n\nPlus deleted some duplicate logic implementing _group_count.", "author_date": "2018-04-26T04:47:12Z", "committer_date": "2018-04-26T04:47:12Z", "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": "aa954382c3776d596f459897b0d984161293529d", "message": "FTS tables now detected by inspect(), closes #240", "author_date": "2018-04-29T00:04:32Z", "committer_date": "2018-04-29T00:04:32Z", "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": "bb87cf873017c70a2e9155c336067d4e82481dd6", "message": "Added /-/versions and /-/versions.json, closes #244\n\nSample output:\n\n {\n \"python\": {\n \"version\": \"3.6.3\",\n \"full\": \"3.6.3 (default, Oct 4 2017, 06:09:38) \\n[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)]\"\n },\n \"datasette\": {\n \"version\": \"0.20\"\n },\n \"sqlite\": {\n \"version\": \"3.23.1\",\n \"extensions\": {\n \"json1\": null,\n \"spatialite\": \"4.3.0a\"\n }\n }\n }", "author_date": "2018-05-02T08:46:54Z", "committer_date": "2018-05-03T14:09:27Z", "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": "d4da4c92c8ff19f29ca0cb4b93cb7eaca4553e73", "message": "?_size=max option, closes #249", "author_date": "2018-05-04T18:03:40Z", "committer_date": "2018-05-04T18:03:40Z", "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": "ca290719edc2ba508585149a3e905f5c0bb23a8d", "message": "Show version on /-/plugins page, closes #248", "author_date": "2018-05-04T18:04:33Z", "committer_date": "2018-05-04T18:04:33Z", "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": "4d6a568d6c1c9edabbaa8d58899b3857cd0185a7", "message": "Unit tests for _search= feature, refs #237", "author_date": "2018-05-05T22:01:14Z", "committer_date": "2018-05-05T22:01:14Z", "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": "1259b8ac0bb25fc8af61c1948e2cc16860dca7ff", "message": "Support _search_COLUMN=text searches, closes #237", "author_date": "2018-05-05T22:33:08Z", "committer_date": "2018-05-05T22:33:08Z", "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": "801381b7657dd084c11ac2fb6e3d0194cfaa3455", "message": "Default tests to using a longer timelimit\n\nEvery now and then a test will fail in Travis CI on Python 3.5 because it hit\nthe default 20ms SQL time limit.\n\nTest fixtures now default to a 200ms time limit, and we only use the 20ms time\nlimit for the specific test that tests query interruption. This should make\nour tests on Python 3.5 in Travis much more stable.", "author_date": "2018-05-05T22:41:37Z", "committer_date": "2018-05-05T22:44:32Z", "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": "d39b2e357e34469728f300273ab07c3904ea7a2b", "message": "Travis should now deploy new tags to PyPI if tests pass", "author_date": "2018-05-05T23:15:05Z", "committer_date": "2018-05-05T23:15:05Z", "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": "403211de632cd15f0820cc9399305fc43c187b47", "message": "Release Datasette 0.21", "author_date": "2018-05-05T23:15:38Z", "committer_date": "2018-05-05T23:15:38Z", "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": "62c08d0d7197264af678c2f6e0c6403196217184", "message": "Revert \"Travis should now deploy new tags to PyPI if tests pass\"\n\nThis reverts commit d39b2e357e34469728f300273ab07c3904ea7a2b.\n\nIt failed with this error: https://travis-ci.org/simonw/datasette/jobs/375398977\n\n\tUploading distributions to https://upload.pypi.org/legacy/\n\tUploading datasette-0.21-py3-none-any.whl\n\t100% 182k/182k [00:00<00:00, 694kB/s]\n\tHTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/", "author_date": "2018-05-05T23:22:21Z", "committer_date": "2018-05-05T23:22: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": "e10f8e1274267fdb9021832917c35cfd1ec6c714", "message": "Slight simplification of /-/inspect", "author_date": "2018-05-06T13:02:43Z", "committer_date": "2018-05-06T13:05:38Z", "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": "04d21ccd089fcaf7a2b535d217fc541ab19aa54b", "message": "/-/versions now includes SQLite fts_versions, closes #252", "author_date": "2018-05-11T13:19:25Z", "committer_date": "2018-05-11T13:19:25Z", "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": "694f8457153eba715db98098c412a96fcfbb944f", "message": "Documentation for SQLite full-text search support, closes #253", "author_date": "2018-05-12T12:06:38Z", "committer_date": "2018-05-12T12:06:38Z", "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": "70ff615f1b831c4dce936e9f9fc57a9e8e71e547", "message": "utils.path_with_added_args() improvements\n\n* Now covered by unit tests\n* Preserves original order\n* Can handle multiple args of the same name, e.g. ?bar=1&bar=2", "author_date": "2018-05-12T21:35:25Z", "committer_date": "2018-05-12T21:44:09Z", "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": "eaaa3ea1498df0d4790f814e3d2f3fcc5ea28429", "message": "Initial implementation of facets, plus tests and docs\n\nRefs #255", "author_date": "2018-05-12T22:29:06Z", "committer_date": "2018-05-12T22:29:41Z", "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": "4301a8f3ac69f2f54916e73cc90fcf216a9a3746", "message": "Case insensitive querystring comparison, fix Python 3.5", "author_date": "2018-05-12T22:49:37Z", "committer_date": "2018-05-12T22:49:37Z", "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": "96aac7f9e94d94243a7ee524d0ad25501ec98f72", "message": "Facet documentation tweaks", "author_date": "2018-05-16T15:45:12Z", "committer_date": "2018-05-16T20:50:34Z", "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": "7261584f0413b10a0ece98be802a6c7099fd53de", "message": "Display currently selected facets better, refs #255", "author_date": "2018-05-17T02:42:31Z", "committer_date": "2018-05-17T02:42:31Z", "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": "5e78d11c247f88946f4c0929b075df327235fe4a", "message": "Docs: Speeding up facets with indexes", "author_date": "2018-05-17T04:08:50Z", "committer_date": "2018-05-17T04:08:50Z", "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": "8003a13331cb78774d613a8f3f1b204a33918088", "message": "Empty string \"\" facets can now be selected in UI, refs #255", "author_date": "2018-05-17T13:34:42Z", "committer_date": "2018-05-17T13:34:42Z", "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": "cef9a9a8701af86cc7df8b7939398185f0a76f5f", "message": "--limit= mechanism plus new limits for facets\n\nReplaced the --max_returned_rows and --sql_time_limit_ms options to\n\"datasette serve\" with a new --limit option, which supports a larger\nlist of limits.\n\nExample usage:\n\n\tdatasette serve --limit max_returned_rows:1000 \\\n\t\t--limit sql_time_limit_ms:2500 \\\n\t\t--limit default_facet_size:50 \\\n\t\t--limit facet_time_limit_ms:1000 \\\n\t\t--limit facet_suggest_time_limit_ms:500\n\nNew docs: https://datasette.readthedocs.io/en/latest/limits.html\n\nCloses #270\nCloses #264", "author_date": "2018-05-18T05:08:26Z", "committer_date": "2018-05-18T05:08:26Z", "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": "08f4b7658fec97419eb34118a2cd5c8be805673f", "message": "Show facets that timed out using new InterruptedError\n\nIf the user requests some _facet= options that do not successfully execute in\nthe configured facet_time_limit_ms, we now show a warning message like this:\n\n These facets timed out: rowid, Title\n\nTo build this I had to clean up our SQLite interrupted logic. We now raise a\ncustom InterruptedError exception when SQLite terminates due to exceeding a\ntime limit.\n\nIn implementing this I found and fixed a logic error where invalid SQL was\nbeing generated in some cases for our faceting calculations but the resulting\nsqlite3.OperationalError had been incorrectly captured and treated as a\ntimeout.\n\nRefs #255\nCloses #269", "author_date": "2018-05-18T06:07:45Z", "committer_date": "2018-05-18T06:11:23Z", "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": "39426ff0e43a406f42c03692d3dc9d4a1b7b9d52", "message": "Added /-/limits and /-/limits.json, closes #270", "author_date": "2018-05-18T06:16:28Z", "committer_date": "2018-05-18T06:16:28Z", "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": "b8227556c6ef040e2299b113d1ec6e220586ffc3", "message": "Suggested facets now use #fragment links\n\nUseful for pages with large amounts of content at the top like on\nhttps://fivethirtyeight.datasettes.com/fivethirtyeight-469e30d/nba-elo%2Fnbaallelo", "author_date": "2018-05-18T16:18:41Z", "committer_date": "2018-05-18T16:18:51Z", "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": "918de9403e09ba607996a985be1779eddcf76151", "message": "Only apply responsive table styles to .rows-and-column\n\nOtherwise they interfere with tables in the description, e.g. on\nhttps://fivethirtyeight.datasettes.com/fivethirtyeight/nba-elo%2Fnbaallelo", "author_date": "2018-05-20T15:10:46Z", "committer_date": "2018-05-20T15:10:46Z", "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": "f6183ff5fa715c68d13d6ae8c7b3b9f2c6ffc9f8", "message": "Renamed --limit to --config, added --help-config, closes #274\n\nRemoved the --page_size= argument to datasette serve in favour of:\n\n datasette serve --config default_page_size:50 mydb.db\n\nAdded new help section:\n\n $ datasette --help-config\n Config options:\n default_page_size Default page size for the table view\n (default=100)\n max_returned_rows Maximum rows that can be returned from a table\n or custom query (default=1000)\n sql_time_limit_ms Time limit for a SQL query in milliseconds\n (default=1000)\n default_facet_size Number of values to return for requested facets\n (default=30)\n facet_time_limit_ms Time limit for calculating a requested facet\n (default=200)\n facet_suggest_time_limit_ms Time limit for calculating a suggested facet\n (default=50)", "author_date": "2018-05-20T17:01:49Z", "committer_date": "2018-05-20T17:01:49Z", "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": "f00137c8ac2bdb9767733b0d72bf204b034644a7", "message": "Only apply responsive table CSS to .rows-and-columns", "author_date": "2018-05-20T17:45:01Z", "committer_date": "2018-05-20T17: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": "bd3353a31f930c2e504094d79513cadbade43cda", "message": "Added docs for introspection endpoints\n\nhttps://datasette.readthedocs.io/en/latest/introspection.html", "author_date": "2018-05-20T21:28:53Z", "committer_date": "2018-05-20T21:28:53Z", "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": "0b8e5981a37c0da75ce4f4e6b6b5275681e2e0c5", "message": "Typo fix", "author_date": "2018-05-20T21:30:48Z", "committer_date": "2018-05-20T21:30:48Z", "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": "558d9d7bfef3dd633eb16389281b67d42c9bdeef", "message": "Datasette 0.22: Datasette Facets", "author_date": "2018-05-20T23:41:47Z", "committer_date": "2018-05-20T23:41:47Z", "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": "2bfd111d65c892e54b06c2c9498ce2b4cc3e67ff", "message": "Faceting no longer breaks pagination, fixes #282", "author_date": "2018-05-23T13:41:14Z", "committer_date": "2018-05-23T13:41:14Z", "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": "5d6252788230d168ba09f379d1d2af867e3302ab", "message": "0.22.1 bugfix release", "author_date": "2018-05-23T14:00:01Z", "committer_date": "2018-05-23T14:00: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": "81df47e8d95df895bec792466b3d7b34c8d5c509", "message": "Moved .execute() method from BaseView to Datasette class\n\nAlso introduced new Results() class with results.truncated, results.description, results.rows", "author_date": "2018-05-25T00:15:37Z", "committer_date": "2018-05-25T00:15:53Z", "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": "50920cfe3d42483f15e2077c345427059fd19941", "message": "allow_facet, allow_download, suggest_facets boolean --config\n\nRefs #284", "author_date": "2018-05-25T01:12:27Z", "committer_date": "2018-05-25T01:12:27Z", "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": "f722b0a730377d28e3b4e8292da2036f32896e02", "message": "allow_sql config option to disable custom SQL, closes #284", "author_date": "2018-05-25T05:50:50Z", "committer_date": "2018-05-25T05:50:50Z", "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": "b9b93583467986a72f34732fc87a201157ad83ea", "message": "boolean --config are now case insensitive, refs #284", "author_date": "2018-05-25T05:53:58Z", "committer_date": "2018-05-25T05:53:58Z", "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": "f98e62fe5ac48cd31362b7e2001b0262fa68ef3b", "message": "Fix for 500 error on /db?sql=x", "author_date": "2018-05-25T22:08:57Z", "committer_date": "2018-05-25T22:08:57Z", "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": "37f8361c6f7b3eeaa351c0cd93b6db1fdd2744ab", "message": "Initial documentation on using SpatiaLite\n\nhttps://datasette.readthedocs.io/en/latest/spatialite.html", "author_date": "2018-05-26T18:04:09Z", "committer_date": "2018-05-26T18:04:09Z", "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": "df71e8cea87542aa7a7be84fabca0adc1177728d", "message": "Fixed documentation typo", "author_date": "2018-05-26T18:04:43Z", "committer_date": "2018-05-26T18:04:43Z", "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": "a6afc21aba50e84ae5ca4dc7c899dfd6fd1619d9", "message": "Test that ensures all config options are documented", "author_date": "2018-05-26T22:11:04Z", "committer_date": "2018-05-26T22:11:16Z", "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": "b463f60158ccf791809cb51cba2cf7a14e491b36", "message": "?_ttl= parameter and default_cache_ttl config\n\nRefs #285, Closes #289", "author_date": "2018-05-26T22:17:33Z", "committer_date": "2018-05-26T22:17:33Z", "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": "276913b74803554e03e1617389f6998885ea8c06", "message": "?_shape=arrayfirst, closes #287", "author_date": "2018-05-27T00:32:15Z", "committer_date": "2018-05-27T00:32:15Z", "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": "7944a8b0de9f892713da9d31ef0085cd9bcc5ff3", "message": "Added num_sql_threads config option, closes #285", "author_date": "2018-05-27T00:43:22Z", "committer_date": "2018-05-27T00:43:22Z", "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": "c972d79b5a633cbd3e6a7934ae58bd60c57da3a2", "message": "Added docs on Importing shapefiles into SpatiaLite", "author_date": "2018-05-27T01:39:26Z", "committer_date": "2018-05-27T01:39:26Z", "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": "02870e573154517f129cbc85e437d5f0105d7cbe", "message": "Filter out duplicate JS/CSS URLs, refs #291 (testme)", "author_date": "2018-05-27T08:45:03Z", "committer_date": "2018-05-27T08:45:03Z", "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": "76d11eb768e2f05f593c4d37a25280c0fcdf8fd6", "message": "New ?_json=colname argument for returning unescaped JSON\n\nAlso extracted docs for special JSON arguments into a new section.\n\nCloses #31", "author_date": "2018-05-28T18:08:39Z", "committer_date": "2018-05-28T18:08:39Z", "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": "a4d6acc23943759b46fa90ec68e500016b933410", "message": "Use scope='session' for all fixtures\n\nThis means they will only be executed once which makes sense\nsince the database they create is immutable.", "author_date": "2018-05-28T20:41:06Z", "committer_date": "2018-05-28T20:41:06Z", "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": "fefb0db8ae15199d0204af859ba1edc6ae98f84b", "message": "Unit test for 02870e57, closes #291", "author_date": "2018-05-28T20:41:53Z", "committer_date": "2018-05-28T20:41:53Z", "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": "27c10f6482858f9654e31c800884d75304d50ed5", "message": "Missing half of last commit fefb0db8ae15", "author_date": "2018-05-28T20:42:48Z", "committer_date": "2018-05-28T20:42:48Z", "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": "98c8f0e7285fb58b7cbb38304e2ed4576774ad91", "message": "Moved plugin HTML tests from test_html to test_plugins", "author_date": "2018-05-28T21:23:48Z", "committer_date": "2018-05-28T21:23:48Z", "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": "b0a95da96386ddf99816911e08df86178ffa9a89", "message": "Show more useful error message for SQL interrupted, closes #142", "author_date": "2018-05-28T21:24:19Z", "committer_date": "2018-05-28T21:24:19Z", "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": "27eff1809c21b7c1ae2ba33ebde1dac7f8bc8fbc", "message": "Expanded SpatiaLite docs to cover GeoJSON plus lat-lon spatial indexes", "author_date": "2018-05-30T02:32:30Z", "committer_date": "2018-05-30T02:32:30Z", "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": "1a8b0213e0152234b25f2777d5c6f61a41834c8a", "message": "Fixed broken test introduced in b0a95da96", "author_date": "2018-05-30T02:38:21Z", "committer_date": "2018-05-30T02:38: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": "d69ebce53385b7c6fafb85fdab3b136dbf3f332c", "message": "Fixed broken :ref:", "author_date": "2018-05-30T03:11:24Z", "committer_date": "2018-05-30T03:11:24Z", "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": "16398641d95db7374fddccc79d0f08e4d4c96ee1", "message": "SQL syntax highlighting in docs", "author_date": "2018-05-31T13:17:53Z", "committer_date": "2018-05-31T13:17:53Z", "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": "969771770fcf795daace72e2310804e699067cfe", "message": "Upgrade pytest to 3.6.0\n\nhttps://github.com/pytest-dev/pytest/issues/1875 made it impossible to declare\na function as a fixture multiple times, which we were doing across different\nmodules. The fix was to move our @pytest.fixture calls into decorators in the\ntests/fixtures.py module.", "author_date": "2018-05-31T13:40:30Z", "committer_date": "2018-05-31T13:42:37Z", "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": "b18e4515855c3f1eeca3dfcccdbb6df05869084a", "message": "datasette publish/package --spatialite, closes #243\n\nNew command-line argument which causes SpatiaLite to be installed and\nconfigured for the published Datasette.\n\n\tdatasette publish now --spatialite mydb.db", "author_date": "2018-05-31T14:16:50Z", "committer_date": "2018-05-31T14:16:50Z", "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": "a80e1d50b9394feee267d76398b5ab249817156c", "message": "Show error on 'datasette publish heroku --spatialite', refs #301", "author_date": "2018-05-31T14:21:27Z", "committer_date": "2018-05-31T14:21:27Z", "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": "7381af85e6e8a2aa13cb308d37ebfe7550dd7331", "message": "Hide sort select on larger screens, closes #300", "author_date": "2018-05-31T14:43:06Z", "committer_date": "2018-05-31T14:43:06Z", "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": "9277c6236a8216450d4ebe3242ce6d56c1a7e437", "message": "Fixed tests I broke in b18e45158", "author_date": "2018-05-31T14:47:22Z", "committer_date": "2018-05-31T14:47:22Z", "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": "29edbe90ffcdd4f6c2ff564ab1938dff151b40c4", "message": "New cache_size_kb config for SQLite, closes #304", "author_date": "2018-06-04T16:02:07Z", "committer_date": "2018-06-04T16:02:07Z", "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": "b252bdb7404de88b4fa6f5495a83a712201a12ce", "message": "Documented how to set multiple --config at once", "author_date": "2018-06-05T01:45:47Z", "committer_date": "2018-06-05T01:45:47Z", "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"}}