{"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"}} {"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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "8e0f07284789228a98479c082a6dad467b65a35c", "message": "Added Datasette 0.21 to News", "author_date": "2018-05-05T23:24:55Z", "committer_date": "2018-05-05T23:24:55Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "1c815207cca70107711d514d3303986333da8b7a", "message": "Update conf.py", "author_date": "2018-05-12T12:08:11Z", "committer_date": "2018-05-12T12:08:11Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "2c2e67b9bb5f1f6b82348a16afe4a07e8073ab54", "message": "Updated default facet limits in docs", "author_date": "2018-05-18T15:50:37Z", "committer_date": "2018-05-18T15:50:37Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "d59366d36e95b973d674e62edff0168d5bdd90eb", "message": "Link to /-/plugins example", "author_date": "2018-05-21T04:07:26Z", "committer_date": "2018-05-21T04:07:26Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "08029a2f8f67bbcd42bea755de5fb7db12b2c275", "message": "Hyperlink to www.srihash.org", "author_date": "2018-05-26T19:46:24Z", "committer_date": "2018-05-26T19:46:24Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "c25c3e51c97a807ae8cb6c78e2aea5439d04acbc", "message": "Link to latest.datasette.io from README", "author_date": "2018-06-17T22:02:20Z", "committer_date": "2018-06-17T22:02:20Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "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": "e7566cc59d4b02ef301054fd35fdde6c925a8e38", "message": "Link to 0.23.1 release notes from news", "author_date": "2018-06-21T16:01:38Z", "committer_date": "2018-06-21T16:01:38Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "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": "7d9bcdd3071c66b753f3c148bec8ef1b2b54757b", "message": "Documentation tweaks", "author_date": "2018-06-28T05:07:53Z", "committer_date": "2018-06-28T05:07:53Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "29bd6065147818263fb7c19e0cfc5228c5cf7fb4", "message": "Documentation typo", "author_date": "2018-06-28T05:09:03Z", "committer_date": "2018-06-28T05:09:03Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "24af1004a42029f5a2f1a50541780814e9e2578a", "message": "Added datasette-vega to news section", "author_date": "2018-06-29T14:53:36Z", "committer_date": "2018-06-29T14:53:36Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "130dc8823ebdcc1834fc7c4a03c996b13fc1e444", "message": "Run Travis CI against Python 3.7 as well", "author_date": "2018-07-12T17:36:00Z", "committer_date": "2018-07-12T17:36:00Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "2bdab66772dca51b0c729b4e1063610cb2edd890", "message": "Build and push new tagged releases to Docker Hub\n\nBased on method described in https://sebest.github.io/post/using-travis-ci-to-build-docker-images/", "author_date": "2018-07-24T04:17:57Z", "committer_date": "2018-07-24T04:17:57Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "3a46d5e3c4278e74c3694f36995ea134bff800bc", "message": "Removed docker -e flag\n\ndocker -e flag is now deprecated: https://docs.docker.com/engine/deprecated/#-e-and---email-flags-on-docker-login", "author_date": "2018-07-24T04:48:36Z", "committer_date": "2018-07-24T04:48:36Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "ba64cfb4bc8ff79086e3f61d9be3eaf35cc44c84", "message": "Fix for Python 3.5\n\nhttps://stackoverflow.com/a/42694113/6083", "author_date": "2018-07-25T17:20:56Z", "committer_date": "2018-07-25T17:20:56Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "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": "61d81494d5cfee72a99d880e47bc5f436720b415", "message": "Fleshed out README", "author_date": "2018-07-31T15:38:50Z", "committer_date": "2018-07-31T15:38:50Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "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": "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": "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": "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": "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": "24cea271961077a63bc834a2aab3de777491a9c9", "message": "Link to \"The interesting ideas in Datasette\"", "author_date": "2018-10-04T02:40:04Z", "committer_date": "2018-10-04T02:40:04Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "5e3a432a0caa23837fa58134f69e2f82e4f632a6", "message": "How to activate your virtual environment", "author_date": "2018-11-15T00:54:54Z", "committer_date": "2018-11-15T00:54:54Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "595da9054e391b05a59b57c0c0a4487ea10062ce", "message": "Better example commit\n\nThis one updates the README news section as well", "author_date": "2018-12-16T22:56:56Z", "committer_date": "2018-12-16T22:56:56Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "74ad06e1283615cceb49fd95929b60329d47d3d4", "message": "Updated notes on FTS5 v.s. FTS4", "author_date": "2018-12-18T21:49:51Z", "committer_date": "2018-12-18T21:49:51Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "48d24c6589f214c7e1bab21d32e2f35a0038e71f", "message": "Link to new tutorial from the README", "author_date": "2018-12-19T05:39:35Z", "committer_date": "2018-12-19T05:39:35Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "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": "b65d97792a53f78cb14b226231063209d22c4602", "message": "Switch to using PYPI_PASSWORD env var in Travis", "author_date": "2019-01-03T03:14:21Z", "committer_date": "2019-01-03T03:14:21Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "5b026115126bedbb66457767e169139146d1c9fd", "message": "Corrected import path in plugin docs", "author_date": "2019-01-09T00:25:29Z", "committer_date": "2019-01-09T00:25:29Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "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": "7689ca7229d2a2e662a7c6b1ada8baef9c4d7525", "message": "Fixed RST formatting", "author_date": "2019-01-25T18:16:26Z", "committer_date": "2019-01-25T18:16:26Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "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": "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": "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": "d5d39da12b26c06a426e97872bce4e94248db42d", "message": "Expanded section on db-to-sqlite", "author_date": "2019-02-08T06:23:27Z", "committer_date": "2019-02-08T06:23:27Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "1f91065b20cbc691f464bccfd8eef7d1ce4b14a8", "message": "Added socrata2sql to the ecosystem page\n\nA fantastic new tool created by @achavez at the Dallas Morning News.", "author_date": "2019-02-08T16:06:10Z", "committer_date": "2019-02-08T16:06:10Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "463fd3c3f66691532022f14ad446f9b782d2273c", "message": "Bump copyright year", "author_date": "2019-02-23T06:08:14Z", "committer_date": "2019-02-23T06:08:14Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "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": "919415e4e933662f15fe224439fca52e0c2fba08", "message": "Added LICENSE file", "author_date": "2019-02-23T17:16:57Z", "committer_date": "2019-02-23T17:16:57Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "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": "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": "0b1af42ead3b3902347951180b3364ce1942da6e", "message": "Link to my blog entry", "author_date": "2019-02-25T03:45:38Z", "committer_date": "2019-02-25T03:45:38Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "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": "5b3af3d015a6048a3977234bf46d20905ce720c0", "message": "Added sqlite-utils blog entry to news section", "author_date": "2019-02-25T03:47:11Z", "committer_date": "2019-02-25T03:47:11Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "4147c388cbb9b14d137dd5229ae3f574ee6a25fe", "message": "Link to sqlite-utils blog entry", "author_date": "2019-03-08T04:30:21Z", "committer_date": "2019-03-08T04:30:21Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "41744d76908bbef0edc038a5050a709cdd26e529", "message": "Added datasette-jellyfish", "author_date": "2019-03-09T18:43:12Z", "committer_date": "2019-03-09T18:43:12Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "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": "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": "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": "9dc7a1824be0a876b8f54e0edd4467d9a357e0cb", "message": "Slightly more interesting example link", "author_date": "2019-04-13T22:49:07Z", "committer_date": "2019-04-13T22:49:07Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "31f36e1b97ccc3f4387c80698d018a69798b6228", "message": "Added some guidelines\n\nMainly to remind me that master needs to be releasable at all times!", "author_date": "2019-04-20T18:32:40Z", "committer_date": "2019-04-20T18:32:40Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "ea66c45df96479ef66a89caa71fff1a97a862646", "message": "Extract facet code out into a new plugin hook, closes #427 (#445)\n\nDatasette previously only supported one type of faceting: exact column value counting.\r\n\r\nWith this change, faceting logic is extracted out into one or more separate classes which can implement other patterns of faceting - this is discussed in #427, but potential upcoming facet types include facet-by-date, facet-by-JSON-array, facet-by-many-2-many and more.\r\n\r\nA new plugin hook, register_facet_classes, can be used by plugins to add in additional facet classes.\r\n\r\nEach class must implement two methods: suggest(), which scans columns in the table to decide if they might be worth suggesting for faceting, and facet_results(), which executes the facet operation and returns results ready to be displayed in the UI.", "author_date": "2019-05-03T00:11:26Z", "committer_date": "2019-05-03T00:11:26Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "553314dcd699a84aa7cc806377150ca0d57a6024", "message": "Use dist: xenial and python: 3.7 on Travis (#447)", "author_date": "2019-05-03T18:16:52Z", "committer_date": "2019-05-03T18:16:52Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "35d6ee2790e41e96f243c1ff58be0c9c0519a8ce", "message": "Apply black to everything, enforce via unit tests (#449)\n\nI've run the black code formatting tool against everything:\r\n\r\n black tests datasette setup.py\r\n\r\nI also added a new unit test, in tests/test_black.py, which will fail if the code does not\r\nconform to black's exacting standards.\r\n\r\nThis unit test only runs on Python 3.6 or higher, because black itself doesn't run on 3.5.", "author_date": "2019-05-04T02:15:14Z", "committer_date": "2019-05-04T02:15:14Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "55643430f7ac8d27e99b00e7cf79db741003e811", "message": "Added Code style: black badge", "author_date": "2019-05-04T02:21:21Z", "committer_date": "2019-05-04T02:21:21Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "bfa2ae0d16d39bb82dbe4da4f3fdc3c7f6257418", "message": "Promote Glitch instead of Datasette Publish\n\nDatasette Publish is currently broken due to Zeit API and platform changes.", "author_date": "2019-05-09T00:02:47Z", "committer_date": "2019-05-09T00:02:47Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "e7b31ae8c1a28cab9db8e165b3f21407c2e581e6", "message": "Use now --target production instead of now alias\n\nFix for this error:\r\n\r\n $ now alias --token=$NOW_TOKEN\r\n > WARN! The `now alias` command (no arguments) was deprecated in favour of `now --target production`.\r\n > Error! Couldn't find a deployment to alias. Please provide one as an argument.\r\n The command \"now alias --token=$NOW_TOKEN\" exited with 1.\r\n\r\nhttps://travis-ci.org/simonw/datasette/jobs/530597261", "author_date": "2019-05-11T17:06:23Z", "committer_date": "2019-05-11T17:06:23Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "a4645944752e713ff4acf946c1ee824be2e30963", "message": "Added inline contents for installation page", "author_date": "2019-05-16T10:15:03Z", "committer_date": "2019-05-16T10:15:03Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "7c79eb974b3bd4fff2bf23c00d0c17958b5b7567", "message": "It's 2019 now", "author_date": "2019-05-16T10:20:08Z", "committer_date": "2019-05-16T10:20:08Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "f31b9fe5ca3363ec56a44cb4e29c8b531e562067", "message": "Another link to Glitch", "author_date": "2019-05-16T13:26:46Z", "committer_date": "2019-05-16T13:26:46Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "19370267666164ebf7e46aeb284a343f34bc03bd", "message": "Removed accidental R", "author_date": "2019-05-16T13:27:08Z", "committer_date": "2019-05-16T13:27:08Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "afd0480d3f88012ef062ac82c67a995d6bfc5080", "message": "Tidy up README, reducing duplication with docs\n\nRefs #451", "author_date": "2019-05-19T21:31:03Z", "committer_date": "2019-05-19T21:31:03Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "4246e138f9512686413e97878659ef953337e57b", "message": "Typo fix", "author_date": "2019-05-19T23:14:09Z", "committer_date": "2019-05-19T23:14:09Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 19864447, "label": "web-flow"}}