sha,message,author_date,committer_date,raw_author,raw_committer,repo,author,committer bc6a9b45646610f362b4287bc4110440991aa4d6,"?_where= parameter on table views, closes #429 From pull request #430",2019-04-13T01:37:22Z,2019-04-13T01:37:22Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 9cd3b44277e6a8ea9273bf659379ff0414e0b8ae,Upgrade to Jinja2==2.10.1 (#426),2019-04-10T23:13:30Z,2019-04-10T23:13:30Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 6f6d0ff2b41f1cacaf42287b1b230b646bcba9ee,"URL hashing is now off by default - closes #418 Prior to this commit Datasette would calculate the content hash of every database and redirect to a URL containing that hash, like so: https://v0-27.datasette.io/fixtures => https://v0-27.datasette.io/fixtures-dd88475 This assumed that all databases were opened in immutable mode and were not expected to change. This will be changing as a result of #419 - so this commit takes the first step in implementing that change by changing this default behaviour. Datasette will now only redirect hash-free URLs under two circumstances: * The new `hash_urls` config option is set to true (it defaults to false). * The user passes `?_hash=1` in the URL",2019-03-17T22:55:04Z,2019-03-17T22:55:04Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 195a5b36349d0d24a6bbb758cebb719b6de303b6,"Heroku --include-vcs-ignore (#407) Means `datasette publish heroku` can work under Travis, unlike this failure: https://travis-ci.org/simonw/fivethirtyeight-datasette/builds/488047550 ``` 2.25s$ datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette tar: unrecognized option '--exclude-vcs-ignores' Try 'tar --help' or 'tar --usage' for more information. ▸ Command failed: tar cz -C /tmp/tmpuaxm7i8f --exclude-vcs-ignores --exclude ▸ .git --exclude .gitmodules . > ▸ /tmp/f49440e0-1bf3-4d3f-9eb0-fbc2967d1fd4.tar.gz ▸ tar: unrecognized option '--exclude-vcs-ignores' ▸ Try 'tar --help' or 'tar --usage' for more information. ▸ The command ""datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette"" exited with 0. ``` The fix for that issue is to call the heroku command like this: heroku builds:create -a app_name --include-vcs-ignore",2019-02-06T04:15:46Z,2019-02-06T04:15:46Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 a2bfcfc1b1c60dac3526364af17c2fa2f3d41a0a,Fix some regex DeprecationWarnings (#392),2018-12-29T02:22:27Z,2018-12-29T02:22:27Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 aae49fef3b75848628d824077ec063834e3e5167," Import pysqlite3 if available, closes #360 (#361)",2018-08-16T00:58:56Z,2018-08-16T00:58:56Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5,"Bump versions of pytest, pluggy and beautifulsoup4 (#358)",2018-08-08T01:11:12Z,2018-08-08T01:11:12Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 4ac913224061f2dc4f673efab1a5ac6bc748854f,"render_cell(value) plugin hook, closes #352 New plugin hook for customizing the way cells values are rendered in HTML. The first full example of this hook in use is https://github.com/simonw/datasette-json-html",2018-08-05T00:14:56Z,2018-08-05T00:14:56Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 dbbe707841973b50a76d2703003ae2c40e7ad1fd,"publish_subcommand hook + default plugins mechanism, used for publish heroku/now (#349) This change introduces a new plugin hook, publish_subcommand, which can be used to implement new subcommands for the ""datasette publish"" command family. I've used this new hook to refactor out the ""publish now"" and ""publish heroku"" implementations into separate modules. I've also added unit tests for these two publishers, mocking the subprocess.call and subprocess.check_output functions. As part of this, I introduced a mechanism for loading default plugins. These are defined in the new ""default_plugins"" list inside datasette/app.py Closes #217 (Plugin support for datasette publish) Closes #348 (Unit tests for ""datasette publish"") Refs #14, #59, #102, #103, #146, #236, #347",2018-07-26T05:15:59Z,2018-07-26T05:15:59Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 47e689a89b3f5f0969595b17d2ec59ea3caffb3b,"Speed up Travis by reusing pip wheel cache across builds (#324) * Cache pip wheels between runs in Travis, refs #323 * Run pytest manually - ""python setup.py test"" appeared to still download a bunch of stuff: https://travis-ci.org/simonw/datasette/jobs/395306188 * Use extras_require so pip can install test dependencies: https://github.com/pypa/pip/issues/1197#issuecomment-228939212",2018-06-24T01:03:46Z,2018-06-24T01:03:46Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 fc3660cfad7668dbce6ead12766e048fc1f78b11,"Streaming mode for downloading all rows as a CSV (#315) * table.csv?_stream=1 to download all rows - refs #266 This option causes Datasette to serve ALL rows in the table, by internally following the _next= pagination links and serving everything out as a stream. Also added new config option, allow_csv_stream, which can be used to disable this feature. * New config option max_csv_mb limiting size of CSV export",2018-06-18T03:21:02Z,2018-06-18T03:21:02Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 28a52fcffb869f5e83ca2fad53738dc25eec425d,Set theme jekyll-theme-architect,2018-05-24T16:56:21Z,2018-05-24T16:56:21Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 3d9baf3c2f2f745e6949973f18480092f189116c,Set theme jekyll-theme-leap-day,2018-05-24T16:55:19Z,2018-05-24T16:55:19Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 7f44d31782260f859af1de68ac9db29f72cc6d84,Link to register-of-members-interests tutorial,2018-04-25T17:40:48Z,2018-04-25T17:40:48Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 ea0a761303d84bd73f54a1acedc45b01c38b2da0,Link to documentation from README,2018-04-21T00:20:56Z,2018-04-21T00:20:56Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 05bdf53358ec6ea81a7dce17290f3db0cd94d23d,Added missing hyphen,2018-04-20T21:15:13Z,2018-04-20T21:15:13Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 ae02e9f4acc77019075c0eac9c3a0e96e50c195f,Added datasette-cluster-map blog entry to news,2018-04-20T21:14:35Z,2018-04-20T21:14:35Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 f8f818711b622ec0ac11834a11e214f19c1590c5,Formatting tweak,2018-04-18T04:30:58Z,2018-04-18T04:30:58Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 4be6deb94776744071311777f0b18efb993c0cfa,"Fix for plugins in Python 3.5 (#222) ModuleNotFoundError is not a thing in Python 3.5, so catch KeyError/ImportError instead.",2018-04-18T03:24:20Z,2018-04-18T03:24:20Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 bf5ec2d61148f9852441934dd206b3b1c07a512f,Updated PyPI link to pypi.org,2018-04-17T02:24:36Z,2018-04-17T02:24:36Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 1652a9707e325b387ab9550e78eefd48029be44f,Apache 2.0 license badge,2018-04-16T23:10:12Z,2018-04-16T23:10:12Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 b2955d9065ea019500c7d072bcd9d49d1967f051,"New --plugins-dir=plugins/ option (#212) * New --plugins-dir=plugins/ option New option causing Datasette to load and evaluate all of the Python files in the specified directory and register any plugins that are defined in those files. This new option is available for the following commands: datasette serve mydb.db --plugins-dir=plugins/ datasette publish now/heroku mydb.db --plugins-dir=plugins/ datasette package mydb.db --plugins-dir=plugins/ * Unit tests for --plugins-dir=plugins/ Closes #211",2018-04-16T05:22:01Z,2018-04-16T05:22:01Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 33c7c53ff87c25445c68088ede49d062d9c31fe8,"Start of the plugin system, based on pluggy (#210) Uses https://pluggy.readthedocs.io/ originally created for the py.test project We're starting with two plugin hooks: prepare_connection(conn) This is called when a new SQLite connection is created. It can be used to register custom SQL functions. prepare_jinja2_environment(env) This is called with the Jinja2 environment. It can be used to register custom template tags and filters. An 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` Refs #14",2018-04-16T00:56:15Z,2018-04-16T00:56:15Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 8d394586f55bc4b8ab70476968d08fb6ec8339e5,Added 0.18 to news,2018-04-14T16:04:38Z,2018-04-14T16:04:38Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 932e0a3f91e4cee92b0e30c528300ec1d348d26c,"Don't attempt to deploy new tags to PyPI This isn't working through Travis at the moment, so I'm disabling it and switching back to manual deploys.",2018-04-14T15:21:37Z,2018-04-14T15:21:37Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 dd4491dd8112d70d96d73f8f1d12b58cb42fe1bd,Update number of expected tables,2018-04-14T15:03:41Z,2018-04-14T15:16:54Z,2946d096d0cdefdc017559e6b57e87658736e843,13ae486343ea6454a93114c6f558ffea2f2c6874,107914493,9599,9599 bfb4e45a7bcb880758dbc18f66258de26c1d1904,Datasette Publish in readme,2018-04-11T14:43:28Z,2018-04-11T14:43:28Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 67982b6ecb89485ce26d684f2d038aad4d954d7c,Added Datasette 0.15 to news,2018-04-09T16:01:03Z,2018-04-09T16:01:03Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 0abd3abacb309a2bd5913a7a2df4e9256585b1bb,"New ?_shape=objects/object/lists param for JSON API (#192) New _shape= parameter replacing old .jsono extension Now instead of this: /database/table.jsono We use the _shape parameter like this: /database/table.json?_shape=objects Also introduced a new _shape called 'object' which looks like this: /database/table.json?_shape=object Returning an object for the rows key: ... ""rows"": { ""pk1"": { ... }, ""pk2"": { ... } } Refs #122",2018-04-03T14:52:54Z,2018-04-03T14:52:54Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 0e5f51adfeff24a120bbdf0e5ac5669b18124400,Three more news items,2018-03-30T07:03:45Z,2018-03-30T07:03:45Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 56623e48da5412b25fb39cc26b9c743b684dd968,News: Datasette Publish,2018-01-17T15:50:10Z,2018-01-17T15:50:10Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 4f08fc092f59b434c11f77b6fb2d29b3255227e5,Updated news,2017-12-12T16:52:19Z,2017-12-12T16:52:19Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 702829f808994d49f11612b35035cfa6842cd91b,Added Datasette 0.14: customization edition to news,2017-12-10T02:10:30Z,2017-12-10T02:10:30Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 6bdfcf60760c27e29ff34692d06e62b36aeecc56,"Added Heroku to README, updated --help output examples Refs #157",2017-12-09T18:50:08Z,2017-12-09T18:50:08Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 06645f2e267b16d0c193bb1d1b7ca0cb67227c43,Formatting tweak,2017-12-09T18:41:20Z,2017-12-09T18:41:20Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 3459ab91665d956ff6a25f8e94dcb9c325dd10e5,Formatting fixes,2017-12-09T18:33:14Z,2017-12-09T18:33:14Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 2cc14a236c601ee2a6b81d8580e70989574baec9,"Ditched short form options for --static and --template-dir The -t clashes with the package --tag option",2017-12-09T03:47:50Z,2017-12-09T03:47:50Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 446f4b832272b2286f6f65af19714eb64afb7aa6,"Upgrade to Sanic 0.7.0 (#168) https://github.com/channelcat/sanic/releases/tag/0.7.0",2017-12-09T03:00:33Z,2017-12-09T03:00:33Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 67ad77a307c7c264c68d768fa8290997e3b75e77,Re-ordered docs index page,2017-12-06T18:27:50Z,2017-12-06T18:27:50Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 f9c32e717f67b55e5d51bb896adc2dcec4489c2d,Linked to csvs-to-sqlite,2017-12-06T15:09:56Z,2017-12-06T15:09:56Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 f2dece01dba6355a91214ca163561a451941499f,"Documented _sql_time_limit_ms querystring argument Closes #163",2017-12-06T15:06:56Z,2017-12-06T15:06:56Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 1ecac1a4389b85f7acfad513bf6ab20899862d0b,Fix display of select boxes in Firefox,2017-12-02T20:53:08Z,2017-12-02T20:53:08Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 23a45758185c99b6c3b8cf07d687aa5281282196,Added News section to Readme,2017-11-25T21:40:43Z,2017-11-25T21:40:43Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 efb82da927386a217ec3d4464251eb65efe3924c,datasette => Datasette,2017-11-25T03:46:24Z,2017-11-25T03:46:24Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 0d3479ba320e5a5d15f029838744c5219a9e2987,Release notes for 0.13,2017-11-25T03:32:24Z,2017-11-25T03:32:24Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 f96e55bce55d26c4d5b198edc536e1b8e9bbea43,"Fix pytest version conflict https://travis-ci.org/simonw/datasette/jobs/305929426 pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), Requirement.parse('pytest==3.2.3'))",2017-11-22T20:15:29Z,2017-11-22T20:17:51Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 fa8eb0bf1b113ab17ede9cd107b7c3bd5cde39c3,Run unit tests against both Python 3.5 and 3.6,2017-11-22T17:43:52Z,2017-11-22T17:43:52Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 e47117ce1d15f11246a3120aa49de70205713d05,"Add publish to heroku support (merge pull request #104 from jacobian) datasette publish heroku mydb.db",2017-11-21T20:55:04Z,2017-11-21T20:55:04Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 1b04662585ea1539014bfbd616a8112b650d5699,"Table views now show expanded foreign key references, if possible If a table has foreign key columns, and those foreign key tables have label_columns, the TableView will now query those other tables for the corresponding values and display those values as links in the corresponding table cells. label_columns are currently detected by the inspect() function, which looks for any table that has just two columns - an ID column and one other - and sets the label_column to be that second non-ID column.",2017-11-18T03:09:32Z,2017-11-18T03:15:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 6a007f632258e6cfd3c5e9e229683deb0efd87be,Row pages show incoming foreign key relationships,2017-11-17T18:15:44Z,2017-11-18T03:15:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 7feb746efe8c5ed80f477475acc546370bae89e4,Fixed bug where 0 values were showing up blank,2017-11-17T18:14:01Z,2017-11-18T03:15:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 0b702f3679a2ffd4e3efb5c34b9fe30221172ccb,"Fixed weird edge-case with foreign key detection It turns out it is possible for a SQLite table to define a foreign key relationship to a table that does not actually exist We should still be able to handle these databases.",2017-11-17T16:18:26Z,2017-11-17T16:18:26Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 45e502aace6cc1198cc5f9a04d61b4a1860a012b,"Added unit tests for inspect() foreign key detection Used them to fix a bug with it. Refs #85",2017-11-17T16:08:11Z,2017-11-17T16:08:11Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 e16ca1169cc49fbb5b0325564d248becad3a4b7f,"Refactored table column/row display logic Simplified the template and made the way for upcoming foreign key work. Refs #85 Also fixed   bug on database page - closes #113",2017-11-17T15:39:36Z,2017-11-17T15:39:36Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 084350b0f1343d988928cae63cfedbeb6205e25e,"Switched to gather_request=False for Sanic tests Gets rid of those ugly _, response = lines.",2017-11-17T14:53:37Z,2017-11-17T14:53:37Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 f3445e2d13e2c38bfbf75f35c2aa3e50df0040f1,Install python3-dev rothar than python-dev,2017-11-17T14:18:49Z,2017-11-17T14:18:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 1a6cfcc10f9abcc743b45437996c7264cc2a57b2,"Added a .dockerignore Figured this would be useful while testing out 03572ae3557",2017-11-17T14:18:23Z,2017-11-17T14:18:23Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 03572ae35573c2ea802a540624ce116f540ba1ac,"Allow --load-extension to be set via environment variable I tesed this by first building and running a container using the new Dockerfile from #114: docker build . docker run -it -p 8001:8001 6c9ca7e29181 /bin/sh Then I ran this inside the container itself: apt update && apt-get install wget -y \ && wget http://www.gaia-gis.it/spatialite-2.3.1/test-2.3.sqlite.gz \ && gunzip test-2.3.sqlite.gz \ && mv test-2.3.sqlite test23.sqlite \ && datasette -h 0.0.0.0 test23.sqlite I visited this URL to confirm I got an error due to spatialite not being loaded: http://localhost:8001/test23-c88bc35?sql=select+ST_AsText%28Geometry%29+from+HighWays+limit+1 Then I checked that loading it with `--load-extension` worked correctly: datasette -h 0.0.0.0 test23.sqlite \ --load-extension=/usr/lib/x86_64-linux-gnu/mod_spatialite.so Then, finally, I tested it with the new environment variable option: SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/mod_spatialite.so \ datasette -h 0.0.0.0 test23.sqlite Running it with an invalid environment variable option shows an error: $ SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/blah.so datasette \ -h 0.0.0.0 test23.sqlite Usage: datasette -h [OPTIONS] [FILES]... Error: Invalid value for ""--load-extension"": Path ""/usr/lib/x86_64-linux-gnu/blah.so"" does not exist. Closes #112",2017-11-17T14:13:35Z,2017-11-17T14:13:35Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 b9af49be6c68d6e551c1ae23132711f22cb7c63c,"Fix case for Sanic dependency On PyPI it has a capital letter: https://pypi.python.org/pypi/Sanic I 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.",2017-11-17T13:26:05Z,2017-11-17T13:26:05Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3,"Added --load-extension argument to datasette serve Allows loading of SQLite extensions. Refs #110.",2017-11-16T16:46:04Z,2017-11-16T16:48:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9e27b2a0ba45d92e198fcbac8641da41a62236b8,Add example of named parameter UI to the release notes,2017-11-16T16:09:07Z,2017-11-16T16:46:25Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 5bfb23b949a7f01e4dfc1d7ac698a6ec8e8c97fd,"Added Read The Docs badge Closes #109",2017-11-16T16:13:55Z,2017-11-16T16:13:55Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 a9138f044a4d73256c2244243d4e2908d77d218e,Added date to most recent changelog entry,2017-11-16T15:40:43Z,2017-11-16T15:40:43Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 51bdd67691bd69082ae7690af8b905f06050ee80,Changelog for 0.12 release,2017-11-16T15:37:46Z,2017-11-16T15:37:46Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 01e0c3fa18cd0dd7970e208790ffd683a420c924,"Fixed   bug   was showing for all None values in table cells, thanks to the autoescaping change introduced in 82261a638bd35c9",2017-11-16T15:29:52Z,2017-11-16T15:29:52Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 228bce83a37b4bee633f674b802aee13fe5b2f44,"Added __version__, bumped it to 0.12 Closes #108",2017-11-16T15:20:54Z,2017-11-16T15:20:54Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 e6ca88588395a9b8266c0e14121668990d34ff67,"Added initial docs, including a changelog Docs initialized using this helpful guide: http://docs.readthedocs.io/en/latest/getting_started.html I used https://pypi.python.org/pypi/gitchangelog to kick-start the changelog. Closes #99 Refs #109",2017-11-16T15:11:00Z,2017-11-16T15:11:00Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9199945a1bcec4852e1cb866eb3642614dd32a48,"Fixed 500 on views page Bug introduced in a4af532a31ece7095d710a1f5abb39ea93fe003f Refs 85",2017-11-16T14:46:49Z,2017-11-16T14:46:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 82261a638bd35c9d69a9582a898cf4dab374f76c,"Turn on auto-escaping in Jinja We had XSS holes! Since we don't do cookies or authentication they shouldn't cause any actual harm, but still really not good. https://github.com/pallets/jinja/issues/528",2017-11-16T01:59:42Z,2017-11-16T01:59:42Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 a4af532a31ece7095d710a1f5abb39ea93fe003f,"Include foreign key info in inspect() output Refs #85",2017-11-16T01:34:32Z,2017-11-16T01:34:32Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 5d8084a28578da2aefa79ad81df9d82e2c265666,"Added a UI for editing named parameters Fixes #96",2017-11-16T01:32:48Z,2017-11-16T01:32:48Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9f47b6e4d80f0f393cf0167a6f48280de6847d1d,"Pin to specific Jinja version Closes #100",2017-11-16T00:14:07Z,2017-11-16T00:14:07Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 f45ca30f91b92ac68adaba893bf034f13ec61ced,"Fixed bug with datasette package --metadata Closes #84",2017-11-15T05:18:29Z,2017-11-15T05:18:29Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 ea183b2ae3d557a370628e236fe606717c704e2a,"Default to 127.0.0.1 not 0.0.0.0 Closes #98",2017-11-15T05:08:46Z,2017-11-15T05:08:46Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 7fe1e8b4827aa1d7e72825da563effdf44ae7233,"Added extra metadata options to publish and package commands You can now run these commands like so: datasette now publish mydb.db \ --title=""My Title"" \ --source=""Source"" \ --source_url=""http://www.example.com/"" \ --license=""CC0"" \ --license_url=""https://creativecommons.org/publicdomain/zero/1.0/"" This will write those values into the metadata.json that is packaged with the app. If you also pass --metadata= that file will be updated with the extra values before being written into the Docker image. Closes #92",2017-11-15T05:02:11Z,2017-11-15T05:02:11Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9cb69cbd45ed8fd93190c47060c19abec80bc4ef,"New ?_sql_time_limit_ms=10 argument to database and table page Allows callers to opt for a lower time limit. Closes #95",2017-11-15T02:55:10Z,2017-11-15T02:55:10Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 0b8c1b0a6da9cb8ac0d28cc90dd783de87554036,"Test for sql_time_limit_ms + sqlite_functions mechanism Added a unit test for the sql_time_limit_ms option. To test this, I needed to add a custom SQLite sleep() function. I've added a simple mechanism to the Datasette class for registering custom functions. I also had to modify the sqlite_timelimit() function. It makes use of a magic value, N, which is the number of SQLite virtual machine instructions that should execute in between calls to my termination decision function. The value of N was not finely grained enough for my test to work - so I've added logic that says that if the time limit is less than 50ms, N is set to 1. This got the tests working. Refs #95",2017-11-15T02:41:03Z,2017-11-15T02:43:34Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 4f7281af8ce421d2f8c57ba43108261ba89d2cd6,"Apply a default height to CodeMirror Makes it a bit more obvious that it's an editable textarea even if the SQL in it is only one line long.",2017-11-15T02:04:04Z,2017-11-15T02:04:04Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 cbb59e3801868e1c284ad50b66343cd4358e516c,Handle tables with names that start with digits,2017-11-14T18:13:37Z,2017-11-15T02:03:21Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 075d422c0a1c70259188dfbd940538c67419694a,Fixed typo,2017-11-14T05:28:02Z,2017-11-14T05:28:02Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 98ae6d6a4085d67a62c129e69e2a9a611f26502d,Added link to examples,2017-11-14T05:27:21Z,2017-11-14T05:27:21Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 b0f3d4e375655f0764f3137dbcede324f9bbc0cb,Version 0.11,2017-11-14T01:48:22Z,2017-11-14T01:48:22Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 fc7c04fe0b2f9daf8875ccaa9625ec80d8eeafe2,"Added 'datasette publish now --force' option This calls now with --force - which is useful as it means you get a fresh copy of datasette even if now has already cached that docker layer.",2017-11-14T01:48:03Z,2017-11-14T01:48:03Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 00527e5c629d9dae56d6228891b40105ff0e34c6,Enable --cors by default in containers,2017-11-14T01:23:22Z,2017-11-14T01:23:22Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 5928c11ee798a232aa4096706cd47e639d1c9fc2,Version 0.10,2017-11-14T00:45:23Z,2017-11-14T00:45:23Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 50e817801f90d07468ea394ef562d55d8940d124,"Fixed #83 Turns out we had a redirect bug as well.",2017-11-14T00:44:08Z,2017-11-14T00:44:43Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 bdfb6d4f1359e98e127a3514248fd19b27b574e9,Fixed package output example,2017-11-13T22:18:44Z,2017-11-13T22:18:44Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 44a199a0625b695492b2a8605030dc61191f39cb,"Stop using sqlite WITH RECURSIVE in our tests The version of Python 3 running in Travis CI doesn't support this.",2017-11-13T22:15:21Z,2017-11-13T22:15:21Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 d75f423b6fcfc074b7c6f8f7679da8876f181edd,Release 0.9,2017-11-13T22:00:39Z,2017-11-13T22:00:53Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 1e698787a4dd6df0432021a6814c446c8b69bba2,"Added --sql_time_limit_ms and --extra-options The serve command now accepts --sql_time_limit_ms for customizing the SQL time limit. The publish and package commands now accept --extra-options which can be used to specify additional options to be passed to the datasite serve command when it executes inside the rusulting Docker containers.",2017-11-13T21:58:34Z,2017-11-13T22:00:53Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 452c5f047ea229dbb444e271183a55381bb4abce,"Added Travis CI badge to README Closes #77",2017-11-13T21:24:14Z,2017-11-13T21:24:14Z,2946d096d0cdefdc017559e6b57e87658736e843,cd792325681cbad9f663f2879d8b69f1edbb678f,107914493,9599,19864447 fe279ab7b4ae99dab295d5cf4d39ad06d782997e,"v0.8 - added PyPI metadata, ready to ship",2017-11-13T21:17:34Z,2017-11-13T21:17:34Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 847f3e0c92b5ac17200b2090bedcc5443bb08e4b,"Implemented offset/limit pagination for views Closes #70",2017-11-13T21:10:55Z,2017-11-13T21:10:55Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 7dac1c05cd40f89a5af34763e4d5614c750575c2,"Improved pagination Closes #78",2017-11-13T20:34:56Z,2017-11-13T20:34:56Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 d76412668f8c12572eb7de57ccb72f1e50306177,Removed rogue middot,2017-11-13T20:34:39Z,2017-11-13T20:34:39Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 79216bac12668eb90ccad65086d4f129476a3969,Added some breathing room to the footer,2017-11-13T19:38:20Z,2017-11-13T19:38:20Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 8252e71da461c425e625e1c3e4ee0bd92ea4cbf0,"Limit on max rows returned, controlled by --max_returned_rows option If someone executes 'select * from table' against a table with a million rows in it, we could run into problems: just serializing that much data as JSON is likely to lock up the server. Solution: we now have a hard limit on the maximum number of rows that can be returned by a query. If that limit is exceeded, the server will return a `""truncated"": true` field in the JSON. This limit can be optionally controlled by the new `--max_returned_rows` option. Setting that option to 0 disables the limit entirely. Closes #69",2017-11-13T19:33:01Z,2017-11-13T19:33:01Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 6b3b05b6db0d2a7b7cec8b8dbb4ddc5e12a376b2,Released 0.7,2017-11-13T18:42:30Z,2017-11-13T18:42:30Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 e838bd743d31358b362875854a0ac5e78047727f,Added README and improved help for 'datasette serve',2017-11-13T18:41:53Z,2017-11-13T18:41:59Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 20d41c8e8e84ab3e8bdb5cca9bd9799da09794ad,"publish now takes a required publisher argument - only current option is 'now' Closes #76",2017-11-13T18:40:51Z,2017-11-13T18:40:51Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 4fec50597a8684756bc96d4a69b6fab809ec6cf6,Include license/source in JSON output if provided,2017-11-13T18:39:25Z,2017-11-13T18:39:25Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599