{"sha": "bc6a9b45646610f362b4287bc4110440991aa4d6", "message": "?_where= parameter on table views, closes #429\n\nFrom pull request #430", "author_date": "2019-04-13T01:37:22Z", "committer_date": "2019-04-13T01:37:22Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "9cd3b44277e6a8ea9273bf659379ff0414e0b8ae", "message": "Upgrade to Jinja2==2.10.1 (#426)", "author_date": "2019-04-10T23:13:30Z", "committer_date": "2019-04-10T23:13:30Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "6f6d0ff2b41f1cacaf42287b1b230b646bcba9ee", "message": "URL hashing is now off by default - closes #418\n\nPrior to this commit Datasette would calculate the content hash of every\r\ndatabase and redirect to a URL containing that hash, like so:\r\n\r\n https://v0-27.datasette.io/fixtures => https://v0-27.datasette.io/fixtures-dd88475\r\n\r\nThis assumed that all databases were opened in immutable mode and were not\r\nexpected to change.\r\n\r\nThis will be changing as a result of #419 - so this commit takes the first step\r\nin implementing that change by changing this default behaviour. Datasette will\r\nnow only redirect hash-free URLs under two circumstances:\r\n\r\n* The new `hash_urls` config option is set to true (it defaults to false).\r\n* The user passes `?_hash=1` in the URL", "author_date": "2019-03-17T22:55:04Z", "committer_date": "2019-03-17T22:55:04Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "e615d22c5564ea1f32abb086088b2700110be10a", "message": "Support for numpy types, closes #11 (#12)", "author_date": "2019-02-24T04:02:19Z", "committer_date": "2019-02-24T04:02:19Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "195a5b36349d0d24a6bbb758cebb719b6de303b6", "message": "Heroku --include-vcs-ignore (#407)\n\nMeans `datasette publish heroku` can work under Travis, unlike this failure:\r\n\r\nhttps://travis-ci.org/simonw/fivethirtyeight-datasette/builds/488047550\r\n\r\n```\r\n2.25s$ datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette\r\ntar: unrecognized option '--exclude-vcs-ignores'\r\nTry 'tar --help' or 'tar --usage' for more information.\r\n \u25b8 Command failed: tar cz -C /tmp/tmpuaxm7i8f --exclude-vcs-ignores --exclude\r\n \u25b8 .git --exclude .gitmodules . >\r\n \u25b8 /tmp/f49440e0-1bf3-4d3f-9eb0-fbc2967d1fd4.tar.gz\r\n \u25b8 tar: unrecognized option '--exclude-vcs-ignores'\r\n \u25b8 Try 'tar --help' or 'tar --usage' for more information.\r\n \u25b8 \r\nThe command \"datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette\" exited with 0.\r\n```\r\n\r\nThe fix for that issue is to call the heroku command like this:\r\n\r\n heroku builds:create -a app_name --include-vcs-ignore", "author_date": "2019-02-06T04:15:46Z", "committer_date": "2019-02-06T04:15:46Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "3a944d0c077c203277f13dd69387eb84b5c88d3e", "message": "Run Travis tests against Python 3.8-dev (#5)", "author_date": "2019-01-26T02:37:54Z", "committer_date": "2019-01-26T02:37:54Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "42b2b4b785e3163371e92a9cc085bc47e7c83107", "message": "Upgrade sqlite3 in Travis so we can test against FTS5\n\nUsing recipe from https://linuxhint.com/install-sqlite-ubuntu-linux-mint/", "author_date": "2019-01-25T06:54:32Z", "committer_date": "2019-01-25T06:54:32Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "a2bfcfc1b1c60dac3526364af17c2fa2f3d41a0a", "message": "Fix some regex DeprecationWarnings (#392)", "author_date": "2018-12-29T02:22:27Z", "committer_date": "2018-12-29T02:22:27Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "aae49fef3b75848628d824077ec063834e3e5167", "message": " Import pysqlite3 if available, closes #360 (#361)", "author_date": "2018-08-16T00:58:56Z", "committer_date": "2018-08-16T00:58:56Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5", "message": "Bump versions of pytest, pluggy and beautifulsoup4 (#358)", "author_date": "2018-08-08T01:11:12Z", "committer_date": "2018-08-08T01:11:12Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "4ac913224061f2dc4f673efab1a5ac6bc748854f", "message": "render_cell(value) plugin hook, closes #352\n\nNew plugin hook for customizing the way cells values are rendered in HTML.\r\n\r\nThe first full example of this hook in use is https://github.com/simonw/datasette-json-html", "author_date": "2018-08-05T00:14:56Z", "committer_date": "2018-08-05T00:14:56Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "741e8f7fe563e18fe9a12ac1ce38157e8c903505", "message": "Make .indexes compatible with older SQLite versions (#1)\n\nOlder SQLite versions return a different set of columns from the PRAGMA we are using.", "author_date": "2018-08-02T15:17:29Z", "committer_date": "2018-08-02T15:17:29Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 140912432, "label": "sqlite-utils"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "dbbe707841973b50a76d2703003ae2c40e7ad1fd", "message": "publish_subcommand hook + default plugins mechanism, used for publish heroku/now (#349)\n\nThis change introduces a new plugin hook, publish_subcommand, which can be\r\nused to implement new subcommands for the \"datasette publish\" command family.\r\n\r\nI've used this new hook to refactor out the \"publish now\" and \"publish heroku\"\r\nimplementations into separate modules. I've also added unit tests for these\r\ntwo publishers, mocking the subprocess.call and subprocess.check_output\r\nfunctions.\r\n\r\nAs part of this, I introduced a mechanism for loading default plugins. These\r\nare defined in the new \"default_plugins\" list inside datasette/app.py\r\n\r\nCloses #217 (Plugin support for datasette publish)\r\nCloses #348 (Unit tests for \"datasette publish\")\r\nRefs #14, #59, #102, #103, #146, #236, #347", "author_date": "2018-07-26T05:15:59Z", "committer_date": "2018-07-26T05:15:59Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "47e689a89b3f5f0969595b17d2ec59ea3caffb3b", "message": "Speed up Travis by reusing pip wheel cache across builds (#324)\n\n* Cache pip wheels between runs in Travis, refs #323\r\n* Run pytest manually - \"python setup.py test\" appeared to still download a bunch of stuff: https://travis-ci.org/simonw/datasette/jobs/395306188\r\n\r\n* Use extras_require so pip can install test dependencies: https://github.com/pypa/pip/issues/1197#issuecomment-228939212", "author_date": "2018-06-24T01:03:46Z", "committer_date": "2018-06-24T01:03:46Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "fc3660cfad7668dbce6ead12766e048fc1f78b11", "message": "Streaming mode for downloading all rows as a CSV (#315)\n\n* table.csv?_stream=1 to download all rows - refs #266\r\n\r\nThis option causes Datasette to serve ALL rows in the table, by internally\r\nfollowing the _next= pagination links and serving everything out as a stream.\r\n\r\nAlso added new config option, allow_csv_stream, which can be used to disable\r\nthis feature.\r\n\r\n* New config option max_csv_mb limiting size of CSV export", "author_date": "2018-06-18T03:21:02Z", "committer_date": "2018-06-18T03:21:02Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "7f44d31782260f859af1de68ac9db29f72cc6d84", "message": "Link to register-of-members-interests tutorial", "author_date": "2018-04-25T17:40:48Z", "committer_date": "2018-04-25T17:40:48Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "ea0a761303d84bd73f54a1acedc45b01c38b2da0", "message": "Link to documentation from README", "author_date": "2018-04-21T00:20:56Z", "committer_date": "2018-04-21T00:20:56Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "05bdf53358ec6ea81a7dce17290f3db0cd94d23d", "message": "Added missing hyphen", "author_date": "2018-04-20T21:15:13Z", "committer_date": "2018-04-20T21:15:13Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "ae02e9f4acc77019075c0eac9c3a0e96e50c195f", "message": "Added datasette-cluster-map blog entry to news", "author_date": "2018-04-20T21:14:35Z", "committer_date": "2018-04-20T21:14:35Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "f8f818711b622ec0ac11834a11e214f19c1590c5", "message": "Formatting tweak", "author_date": "2018-04-18T04:30:58Z", "committer_date": "2018-04-18T04:30:58Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "4be6deb94776744071311777f0b18efb993c0cfa", "message": "Fix for plugins in Python 3.5 (#222)\n\nModuleNotFoundError is not a thing in Python 3.5, so catch KeyError/ImportError instead.", "author_date": "2018-04-18T03:24:20Z", "committer_date": "2018-04-18T03:24:20Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "bf5ec2d61148f9852441934dd206b3b1c07a512f", "message": "Updated PyPI link to pypi.org", "author_date": "2018-04-17T02:24:36Z", "committer_date": "2018-04-17T02:24:36Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "1652a9707e325b387ab9550e78eefd48029be44f", "message": "Apache 2.0 license badge", "author_date": "2018-04-16T23:10:12Z", "committer_date": "2018-04-16T23:10:12Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "b2955d9065ea019500c7d072bcd9d49d1967f051", "message": "New --plugins-dir=plugins/ option (#212)\n\n* New --plugins-dir=plugins/ option\r\n\r\nNew option causing Datasette to load and evaluate all of the Python files in\r\nthe specified directory and register any plugins that are defined in those\r\nfiles.\r\n\r\nThis new option is available for the following commands:\r\n\r\n datasette serve mydb.db --plugins-dir=plugins/\r\n datasette publish now/heroku mydb.db --plugins-dir=plugins/\r\n datasette package mydb.db --plugins-dir=plugins/\r\n\r\n* Unit tests for --plugins-dir=plugins/\r\n\r\nCloses #211", "author_date": "2018-04-16T05:22:01Z", "committer_date": "2018-04-16T05:22:01Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "33c7c53ff87c25445c68088ede49d062d9c31fe8", "message": "Start of the plugin system, based on pluggy (#210)\n\nUses https://pluggy.readthedocs.io/ originally created for the py.test project\r\n\r\nWe're starting with two plugin hooks:\r\n\r\nprepare_connection(conn)\r\n\r\nThis is called when a new SQLite connection is created. It can be used to register custom SQL functions.\r\n\r\nprepare_jinja2_environment(env)\r\n\r\nThis is called with the Jinja2 environment. It can be used to register custom template tags and filters.\r\n\r\nAn example plugin which uses these two hooks can be found at https://github.com/simonw/datasette-plugin-demos or installed using `pip install datasette-plugin-demos`\r\n\r\nRefs #14", "author_date": "2018-04-16T00:56:15Z", "committer_date": "2018-04-16T00:56:15Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "8d394586f55bc4b8ab70476968d08fb6ec8339e5", "message": "Added 0.18 to news", "author_date": "2018-04-14T16:04:38Z", "committer_date": "2018-04-14T16:04:38Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "932e0a3f91e4cee92b0e30c528300ec1d348d26c", "message": "Don't attempt to deploy new tags to PyPI\n\nThis isn't working through Travis at the moment, so I'm disabling it and switching back to manual deploys.", "author_date": "2018-04-14T15:21:37Z", "committer_date": "2018-04-14T15:21:37Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "bfb4e45a7bcb880758dbc18f66258de26c1d1904", "message": "Datasette Publish in readme", "author_date": "2018-04-11T14:43:28Z", "committer_date": "2018-04-11T14:43:28Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "67982b6ecb89485ce26d684f2d038aad4d954d7c", "message": "Added Datasette 0.15 to news", "author_date": "2018-04-09T16:01:03Z", "committer_date": "2018-04-09T16:01:03Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "0abd3abacb309a2bd5913a7a2df4e9256585b1bb", "message": "New ?_shape=objects/object/lists param for JSON API (#192)\n\nNew _shape= parameter replacing old .jsono extension\r\n\r\nNow instead of this:\r\n\r\n\t/database/table.jsono\r\n\r\nWe use the _shape parameter like this:\r\n\r\n\t/database/table.json?_shape=objects\r\n\r\nAlso introduced a new _shape called 'object' which looks like this:\r\n\r\n\t/database/table.json?_shape=object\r\n\r\nReturning an object for the rows key:\r\n\r\n\t...\r\n\t\"rows\": {\r\n\t\t\"pk1\": {\r\n\t\t\t...\r\n\t\t},\r\n\t\t\"pk2\": {\r\n\t\t\t...\r\n\t\t}\r\n\t}\r\n\r\nRefs #122", "author_date": "2018-04-03T14:52:54Z", "committer_date": "2018-04-03T14:52:54Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "0e5f51adfeff24a120bbdf0e5ac5669b18124400", "message": "Three more news items", "author_date": "2018-03-30T07:03:45Z", "committer_date": "2018-03-30T07:03:45Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "56623e48da5412b25fb39cc26b9c743b684dd968", "message": "News: Datasette Publish", "author_date": "2018-01-17T15:50:10Z", "committer_date": "2018-01-17T15:50:10Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "4f08fc092f59b434c11f77b6fb2d29b3255227e5", "message": "Updated news", "author_date": "2017-12-12T16:52:19Z", "committer_date": "2017-12-12T16:52:19Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "702829f808994d49f11612b35035cfa6842cd91b", "message": "Added Datasette 0.14: customization edition to news", "author_date": "2017-12-10T02:10:30Z", "committer_date": "2017-12-10T02:10:30Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "6bdfcf60760c27e29ff34692d06e62b36aeecc56", "message": "Added Heroku to README, updated --help output examples\n\nRefs #157", "author_date": "2017-12-09T18:50:08Z", "committer_date": "2017-12-09T18:50:08Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "06645f2e267b16d0c193bb1d1b7ca0cb67227c43", "message": "Formatting tweak", "author_date": "2017-12-09T18:41:20Z", "committer_date": "2017-12-09T18:41:20Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "3459ab91665d956ff6a25f8e94dcb9c325dd10e5", "message": "Formatting fixes", "author_date": "2017-12-09T18:33:14Z", "committer_date": "2017-12-09T18:33:14Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "2cc14a236c601ee2a6b81d8580e70989574baec9", "message": "Ditched short form options for --static and --template-dir\n\nThe -t clashes with the package --tag option", "author_date": "2017-12-09T03:47:50Z", "committer_date": "2017-12-09T03:47:50Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "446f4b832272b2286f6f65af19714eb64afb7aa6", "message": "Upgrade to Sanic 0.7.0 (#168)\n\nhttps://github.com/channelcat/sanic/releases/tag/0.7.0", "author_date": "2017-12-09T03:00:33Z", "committer_date": "2017-12-09T03:00:33Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "67ad77a307c7c264c68d768fa8290997e3b75e77", "message": "Re-ordered docs index page", "author_date": "2017-12-06T18:27:50Z", "committer_date": "2017-12-06T18:27:50Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "f9c32e717f67b55e5d51bb896adc2dcec4489c2d", "message": "Linked to csvs-to-sqlite", "author_date": "2017-12-06T15:09:56Z", "committer_date": "2017-12-06T15:09:56Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "f2dece01dba6355a91214ca163561a451941499f", "message": "Documented _sql_time_limit_ms querystring argument\n\nCloses #163", "author_date": "2017-12-06T15:06:56Z", "committer_date": "2017-12-06T15:06:56Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "1ecac1a4389b85f7acfad513bf6ab20899862d0b", "message": "Fix display of select boxes in Firefox", "author_date": "2017-12-02T20:53:08Z", "committer_date": "2017-12-02T20:53:08Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "23a45758185c99b6c3b8cf07d687aa5281282196", "message": "Added News section to Readme", "author_date": "2017-11-25T21:40:43Z", "committer_date": "2017-11-25T21:40:43Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "efb82da927386a217ec3d4464251eb65efe3924c", "message": "datasette => Datasette", "author_date": "2017-11-25T03:46:24Z", "committer_date": "2017-11-25T03:46:24Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "0d3479ba320e5a5d15f029838744c5219a9e2987", "message": "Release notes for 0.13", "author_date": "2017-11-25T03:32:24Z", "committer_date": "2017-11-25T03:32:24Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "fa8eb0bf1b113ab17ede9cd107b7c3bd5cde39c3", "message": "Run unit tests against both Python 3.5 and 3.6", "author_date": "2017-11-22T17:43:52Z", "committer_date": "2017-11-22T17:43:52Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "e47117ce1d15f11246a3120aa49de70205713d05", "message": "Add publish to heroku support (merge pull request #104 from jacobian)\n\n datasette publish heroku mydb.db", "author_date": "2017-11-21T20:55:04Z", "committer_date": "2017-11-21T20:55:04Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "b9af49be6c68d6e551c1ae23132711f22cb7c63c", "message": "Fix case for Sanic dependency\n\nOn PyPI it has a capital letter: https://pypi.python.org/pypi/Sanic\r\n\r\nI think this is why the list of \"Requires Distributions\" on https://pypi.python.org/pypi/datasette links to all of the other dependencies but does not link to Sanic.", "author_date": "2017-11-17T13:26:05Z", "committer_date": "2017-11-17T13:26:05Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "5bfb23b949a7f01e4dfc1d7ac698a6ec8e8c97fd", "message": "Added Read The Docs badge\n\nCloses #109", "author_date": "2017-11-16T16:13:55Z", "committer_date": "2017-11-16T16:13:55Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "075d422c0a1c70259188dfbd940538c67419694a", "message": "Fixed typo", "author_date": "2017-11-14T05:28:02Z", "committer_date": "2017-11-14T05:28:02Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "98ae6d6a4085d67a62c129e69e2a9a611f26502d", "message": "Added link to examples", "author_date": "2017-11-14T05:27:21Z", "committer_date": "2017-11-14T05:27:21Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "bdfb6d4f1359e98e127a3514248fd19b27b574e9", "message": "Fixed package output example", "author_date": "2017-11-13T22:18:44Z", "committer_date": "2017-11-13T22:18:44Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "452c5f047ea229dbb444e271183a55381bb4abce", "message": "Added Travis CI badge to README\n\nCloses #77", "author_date": "2017-11-13T21:24:14Z", "committer_date": "2017-11-13T21:24:14Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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": "ac9d66817d6a08b806f8e4bc16da02fbdb430496", "message": "Initial commit", "author_date": "2017-10-23T00:39:03Z", "committer_date": "2017-10-23T00:39:03Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "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"}}