sha,message,author_date,committer_date,raw_author,raw_author_label,raw_committer,raw_committer_label,repo,repo_label,author,author_label,committer,committer_label
0120c24927af364304574ab1a58e417094e01c22,"extra_css_urls/extra_js_urls in metadata, refs #153
A mechanism in the metadata.json format for adding custom CSS and JS urls.
Create a metadata.json file that looks like this:
{
""extra_css_urls"": [
""https://simonwillison.net/static/css/all.bf8cd891642c.css""
],
""extra_js_urls"": [
""https://code.jquery.com/jquery-3.2.1.slim.min.js""
]
}
Then start datasette like this:
datasette mydb.db --metadata=metadata.json
The CSS and JavaScript files will be linked in the
of every page.
You can also specify a SRI (subresource integrity hash) for these assets:
{
""extra_css_urls"": [
{
""url"": ""https://simonwillison.net/static/css/all.bf8cd891642c.css"",
""sri"": ""sha384-9qIZekWUyjCyDIf2YK1FRoKiPJq4PHt6tp/ulnuuyRBvazd0hG7pWbE99zvwSznI""
}
],
""extra_js_urls"": [
{
""url"": ""https://code.jquery.com/jquery-3.2.1.slim.min.js"",
""sri"": ""sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g=""
}
]
}
Modern browsers will only execute the stylsheet or JavaScript if the SRI hash
matches the content served. You can generate hashes using www.srihash.org",2017-11-29T02:38:15Z,2017-11-29T02:38:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b67890d15d164c7affb2887e5737534628dc6227,"Auto-link column values that look like URLs
Refs #153",2017-11-29T17:05:24Z,2017-11-29T17:05:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8ab3a169d42d096f2c7979c6d3d7746618d30f0b,"CSS styling hooks as classes on the body
Refs #153
Every template now gets CSS classes in the body designed to support custom
styling.
The index template (the top level page at /) gets this:
The database template (/dbname/) gets this:
The table template (/dbname/tablename) gets:
The row template (/dbname/tablename/rowid) gets:
The db-x and table-x classes use the database or table names themselves IF
they are valid CSS identifiers. If they aren't, we strip any invalid
characters out and append a 6 character md5 digest of the original name, in
order to ensure that multiple tables which resolve to the same stripped
character version still have different CSS classes.
Some examples (extracted from the unit tests):
""simple"" => ""simple""
""MixedCase"" => ""MixedCase""
""-no-leading-hyphens"" => ""no-leading-hyphens-65bea6""
""_no-leading-underscores"" => ""no-leading-underscores-b921bc""
""no spaces"" => ""no-spaces-7088d7""
""-"" => ""336d5e""
""no $ characters"" => ""no--characters-59e024""",2017-11-30T07:09:54Z,2017-11-30T07:09:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ffa77f62b46e1ddf2f848f5da10a1e958323a084,"Removed dependency on sanic-jinja2
I wasn't using any of the functionality it adds on top of raw Jinja2.
Refs #12 and #153",2017-11-30T15:51:40Z,2017-11-30T15:51:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7ff51598c468deb1d2c0d4c23a808458c9b1e3a2,"git commit -m ""datasette --template-dir=mytemplates/"" argument
You can now pass an additional argument specifying a directory to look for
custom templates in.
Datasette will fall back on the default templates if a template is not
found in that directory.
Refs #12, #153",2017-11-30T16:05:01Z,2017-11-30T16:05:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3cd06729f457d690603b6060dc552b535517ab09,"Ability to over-ride templates for individual tables/databases
It is now possible to over-ride templates on a per-database / per-row or per-
table basis.
When you access e.g. /mydatabase/mytable Datasette will look for the following:
- table-mydatabase-mytable.html
- table.html
If you provided a --template-dir argument to datasette serve it will look in
that directory first.
The lookup rules are as follows:
Index page (/):
index.html
Database page (/mydatabase):
database-mydatabase.html
database.html
Table page (/mydatabase/mytable):
table-mydatabase-mytable.html
table.html
Row page (/mydatabase/mytable/id):
row-mydatabase-mytable.html
row.html
If a table name has spaces or other unexpected characters in it, the template
filename will follow the same rules as our custom CSS classes
introduced in 8ab3a169d42d096f - for example, a table called ""Food Trucks""
will attempt to load the following templates:
table-mydatabase-Food-Trucks-399138.html
table.html
It is possible to extend the default templates using Jinja template
inheritance. If you want to customize EVERY row template with some additional
content you can do so by creating a row.html template like this:
{% extends ""default:row.html"" %}
{% block content %}
, sql
= 'select ', params = {'id': '1'}` caused by an invalid query when
loading incoming FKs.
The error was ignored due to async but it still got printed to the
console.",2018-04-14T12:06:00Z,2018-04-14T14:24:24Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw
d72201e883c0612d14dfb8ffdd61aa0fe223d94a,"Added unit test for foreign key links in HTML
Needed to add a further unit test for #207",2018-04-14T14:55:27Z,2018-04-14T14:55:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f2b940d6026677f6859d46a4f16fa402745d261d,"Link foreign keys which don't have labels
This renders unlabeled FKs as simple links. I can't see why this would
cause any major problems.
Also includes bonus fixes for two minor issues:
* In foreign key link hrefs the primary key was escaped using HTML
escaping rather than URL escaping. This broke some non-integer PKs.
* Print tracebacks to console when handling 500 errors.",2018-04-14T13:17:20Z,2018-04-14T14:59:59Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw
6b15a53cd3cd40880a5e2d38827d5fac10e4bb5f,Unit test for unlabelled foreign keys from #207,2018-04-14T15:00:54Z,2018-04-14T15:00:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
dd4491dd8112d70d96d73f8f1d12b58cb42fe1bd,Update number of expected tables,2018-04-14T15:03:41Z,2018-04-14T15:16:54Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c857608738d6b6c3e4f3248304a22f8b2648dd3e,"Merge ""Support filtering with units"" from #205",2018-04-14T15:12:34Z,2018-04-14T15:17:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
43ae15c0d14b3e968e8d5bfef72ac0c39783c3a2,"Releasing v0.18 - support for units!
Refs #203",2018-04-14T15:36:10Z,2018-04-14T15:36:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8d394586f55bc4b8ab70476968d08fb6ec8339e5,Added 0.18 to news,2018-04-14T16:04:38Z,2018-04-14T16:04:38Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
efbb4e83374a2c795e436c72fa79f70da72309b8,"Return HTTP 405 on InvalidUsage rather than 500
This also stops it filling up the logs. This happens for HEAD requests
at the moment - which perhaps should be handled better, but that's a
different issue.",2018-04-14T16:11:16Z,2018-04-14T18:00:38Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
92396ae5bacedfcb3d7c81319ccdd04483fd7fd4,Better fix for setup.py version,2018-04-16T04:28:24Z,2018-04-16T04:38:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
904f1c75a3c17671d25c53b91e177c249d14ab3b,"Initial documentation for plugins, closes #213
https://datasette.readthedocs.io/en/latest/plugins.html",2018-04-16T15:12:09Z,2018-04-16T15:12:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
10a34f995c70daa37a8a2aa02c3135a4b023a24c,Removed rogue print() call,2018-04-16T15:38:09Z,2018-04-16T15:38:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1652a9707e325b387ab9550e78eefd48029be44f,Apache 2.0 license badge,2018-04-16T23:10:12Z,2018-04-16T23:10:12Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
2abe539a0f9f967ec0de6894774cb7ee83c4b3b9,Fixed #216 - paginate correctly when sorting by nullable column,2018-04-16T23:51:51Z,2018-04-16T23:52:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
07fc2d113e462bfd8d7d56152c0d1fc55e0fdbe9,"Fix for _sort_desc=sortable_with_nulls test, refs #216",2018-04-17T00:05:03Z,2018-04-17T00:05:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5364fa7f3357f2de24fd45c85832205377642f19,"Revert #216 until I can get tests to pass in Travis
Revert ""Fix for _sort_desc=sortable_with_nulls test, refs #216""
This reverts commit 07fc2d113e462bfd8d7d56152c0d1fc55e0fdbe9.
Revert ""Fixed #216 - paginate correctly when sorting by nullable column""
This reverts commit 2abe539a0f9f967ec0de6894774cb7ee83c4b3b9.",2018-04-17T00:52:22Z,2018-04-17T00:53:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e7c769ef30add8f984eab920b2f503d4b8096bde,"Working implementation of #216 which passes the tests
Reverted commit 5364fa7f3357f2de24fd45c85832205377642f19 (where I removed the
code that didn't work).
Added primary keys to order-by clause for sorting to get tests to pass",2018-04-17T01:41:17Z,2018-04-17T01:41:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ba9bfa583179c25aaef94b1f44da7eba74620b9a,Datasette 0.19: plugin preview (with release notes),2018-04-17T02:12:21Z,2018-04-17T02:12:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bf5ec2d61148f9852441934dd206b3b1c07a512f,Updated PyPI link to pypi.org,2018-04-17T02:24:36Z,2018-04-17T02:24:36Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
1f384e662b58e2eb43ce20842976b677e4478f43,Updated PyPI classifiers,2018-04-18T00:30:46Z,2018-04-18T00:30:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5ebc7137d736d8fa47b24cc799fb93909f49cabb,"Use application/octet-stream for downloadable databses
I'd also like to send the Content-Length here but that's not currently
possible in Sanic - see bug report here:
https://github.com/channelcat/sanic/issues/1194",2018-04-18T00:31:54Z,2018-04-18T00:31:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
aaf59db570ab7688af72c08bb5bc1edc145e3e07,"Longer time limit for test_paginate_compound_keys
It was failing intermittently in Travis - see #209",2018-04-18T01:08:51Z,2018-04-18T01:09:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0f782dd8dfd7c53a9c20bbd2cb8734bb806d928b,Additional test asserts,2018-04-16T20:22:04Z,2018-04-18T01:13:02Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw
136a70d88741e2a5892c3de437064a9d14494d66,"Add column name classes to s, make PK bold",2018-04-17T08:29:48Z,2018-04-18T01:13:02Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw
4586aa506a054d07e674cde8143a3008e6bc5d78,"Don't duplicate simple primary keys in the link column
When there's a simple (single-column) primary key, it looks weird to
duplicate it in the link column.
This change removes the second PK column and treats the link column as
if it were the PK column from a header/sorting perspective.",2018-04-15T21:49:01Z,2018-04-18T01:13:02Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw
b231d4243d748facf1897e7756c2b578bb448edc,Correct escaping for HTML display of row links,2018-04-15T21:48:30Z,2018-04-18T01:13:02Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw
dfb87d012c30a5a3e2d6c4f2cf0a94d2fd080723,"Use to_css_class for table cell column classes
This ensures that columns with spaces in the name will still
generate usable CSS class names. Refs #209",2018-04-18T01:19:21Z,2018-04-18T01:19:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a5792a8c61b9bb6a7a5295c8ec87c2567a5e39a2," | now gets class=""col-X"" - plus added col-X documentation
Refs #209",2018-04-18T02:11:11Z,2018-04-18T02:11:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0bb483ca5bee61c9f7d148b5755d2eed56001aca," /-/static-plugins/PLUGIN_NAME/ now serves static/ from plugins
Refs #214",2018-04-18T02:32:48Z,2018-04-18T02:32:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ca588b6a30e50212f6ac233121745a4216d878f9,Fixed example HTML in CSS docs,2018-04-18T02:35:03Z,2018-04-18T02:35:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1c36d07dd432b9960f4f2d096739460b4fcf8877,"New plugin hooks: extra_css_urls() and extra_js_urls()
Closes #214",2018-04-18T03:12:21Z,2018-04-18T03:12:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
f8f818711b622ec0ac11834a11e214f19c1590c5,Formatting tweak,2018-04-18T04:30:58Z,2018-04-18T04:30:58Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
2b344f6a34d2adaa305996a1a580ece06397f6e4,"Ran black against datasette/cli.py
https://pypi.org/project/black/
cli.py was getting a bit untidy due to all of the heavily annotated
click function methods - used black to clean it up and make it
easier to read.",2018-04-18T14:14:21Z,2018-04-18T14:52:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
404fa2252b070952ff1d1fc8bafc153789f36ada,"datasette publish/package --install option, closes #223
Allows you to specify one or more additional packages to be installed,
useful for deploying plugins.",2018-04-18T14:48:34Z,2018-04-18T14:55:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7581320823d542fd827cb6788be87e6d51aa96dd,"Documentation for --install option, refs #223",2018-04-18T15:05:06Z,2018-04-18T15:05:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6e28ed447f879a46ee5457882cf6ae8b785c87b4,Thanks to #214 JavaScript is no longer 'soon',2018-04-18T15:17:10Z,2018-04-18T15:17:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b55809a1e20986bb2e638b698815a77902e8708d,"Added /-/metadata /-/plugins /-/inspect, closes #225",2018-04-19T05:24:48Z,2018-04-19T05:25:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b52171db1e97e2be1ff2dc505ccf29107288b27b,"Plugins can now bundle custom templates, closes #224
Refs #14",2018-04-19T05:50:27Z,2018-04-19T05:50:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1e4c29501289f7bc7b3b7daf60f1ddd9f66ee338,Fixed out-dated template in documentation,2018-04-19T05:57:31Z,2018-04-19T05:57:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e2750c7cc0585adaa8c866be611089e62961ee35,Add col-X classes to HTML table on custom query page,2018-04-19T15:36:14Z,2018-04-19T15:36:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
72a7ae6859c9f9a951b96c4bd603d44acf634f00,Datasette 0.20: static assets and templates for plugins,2018-04-20T14:32:02Z,2018-04-20T14:32:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3a5d7951ce8f35118ffdd7f8d86e09b909e1218c,Added Datasette 0.20 to news,2018-04-20T14:36:24Z,2018-04-20T14:36:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ae02e9f4acc77019075c0eac9c3a0e96e50c195f,Added datasette-cluster-map blog entry to news,2018-04-20T21:14:35Z,2018-04-20T21:14:35Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
05bdf53358ec6ea81a7dce17290f3db0cd94d23d,Added missing hyphen,2018-04-20T21:15:13Z,2018-04-20T21:15:13Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
a971718d2a5e1b61b5e5c27b0ef6c4ec65616e35,Fix a typo (#232),2018-04-21T00:19:07Z,2018-04-21T00:19:07Z,8795af7c0eb348f1248a81917921e4a7d768bee3,lsb,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45281,lsb,9599,simonw
ea0a761303d84bd73f54a1acedc45b01c38b2da0,Link to documentation from README,2018-04-21T00:20:56Z,2018-04-21T00:20:56Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
f27cabbaf3d834f47bc6bea1de7e27c11fcfa5e7,label_column option in metadata.json - closes #234,2018-04-22T17:51:43Z,2018-04-22T17:53:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f3f42957128c1e7ece584d45d9167f2ac003a3b8,"label_column now defined on the table-being-linked-to, fixes #234",2018-04-22T20:46:18Z,2018-04-22T20:46:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
00ab95430003768067bb496b125a2be93134e73d,Added CSS class rows-and-columns to main table,2018-04-24T01:30:03Z,2018-04-24T01:31:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7f44d31782260f859af1de68ac9db29f72cc6d84,Link to register-of-members-interests tutorial,2018-04-25T17:40:48Z,2018-04-25T17:40:48Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
db7a57a9a62d1d32e204d8acd9ab4341a1436ef9,Added class=rows-and-columns to custom query results table,2018-04-26T03:24:22Z,2018-04-26T03:24:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d3a0069c54aeaeffd197740120e0dca64bd0eeff,"Hide idx_* tables if spatialite detected, closes #228",2018-04-26T03:25:21Z,2018-04-26T03:25:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
02ee31c8b45b872fff91e2059c15a20532e2d035,"New hidden: True option for table metadat, closes #239",2018-04-26T03:42:57Z,2018-04-26T03:42:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
4504d5160b2d86d4dae17b7c2f72bc3b02509c2c,"If max_returned_rows==page_size, increment max_returned_rows
Fixes #230, where if the two were equal pagination didn't work correctly.",2018-04-26T04:04:12Z,2018-04-26T04:04:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f188ceaa2a3a5b2eab83425ad0f00cb0d364e24a,"New ?_size=XXX querystring parameter for table view, closes #229
Also added documentation for all of the _special arguments.
Plus deleted some duplicate logic implementing _group_count.",2018-04-26T04:47:12Z,2018-04-26T04:47:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
aa954382c3776d596f459897b0d984161293529d,"FTS tables now detected by inspect(), closes #240",2018-04-29T00:04:32Z,2018-04-29T00:04:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2565d623af6222f3ed1c630f753b5f95ad749d49,?_shape=array experimental feature,2018-05-01T17:40:33Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
349e262bb1c8f225cf86a5e8542253282809a0eb,"Renamed ?_sql_time_limit_ms= to ?_timelimit, closes #242",2018-05-02T00:11:46Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
690736436bac599ca042d1caa465c6d66d2651f9,"Bump up time limit for test_paginate_tables_and_views
It was intermittently failing in Travis CI on Python 3.5:
https://travis-ci.org/simonw/datasette/jobs/373713476",2018-05-02T00:17:39Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a4cc5dc81364a7300f0ba0bd5711633e803c250a,"New ?_shape=array option + tweaks to _shape, closes #245
* Default is now ?_shape=arrays (renamed from lists)
* New ?_shape=array returns an array of objects as the root object
* Changed ?_shape=object to return the object as the root
* Updated docs",2018-05-02T00:08:16Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bb87cf873017c70a2e9155c336067d4e82481dd6,"Added /-/versions and /-/versions.json, closes #244
Sample output:
{
""python"": {
""version"": ""3.6.3"",
""full"": ""3.6.3 (default, Oct 4 2017, 06:09:38) \n[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)]""
},
""datasette"": {
""version"": ""0.20""
},
""sqlite"": {
""version"": ""3.23.1"",
""extensions"": {
""json1"": null,
""spatialite"": ""4.3.0a""
}
}
}",2018-05-02T08:46:54Z,2018-05-03T14:09:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d4da4c92c8ff19f29ca0cb4b93cb7eaca4553e73,"?_size=max option, closes #249",2018-05-04T18:03:40Z,2018-05-04T18:03:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ca290719edc2ba508585149a3e905f5c0bb23a8d,"Show version on /-/plugins page, closes #248",2018-05-04T18:04:33Z,2018-05-04T18:04:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
4d6a568d6c1c9edabbaa8d58899b3857cd0185a7,"Unit tests for _search= feature, refs #237",2018-05-05T22:01:14Z,2018-05-05T22:01:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1259b8ac0bb25fc8af61c1948e2cc16860dca7ff,"Support _search_COLUMN=text searches, closes #237",2018-05-05T22:33:08Z,2018-05-05T22:33:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
801381b7657dd084c11ac2fb6e3d0194cfaa3455,"Default tests to using a longer timelimit
Every now and then a test will fail in Travis CI on Python 3.5 because it hit
the default 20ms SQL time limit.
Test fixtures now default to a 200ms time limit, and we only use the 20ms time
limit for the specific test that tests query interruption. This should make
our tests on Python 3.5 in Travis much more stable.",2018-05-05T22:41:37Z,2018-05-05T22:44:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d39b2e357e34469728f300273ab07c3904ea7a2b,Travis should now deploy new tags to PyPI if tests pass,2018-05-05T23:15:05Z,2018-05-05T23:15:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
403211de632cd15f0820cc9399305fc43c187b47,Release Datasette 0.21,2018-05-05T23:15:38Z,2018-05-05T23:15:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
62c08d0d7197264af678c2f6e0c6403196217184,"Revert ""Travis should now deploy new tags to PyPI if tests pass""
This reverts commit d39b2e357e34469728f300273ab07c3904ea7a2b.
It failed with this error: https://travis-ci.org/simonw/datasette/jobs/375398977
Uploading distributions to https://upload.pypi.org/legacy/
Uploading datasette-0.21-py3-none-any.whl
100% 182k/182k [00:00<00:00, 694kB/s]
HTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/",2018-05-05T23:22:21Z,2018-05-05T23:22:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8e0f07284789228a98479c082a6dad467b65a35c,Added Datasette 0.21 to News,2018-05-05T23:24:55Z,2018-05-05T23:24:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
e10f8e1274267fdb9021832917c35cfd1ec6c714,Slight simplification of /-/inspect,2018-05-06T13:02:43Z,2018-05-06T13:05:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
04d21ccd089fcaf7a2b535d217fc541ab19aa54b,"/-/versions now includes SQLite fts_versions, closes #252",2018-05-11T13:19:25Z,2018-05-11T13:19:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
694f8457153eba715db98098c412a96fcfbb944f,"Documentation for SQLite full-text search support, closes #253",2018-05-12T12:06:38Z,2018-05-12T12:06:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1c815207cca70107711d514d3303986333da8b7a,Update conf.py,2018-05-12T12:08:11Z,2018-05-12T12:08:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
70ff615f1b831c4dce936e9f9fc57a9e8e71e547,"utils.path_with_added_args() improvements
* Now covered by unit tests
* Preserves original order
* Can handle multiple args of the same name, e.g. ?bar=1&bar=2",2018-05-12T21:35:25Z,2018-05-12T21:44:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
eaaa3ea1498df0d4790f814e3d2f3fcc5ea28429,"Initial implementation of facets, plus tests and docs
Refs #255",2018-05-12T22:29:06Z,2018-05-12T22:29:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
4301a8f3ac69f2f54916e73cc90fcf216a9a3746,"Case insensitive querystring comparison, fix Python 3.5",2018-05-12T22:49:37Z,2018-05-12T22:49:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1f69269fe93e4cd42e56890126cc0dbcf719c6cb,"Refactored views into new views/ modules, refs #256",2018-05-13T12:44:22Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2b79f2bdeb1efa86e0756e741292d625f91cb93d,path_with_added_args now preserves order in Python 3.5,2018-05-14T03:02:07Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
368638555160fb9ac78f462d0f79b1394163fa30,Ran black source formatting tool against new views/ and app.py,2018-05-13T12:55:15Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
cf1fe693e5741035df65cc9d69c4af32befd021d,Used isort to re-order my imports,2018-05-13T12:58:28Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
eaf715a60ae3c3180d0949da8292e2627b72e287,Extract /-/plugins view into a method,2018-05-13T13:06:02Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
062303419cef9bbf72927c4ac4efdb185829c03b,Hide facet button is now a ā - refs #255,2018-05-16T14:37:05Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
142a550a99f3c78349a10ed79f1b513fe704a169,"Facet results now have ""truncated"" field
To indicate if there was more than 20 distinct values. Refs #255",2018-05-15T09:50:27Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1dc94f6eaa98431da9c61e803e2b05b082f9c6e8,"Facets can now be toggled off again, refs #255",2018-05-15T10:11:52Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2f81552cd29125e3916763f05949125a49c2dde8,Never suggest a facet if it only results in on option,2018-05-15T03:05:10Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
514873c6295dcd467d806064a549e46b4ea3279a,Fix bug with toggle_url on integer facets,2018-05-15T10:19:09Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
566f2d31d6f4950200b64424f6f9cfdd06343f4e,"Clarified relationship between metadata and _facet= facets, updated docs - refs @255",2018-05-16T15:15:23Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
62f1d3a6cbf7fca5c0e85c13a77830755c314883,"class=""suggested-facets""",2018-05-16T05:08:58Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
63aac537f238239d5fb7f4934545404d37d874f6,"1,442 format for facet counts, refs #255",2018-05-15T12:14:14Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6d12580ed74ff0baf081bf9fabc14eeaf8a3105c,"Foreign key facets are now expanded to labels, refs #255",2018-05-15T15:52:02Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
858d79fe938afbe04e2b249da71860e812869ec8,Typo fix,2018-05-16T15:15:56Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8a0bd68c393423a6c3bdae27d3826e6161a101c1,Undid some slightly weird code formatting by 'black',2018-05-15T13:23:20Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8a4ed052a5034d3f12daf5eedabb0808a0bf20fc,path_with_added_args now works with multiple existing args,2018-05-14T22:09:09Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
91bf5f56bb301fb564640fa6b1bb8a6e981ff721,"Show enabled facets in flexbox columns, refs #255",2018-05-16T05:06:05Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9959a9e4deec8e3e178f919e8b494214d5faa7fd,"Added screenshots to facets and full_text_search docs, refs #255",2018-05-16T15:24:44Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a82175276c3f5898161c7630f669d0b8990d7a16,_sort/_next links now use new path_with_replaced_args method,2018-05-15T09:34:45Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a892f9a0bd6667c1ad4c590016d6845cd98a645a,Use escape_sqlite() more consistently,2018-05-15T15:00:39Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b0d2bb3e43dd567b96b6a4ddc3c1a09a84c2c42d,Facets no longer consider null values,2018-05-14T22:19:43Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b263da78e329853ceea41c4ecabe7e8bb08d20a7,"Reliable sort order for facets in Python 3.5, fixing test - refs #255",2018-05-16T14:43:13Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ba515fc56e6cf77ea299b6d534be7ccfa925a533,Removed un-used variable,2018-05-15T10:08:07Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ddef2298509e3027a44971a681ad7855bf07b51a,"Initial implementation of suggested facets
Causes tests to break at the moment",2018-05-14T22:09:42Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
de05cf21aa6a922ee2825b5098b108dd23fb0755,"Facet ""selected"" key and toggle_url now toggles, refs #255",2018-05-14T20:42:10Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f36c9d4b4ca77dd42495f31d02e89b4c10833531,"Facet toggling now works for integer columns, refs #255",2018-05-14T21:33:24Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f4943ca89bf400350205788f9130c135aaf7b85b,"_facet selections persist through table form, refs #255",2018-05-15T10:28:48Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
96aac7f9e94d94243a7ee524d0ad25501ec98f72,Facet documentation tweaks,2018-05-16T15:45:12Z,2018-05-16T20:50:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7261584f0413b10a0ece98be802a6c7099fd53de,"Display currently selected facets better, refs #255",2018-05-17T02:42:31Z,2018-05-17T02:42:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5e78d11c247f88946f4c0929b075df327235fe4a,Docs: Speeding up facets with indexes,2018-05-17T04:08:50Z,2018-05-17T04:08:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8003a13331cb78774d613a8f3f1b204a33918088,"Empty string """" facets can now be selected in UI, refs #255",2018-05-17T13:34:42Z,2018-05-17T13:34:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
cef9a9a8701af86cc7df8b7939398185f0a76f5f,"--limit= mechanism plus new limits for facets
Replaced the --max_returned_rows and --sql_time_limit_ms options to
""datasette serve"" with a new --limit option, which supports a larger
list of limits.
Example usage:
datasette serve --limit max_returned_rows:1000 \
--limit sql_time_limit_ms:2500 \
--limit default_facet_size:50 \
--limit facet_time_limit_ms:1000 \
--limit facet_suggest_time_limit_ms:500
New docs: https://datasette.readthedocs.io/en/latest/limits.html
Closes #270
Closes #264",2018-05-18T05:08:26Z,2018-05-18T05:08:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
08f4b7658fec97419eb34118a2cd5c8be805673f,"Show facets that timed out using new InterruptedError
If the user requests some _facet= options that do not successfully execute in
the configured facet_time_limit_ms, we now show a warning message like this:
These facets timed out: rowid, Title
To build this I had to clean up our SQLite interrupted logic. We now raise a
custom InterruptedError exception when SQLite terminates due to exceeding a
time limit.
In implementing this I found and fixed a logic error where invalid SQL was
being generated in some cases for our faceting calculations but the resulting
sqlite3.OperationalError had been incorrectly captured and treated as a
timeout.
Refs #255
Closes #269",2018-05-18T06:07:45Z,2018-05-18T06:11:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
39426ff0e43a406f42c03692d3dc9d4a1b7b9d52,"Added /-/limits and /-/limits.json, closes #270",2018-05-18T06:16:28Z,2018-05-18T06:16:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2c2e67b9bb5f1f6b82348a16afe4a07e8073ab54,Updated default facet limits in docs,2018-05-18T15:50:37Z,2018-05-18T15:50:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
b8227556c6ef040e2299b113d1ec6e220586ffc3,"Suggested facets now use #fragment links
Useful for pages with large amounts of content at the top like on
https://fivethirtyeight.datasettes.com/fivethirtyeight-469e30d/nba-elo%2Fnbaallelo",2018-05-18T16:18:41Z,2018-05-18T16:18:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
918de9403e09ba607996a985be1779eddcf76151,"Only apply responsive table styles to .rows-and-column
Otherwise they interfere with tables in the description, e.g. on
https://fivethirtyeight.datasettes.com/fivethirtyeight/nba-elo%2Fnbaallelo",2018-05-20T15:10:46Z,2018-05-20T15:10:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f6183ff5fa715c68d13d6ae8c7b3b9f2c6ffc9f8,"Renamed --limit to --config, added --help-config, closes #274
Removed the --page_size= argument to datasette serve in favour of:
datasette serve --config default_page_size:50 mydb.db
Added new help section:
$ datasette --help-config
Config options:
default_page_size Default page size for the table view
(default=100)
max_returned_rows Maximum rows that can be returned from a table
or custom query (default=1000)
sql_time_limit_ms Time limit for a SQL query in milliseconds
(default=1000)
default_facet_size Number of values to return for requested facets
(default=30)
facet_time_limit_ms Time limit for calculating a requested facet
(default=200)
facet_suggest_time_limit_ms Time limit for calculating a suggested facet
(default=50)",2018-05-20T17:01:49Z,2018-05-20T17:01:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f00137c8ac2bdb9767733b0d72bf204b034644a7,Only apply responsive table CSS to .rows-and-columns,2018-05-20T17:45:01Z,2018-05-20T17:45:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bd3353a31f930c2e504094d79513cadbade43cda,"Added docs for introspection endpoints
https://datasette.readthedocs.io/en/latest/introspection.html",2018-05-20T21:28:53Z,2018-05-20T21:28:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0b8e5981a37c0da75ce4f4e6b6b5275681e2e0c5,Typo fix,2018-05-20T21:30:48Z,2018-05-20T21:30:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
558d9d7bfef3dd633eb16389281b67d42c9bdeef,Datasette 0.22: Datasette Facets,2018-05-20T23:41:47Z,2018-05-20T23:41:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d59366d36e95b973d674e62edff0168d5bdd90eb,Link to /-/plugins example,2018-05-21T04:07:26Z,2018-05-21T04:07:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
58b5a37dbbf13868a46bcbb284509434e66eca25,Refactor inspect logic,2018-05-21T08:02:34Z,2018-05-22T14:03:06Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw
49f317752cfe89c5641165a490eef49e025752a7,Move version info back to separate module,2018-05-22T17:33:57Z,2018-05-22T19:35:21Z,106fe7fbf8b80a01038e265a137b3b703422db48,Robert Gieseke,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,198537,rgieseke,9599,simonw
a113c28ea1924d83e6789ae5e0805312e55b4490,"Add version number support with Versioneer
Repo:
https://github.com/warner/python-versioneer
Versioneer Licence:
Public Domain (CC0-1.0)
Closes #273",2018-05-22T15:33:29Z,2018-05-22T19:35:21Z,a1a72b19e432a3145fdb845aab2927c00d8a8426,Robert Gieseke,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,198537,rgieseke,9599,simonw
fc47dacbbd4c4d245d7144e4cc014d3303f84b9a,"Add `__version_info__` derived from `__version__`
This might be tuple of more than two values (major and minor
version) if commits have been made after a release.",2018-05-22T17:18:00Z,2018-05-22T19:35:21Z,106fe7fbf8b80a01038e265a137b3b703422db48,Robert Gieseke,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,198537,rgieseke,9599,simonw
2bfd111d65c892e54b06c2c9498ce2b4cc3e67ff,"Faceting no longer breaks pagination, fixes #282",2018-05-23T13:41:14Z,2018-05-23T13:41:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5d6252788230d168ba09f379d1d2af867e3302ab,0.22.1 bugfix release,2018-05-23T14:00:01Z,2018-05-23T14:00:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bd30c696e18927207358ee9d63174a5c41c8297e,"Build Dockerfile with recent Sqlite + Spatialite (#280)
Closes #278
```bash
$ docker run --rm -it datasette spatialite
SpatiaLite version ..: 4.4.0-RC0 Supported Extensions:
- 'VirtualShape' [direct Shapefile access]
- 'VirtualDbf' [direct DBF access]
- 'VirtualXL' [direct XLS access]
- 'VirtualText' [direct CSV/TXT access]
- 'VirtualNetwork' [Dijkstra shortest path]
- 'RTree' [Spatial Index - R*Tree]
- 'MbrCache' [Spatial Index - MBR cache]
- 'VirtualSpatialIndex' [R*Tree metahandler]
- 'VirtualElementary' [ElemGeoms metahandler]
- 'VirtualKNN' [K-Nearest Neighbors metahandler]
- 'VirtualXPath' [XML Path Language - XPath]
- 'VirtualFDO' [FDO-OGR interoperability]
- 'VirtualGPKG' [OGC GeoPackage interoperability]
- 'VirtualBBox' [BoundingBox tables]
- 'SpatiaLite' [Spatial SQL - OGC]
PROJ.4 version ......: Rel. 4.9.3, 15 August 2016
GEOS version ........: 3.5.1-CAPI-1.9.1 r4246
TARGET CPU ..........: x86_64-linux-gnu
the SPATIAL_REF_SYS table already contains some row(s)
SQLite version ......: 3.23.1
Enter "".help"" for instructions
SQLite version 3.23.1 2018-04-10 17:39:29
Enter "".help"" for instructions
Enter SQL statements terminated with a "";""
spatialite>
```
```bash
$ docker run --rm -it datasette python -c ""import sqlite3; print(sqlite3.sqlite_version)""
3.23.1
```
Also updates the query used to check for FTS5 as the old version wasn't
detecting FTS5 for some reason.",2018-05-23T17:43:34Z,2018-05-23T17:43:34Z,a901819e7fab7b80a873df43d5123bb3252681f8,Ravi Kotecha,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,565628,r4vi,9599,simonw
3d9baf3c2f2f745e6949973f18480092f189116c,Set theme jekyll-theme-leap-day,2018-05-24T16:55:19Z,2018-05-24T16:55:19Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
28a52fcffb869f5e83ca2fad53738dc25eec425d,Set theme jekyll-theme-architect,2018-05-24T16:56:21Z,2018-05-24T16:56:21Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
81df47e8d95df895bec792466b3d7b34c8d5c509,"Moved .execute() method from BaseView to Datasette class
Also introduced new Results() class with results.truncated, results.description, results.rows",2018-05-25T00:15:37Z,2018-05-25T00:15:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
50920cfe3d42483f15e2077c345427059fd19941,"allow_facet, allow_download, suggest_facets boolean --config
Refs #284",2018-05-25T01:12:27Z,2018-05-25T01:12:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f722b0a730377d28e3b4e8292da2036f32896e02,"allow_sql config option to disable custom SQL, closes #284",2018-05-25T05:50:50Z,2018-05-25T05:50:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b9b93583467986a72f34732fc87a201157ad83ea,"boolean --config are now case insensitive, refs #284",2018-05-25T05:53:58Z,2018-05-25T05:53:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f98e62fe5ac48cd31362b7e2001b0262fa68ef3b,Fix for 500 error on /db?sql=x,2018-05-25T22:08:57Z,2018-05-25T22:08:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
37f8361c6f7b3eeaa351c0cd93b6db1fdd2744ab,"Initial documentation on using SpatiaLite
https://datasette.readthedocs.io/en/latest/spatialite.html",2018-05-26T18:04:09Z,2018-05-26T18:04:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
df71e8cea87542aa7a7be84fabca0adc1177728d,Fixed documentation typo,2018-05-26T18:04:43Z,2018-05-26T18:04:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
08029a2f8f67bbcd42bea755de5fb7db12b2c275,Hyperlink to www.srihash.org,2018-05-26T19:46:24Z,2018-05-26T19:46:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
a6afc21aba50e84ae5ca4dc7c899dfd6fd1619d9,Test that ensures all config options are documented,2018-05-26T22:11:04Z,2018-05-26T22:11:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b463f60158ccf791809cb51cba2cf7a14e491b36,"?_ttl= parameter and default_cache_ttl config
Refs #285, Closes #289",2018-05-26T22:17:33Z,2018-05-26T22:17:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
276913b74803554e03e1617389f6998885ea8c06,"?_shape=arrayfirst, closes #287",2018-05-27T00:32:15Z,2018-05-27T00:32:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7944a8b0de9f892713da9d31ef0085cd9bcc5ff3,"Added num_sql_threads config option, closes #285",2018-05-27T00:43:22Z,2018-05-27T00:43:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c972d79b5a633cbd3e6a7934ae58bd60c57da3a2,Added docs on Importing shapefiles into SpatiaLite,2018-05-27T01:39:26Z,2018-05-27T01:39:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
02870e573154517f129cbc85e437d5f0105d7cbe,"Filter out duplicate JS/CSS URLs, refs #291 (testme)",2018-05-27T08:45:03Z,2018-05-27T08:45:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
76d11eb768e2f05f593c4d37a25280c0fcdf8fd6,"New ?_json=colname argument for returning unescaped JSON
Also extracted docs for special JSON arguments into a new section.
Closes #31",2018-05-28T18:08:39Z,2018-05-28T18:08:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a4d6acc23943759b46fa90ec68e500016b933410,"Use scope='session' for all fixtures
This means they will only be executed once which makes sense
since the database they create is immutable.",2018-05-28T20:41:06Z,2018-05-28T20:41:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
fefb0db8ae15199d0204af859ba1edc6ae98f84b,"Unit test for 02870e57, closes #291",2018-05-28T20:41:53Z,2018-05-28T20:41:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
27c10f6482858f9654e31c800884d75304d50ed5,Missing half of last commit fefb0db8ae15,2018-05-28T20:42:48Z,2018-05-28T20:42:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
98c8f0e7285fb58b7cbb38304e2ed4576774ad91,Moved plugin HTML tests from test_html to test_plugins,2018-05-28T21:23:48Z,2018-05-28T21:23:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b0a95da96386ddf99816911e08df86178ffa9a89,"Show more useful error message for SQL interrupted, closes #142",2018-05-28T21:24:19Z,2018-05-28T21:24:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
27eff1809c21b7c1ae2ba33ebde1dac7f8bc8fbc,Expanded SpatiaLite docs to cover GeoJSON plus lat-lon spatial indexes,2018-05-30T02:32:30Z,2018-05-30T02:32:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1a8b0213e0152234b25f2777d5c6f61a41834c8a,Fixed broken test introduced in b0a95da96,2018-05-30T02:38:21Z,2018-05-30T02:38:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d69ebce53385b7c6fafb85fdab3b136dbf3f332c,Fixed broken :ref:,2018-05-30T03:11:24Z,2018-05-30T03:11:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
16398641d95db7374fddccc79d0f08e4d4c96ee1,SQL syntax highlighting in docs,2018-05-31T13:17:53Z,2018-05-31T13:17:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
969771770fcf795daace72e2310804e699067cfe,"Upgrade pytest to 3.6.0
https://github.com/pytest-dev/pytest/issues/1875 made it impossible to declare
a function as a fixture multiple times, which we were doing across different
modules. The fix was to move our @pytest.fixture calls into decorators in the
tests/fixtures.py module.",2018-05-31T13:40:30Z,2018-05-31T13:42:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b18e4515855c3f1eeca3dfcccdbb6df05869084a,"datasette publish/package --spatialite, closes #243
New command-line argument which causes SpatiaLite to be installed and
configured for the published Datasette.
datasette publish now --spatialite mydb.db",2018-05-31T14:16:50Z,2018-05-31T14:16:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a80e1d50b9394feee267d76398b5ab249817156c,"Show error on 'datasette publish heroku --spatialite', refs #301",2018-05-31T14:21:27Z,2018-05-31T14:21:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7381af85e6e8a2aa13cb308d37ebfe7550dd7331,"Hide sort select on larger screens, closes #300",2018-05-31T14:43:06Z,2018-05-31T14:43:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9277c6236a8216450d4ebe3242ce6d56c1a7e437,Fixed tests I broke in b18e45158,2018-05-31T14:47:22Z,2018-05-31T14:47:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
29edbe90ffcdd4f6c2ff564ab1938dff151b40c4,"New cache_size_kb config for SQLite, closes #304",2018-06-04T16:02:07Z,2018-06-04T16:02:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b252bdb7404de88b4fa6f5495a83a712201a12ce,Documented how to set multiple --config at once,2018-06-05T01:45:47Z,2018-06-05T01:45:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
864328e074d771a9b50fb1b01392541d7045fbb5,"Test client wrapper removing need for gather_request - refs #272
As part of decoupling from Sanic, this will make it easier to run tests
against ASGI instead.",2018-06-05T03:53:12Z,2018-06-05T03:53:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a246f476b4fe490f5450836b22961bc607e6b4b0,"Moved JsonDataView into views/special,py",2018-06-07T15:22:29Z,2018-06-07T15:22:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3a79ad98eafb9da527a3b9d9d8fbeb81936b02e7,"Basic CSV export, refs #266
Tables and custom SQL query results can now be exported as CSV.
The easiest way to do this is to use the .csv extension, e.g.
/test_tables/facet_cities.csv
By default this is served as Content-Type: text/plain so you can see it in
your browser. If you want to download the file (using text/csv and with an
appropriate Content-Disposition: attachment header) you can do so like this:
/test_tables/facet_cities.csv?_dl=1
We link to the CSV and downloadable CSV URLs from the table and query pages.
The links use ?_size=max and so by default will return 1,000 rows.
Also fixes #303 - table names ending in .json or .csv are now detected and
URLs are generated that look like this instead:
/test_tables/table%2Fwith%2Fslashes.csv?_format=csv
The ?_format= option is available for everything else too, but we link to the
.csv / .json versions in most cases because they are aesthetically pleasing.",2018-06-15T06:51:23Z,2018-06-15T06:51:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5bda4a477c52b6d1cd7d0ca25382dbb20bda40ea,"Fixed CSV tests - Python 3.6.5 and 3.6.3 apparently differ
The test used to expect CSV to come back like this:
hello
world
""""
With the final blank value encoded in quotes.
Judging by Travis failures, this behaviour changed between Python 3.6.3 and
3.6.5:
https://travis-ci.org/simonw/datasette/jobs/392586661",2018-06-15T07:01:48Z,2018-06-15T07:01:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d0a578c0fc07b9d9208cd9de981bdf7385a26c49,"Switch back from python:3.6-slim-stretch to python:3.6
Turns out slim-stretch doesn't include gcc which means it can't build various
Sanic dependencies. So `datasette publish now ...` was broken.
Fixes #310",2018-06-16T16:28:55Z,2018-06-16T16:28:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7e0caa1e62607c6579101cc0e62bec8899013715,Extract string-to-bool logic into utils.py,2018-06-16T16:44:31Z,2018-06-16T16:44:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0c22fa8f09e9fce7434d5fc83bcfb73c25795205,"Cleaned up view_definition/table_definition code in table view
Also moved those out of standard JSON into just the HTML template context",2018-06-16T17:33:17Z,2018-06-16T17:33:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ed631e690b81e34fcaeaba1f16c9166f1c505990,"?_labels= and ?_label=COL to expand foreign keys in JSON/CSV
These new querystring arguments can be used to request expanded foreign keys
in both JSON and CSV formats.
?_labels=on turns on expansions for ALL foreign key columns
?_label=COLUMN1&_label=COLUMN2 can be used to pick specific columns to expand
e.g. `Street_Tree_List.json?_label=qSpecies&_label=qLegalStatus`
{
""rowid"": 233,
""TreeID"": 121240,
""qLegalStatus"": {
""value"" 2,
""label"": ""Private""
}
""qSpecies"": {
""value"": 16,
""label"": ""Sycamore""
}
""qAddress"": ""91 Commonwealth Ave"",
...
}
The labels option also works for the HTML and CSV views.
HTML defaults to `?_labels=on`, so if you pass `?_labels=off` you can disable
foreign key expansion entirely - or you can use `?_label=COLUMN` to request
just specific columns.
If you expand labels on CSV you get additional columns in the output:
`/Street_Tree_List.csv?_label=qLegalStatus`
rowid,TreeID,qLegalStatus,qLegalStatus_label...
1,141565,1,Permitted Site...
2,232565,2,Undocumented...
I also refactored the existing foreign key expansion code.
Closes #233. Refs #266.",2018-06-16T22:18:57Z,2018-06-16T22:18:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0357774c946b7a35871715d7fc23b3f04f519af8,Renamed test_tables.db to fixtures.db in unit tests,2018-06-17T18:34:16Z,2018-06-17T18:34:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6a32df334de1a7e3579879dd7ee073613be9b91b,"Improved fixtures to support publication
The fixtures database created by our unit tests makes for a good ""live"" demo
of Datasette in action.
I've improved the metadata it ships with to better support this use-case.
I've also improved the mechanism for writing out fixtures: you can do this:
python tests/fixtures.py fixtures.db
To get just the fixtures database written out... or you can do this:
python tests/fixtures.py fixtures.db fixtures.json
To get metadata which you can then serve like so:
datasette fixtures.db -m fixtures.json
Refs #313",2018-06-17T19:16:04Z,2018-06-17T19:16:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
538565de3a126a6aa1cdb4b4ba91135507411af0,"datasette publish now --token=X argument
Lets you specify the auth token to use when deploying to Now.
Tokens can be created at https://zeit.co/account/tokens",2018-06-17T19:46:52Z,2018-06-17T21:16:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
db1e6bc182d11f333e6addaa1a6be87625a4e12b,"--version-note for datasette, datasette publish and datasette package
This is a relatively obscure new command-line argument that helps solve the
problem of showing accurate version information in deployed instances of
Datasette even if they were deployed directly from source code.
You can pass --version-note to datasette publish and package and it will then
in turn be passed to datasette when it starts:
datasette --version-note=hello fixtures.db
Now if you visit /-/versions.json you will see this:
{
""datasette"": {
""note"": ""hello"",
""version"": ""0+unknown""
},
""python"": {
""full"": ""3.6.5 (default, Jun 6 2018, 19:19:24) \n[GCC 6.3.0 20170516]"",
""version"": ""3.6.5""
},
...
}
I plan to use this in some Travis CI configuration, refs #313",2018-06-17T20:14:55Z,2018-06-17T21:19:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f0c17229b7a7914d3da02e087dfd0e25d8321448,"Deploy latest.datasette.io on commit to master - #313
If the tests pass in Travis CI, deploy an instance containing Datasette's test
fixtures to https://latest.datasette.io/
Also set up an alias of truncated-commit-hash.datasette.io",2018-06-17T21:24:39Z,2018-06-17T21:24:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
438244c2853185e46bef8089ff9bb934442ec14b,"Try using a different name for each Now deploy
Refs #313",2018-06-17T21:39:45Z,2018-06-17T21:39:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
958b75c69841ef5913da86e0eb2df634a9b95fda,"Set Now deployment name with datasette publish, refs #313",2018-06-17T21:46:30Z,2018-06-17T21:46:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c25c3e51c97a807ae8cb6c78e2aea5439d04acbc,Link to latest.datasette.io from README,2018-06-17T22:02:20Z,2018-06-17T22:02:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
6a32684ebba89dfe882e1147b23aa8778479f5d8,"Release tagged versions to PyPI and now alias
When a new tagged version is pushed, this should:
* bdist_wheel it and release to https://pypi.python.org/pypi/datasette
* Set an alias of v0-22-1.datasette.io for the deployed demo",2018-06-17T22:19:21Z,2018-06-17T22:24:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0d7ba1ba676828dc7c8dda78ebe7921f7986fc18,"Default to _labels=on on JSON/CSV links with foreign keys, refs #266",2018-06-17T22:56:55Z,2018-06-17T22:56:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
83f4ef7ec7aa5b4cac9892b3e80cbca00c9080db,"Improved UI for CSV/JSON export, closes #266",2018-06-18T06:03:22Z,2018-06-18T06:05:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
398d29c2873ad22a8e779fab12e65bdbf598f823,"Don't link to #export on custom query results
The advanced CSV export options don't work for custom SQL queries.
Refs #266",2018-06-18T06:14:48Z,2018-06-18T06:14:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bb4a9fbf362d0791e148195d86815d65ebc26fba,"Docs for CSV export, refs #266",2018-06-18T14:12:21Z,2018-06-18T14:12:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
04c896160a9981d37beb71529ac717a6fcf1b195,"Renamed 'stream all records' to 'stream all rows', refs #266",2018-06-18T14:25:44Z,2018-06-18T14:25:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
54f805dca3fd9e05d9276aedec83036a2e36578c,Advanced export box now obeys allow_csv_stream config - refs #266,2018-06-18T15:11:11Z,2018-06-18T15:11:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e04f5b0d348ef7275a0a5ab9eb53527105132885,Release notes for 0.23,2018-06-18T15:11:57Z,2018-06-18T15:11:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
fdfbbbb9ee0d02fd4d43dfc42382252fa2287d6d,Default 'expand labels' to checked in CSV advanced export,2018-06-20T16:15:33Z,2018-06-20T16:15:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
aeeb50f61b7b1bf8ccb61448f8b8253db457d350,"Correctly display facets with value of 0 - fixes #318
Also added comprehensive unit test for facet display HTML.",2018-06-21T04:30:13Z,2018-06-21T04:30:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3683a6b626b2e79f4dc9600d45853ca4ae8de11a,"Docs + example of canned SQL query using || concatenation
Closes #321",2018-06-21T04:54:36Z,2018-06-21T04:54:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3b53eea38267420bb78a2a604e23e5f816eccce2,"Fixed incorrect display of compound primary keys with foreign key references
Closes #319",2018-06-21T14:56:28Z,2018-06-21T14:56:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
97ae66ccabd0e2eae5a7880ac93bd2ac26bb355e,"404s ending in slash redirect to remove that slash, closes #309",2018-06-21T15:13:07Z,2018-06-21T15:13:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
120f20cd97c14b4d9102d9c309b27cc2c0e4ee17,"Allow ""."" in database filenames, closes #302",2018-06-21T15:21:09Z,2018-06-21T15:21:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e843ce26e536bb1a105da808c8f765b2c56e9c7b,"Correctly display empty strings in HTML table, closes #314",2018-06-21T15:26:18Z,2018-06-21T15:26:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0104dccca9d04916a9a5ba03874c92d9a9704096,"Updated Travis password, refs #317",2018-06-21T15:33:14Z,2018-06-21T15:33:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
dea86b9fba78e032ad09673e884e764387daf209,Changelog for 0.23.1,2018-06-21T15:37:13Z,2018-06-21T15:37:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e7566cc59d4b02ef301054fd35fdde6c925a8e38,Link to 0.23.1 release notes from news,2018-06-21T16:01:38Z,2018-06-21T16:01:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
64c2fea8dfcecb06a3f9c674a96948e7366985fc,"CSV export now respects --cors, fixes #326",2018-06-24T00:59:37Z,2018-06-24T00:59:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
ad66c0da2bb171cdcb0d13b307b3fd7900b77963,"Installation instructions, including docker image - closes #328",2018-06-28T03:59:58Z,2018-06-28T03:59:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7d9bcdd3071c66b753f3c148bec8ef1b2b54757b,Documentation tweaks,2018-06-28T05:07:53Z,2018-06-28T05:07:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
29bd6065147818263fb7c19e0cfc5228c5cf7fb4,Documentation typo,2018-06-28T05:09:03Z,2018-06-28T05:09:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
24af1004a42029f5a2f1a50541780814e9e2578a,Added datasette-vega to news section,2018-06-29T14:53:36Z,2018-06-29T14:53:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
71b46fd9f5b323d746b108d1f674b4007d5c252c,Cleaned up view constructors to accept just a datasette instance,2018-06-30T14:51:57Z,2018-07-08T02:58:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d08faa89872d9ec8d3c8e76d85164ccd84596811,"Fix for weird nested exception in RequestTimeout
I saw this error:
sanic.exceptions.RequestTimeout: Request Timeout
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File ""/Users/simonw/Dropbox/Development/datasette/venv/lib/python3.6/site-packages/sanic/handlers.py"", line 82, in response
response = handler(request=request, exception=exception)
File ""/Users/simonw/Dropbox/Development/datasette/datasette/app.py"", line 512, in on_exception
if request.path.split(""?"")[0].endswith("".json""):
AttributeError: 'NoneType' object has no attribute 'path'
Strangely ""if request and request.path..."" did not work here, because the
Sanic Request class extends builtins.dict and hence evaluates to False if it
has no headers.",2018-06-29T12:52:51Z,2018-07-08T02:58:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8ac71a61278d2d1b24ad3f3ab68048dac31467bc,Removed rogue print statement left over from #309,2018-07-08T03:09:45Z,2018-07-08T03:09:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6541ce633ebf56770106221b0984751270adb2c7,"Fix for row pages for tables with / in, closes #325",2018-07-08T05:21:51Z,2018-07-08T05:21:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6df6f712b36f0fe75694174906e31242427a8d1d,Release notes for 0.23.2,2018-07-08T05:28:45Z,2018-07-08T05:28:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
17863d108b9c8672b5e102d97858a96ca715a9d6,"datasette publish heroku now supports --extra-options, closes #334",2018-07-10T01:45:56Z,2018-07-10T01:45:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2db2ae4f21d0ba5b84359f611da7b123262d92c7,"Show custom error message if SpatiaLite needed, closes #331",2018-07-10T15:13:27Z,2018-07-10T15:13:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
fc9b1cc1368cff455478c10f7b400bf5afc7d8e3,"New truncate_cells_html config for truncating cells, closes #330",2018-07-10T16:20:41Z,2018-07-10T16:20:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9281a4a804961b06ab133e042db839402f8a7796,New tagline: 'A tool for exploring and publishing data',2018-07-11T01:57:54Z,2018-07-11T02:05:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
aec3ae53237e43b0c268dbf9b58fa265ef38cfe1,"Docs for datasette publish and package, closes #337
Also introduced a new mechanism for ensuring the --help examples in the
documentation reflect the current output of the --help commands, via a new
update-docs-help.sh script. Closes #336",2018-07-11T02:04:13Z,2018-07-11T02:05:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
130dc8823ebdcc1834fc7c4a03c996b13fc1e444,Run Travis CI against Python 3.7 as well,2018-07-12T17:36:00Z,2018-07-12T17:36:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
31a5d8fa77be68d4f837f0a80a611675dce49f4b,"Bump aiohttp to fix compatibility with Python 3.7
Tests failed here: https://travis-ci.org/simonw/datasette/jobs/403223333",2018-07-12T17:41:20Z,2018-07-12T18:07:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2f34da0ab2594d917e14fd0dd90ad07872941b8d,Initial,2018-07-14T03:56:21Z,2018-07-14T03:56:21Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
58fec99ab0a31bcf25968f2aa05d37de8139b83c,"Allow app names for `datasette publish heroku`
Lets you supply the `-n` parameter for Heroku deploys, which also lets
you update existing Heroku deployments.",2018-07-14T13:10:49Z,2018-07-14T14:04:42Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,45057,russss,9599,simonw
6e37f091edec35e2706197489f54fff5d890c63c,"Support title/description for canned queries, closes #342
Demo here: https://latest.datasette.io/fixtures/neighborhood_search",2018-07-16T02:33:30Z,2018-07-16T02:33:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
4e82d0e64d1e8c085375278e5b8ecadeab56ddb5,Removed unused imports,2018-07-23T15:39:00Z,2018-07-23T15:39:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f24b49a1a8c202e5b28500eeb991173992a5ea18,"New force_https_urls option, refs #333",2018-07-23T15:58:29Z,2018-07-23T15:58:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b320f58d13e510d51e07187c8a75db856205b88f,'publish now' uses force_https_urls:on - closes #333,2018-07-24T01:51:43Z,2018-07-24T01:51:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
700d83d8adfeb3859ebc93828951e5048cb0e425,?_json_infinity=1 for handling Infinity/-Infinity - fixes #332,2018-07-24T03:07:57Z,2018-07-24T03:07:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3955771feaf47ddb6d281bba28ca2d6281551ed7,"Unit tests for advanced export box HTML, closes #320",2018-07-24T03:38:31Z,2018-07-24T03:38:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
581b4c97ee3d8339b1866480375e20b2fd2f6818,"URLify URLs in custom SQL queries, closes #298",2018-07-24T03:56:32Z,2018-07-24T03:56:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2bdab66772dca51b0c729b4e1063610cb2edd890,"Build and push new tagged releases to Docker Hub
Based on method described in https://sebest.github.io/post/using-travis-ci-to-build-docker-images/",2018-07-24T04:17:57Z,2018-07-24T04:17:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
28872a1fa789f314b0342f4e6182f1c78d6e2bca,Release notes for 0.24 release,2018-07-24T04:34:28Z,2018-07-24T04:34:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3a46d5e3c4278e74c3694f36995ea134bff800bc,"Removed docker -e flag
docker -e flag is now deprecated: https://docs.docker.com/engine/deprecated/#-e-and---email-flags-on-docker-login",2018-07-24T04:48:36Z,2018-07-24T04:48:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
74ad3ff4af4ebb499b07c6ce984def7d88fcbbb7,"Ensure --help examples in docs are always up to date, closes #336
Unit tests now check that docs/*.txt help examples are all up-to-date.
I ran into a problem here in that the terminal_width needed to be more
accurately defined - so I replaced update-docs-help.sh with update-docs-
help.py which hard-codes the terminal width.",2018-07-24T16:00:10Z,2018-07-24T16:01:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bd1db56936d7aa09f5ee87ac8146e19b71ae8b42,"'Usage: datasette', not 'Usage: cli' - refs #336",2018-07-24T16:03:07Z,2018-07-24T16:03:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9b85c599079e7dc37e7be125839711c982afc526,Removed unnecessary print statements from tests,2018-07-24T16:04:06Z,2018-07-24T16:04:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ba64cfb4bc8ff79086e3f61d9be3eaf35cc44c84,"Fix for Python 3.5
https://stackoverflow.com/a/42694113/6083",2018-07-25T17:20:56Z,2018-07-25T17:20:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
3ac21c749881d0fb1c35b0f9b7a819e29f61c5c1,Unit test confirming all plugin hooks are documented,2018-07-26T04:09:33Z,2018-07-26T04:09:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
1fb518618c1c246c58daf5085247b430f2aea29f,"""datasette publish heroku"" improvements
* Fixed bug where --title= didn't work if -m not provided
* Now using Python 3.6.6 instead of Python 3.6.3",2018-07-26T05:43:01Z,2018-07-26T05:43:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3b68314d8f59d92fe7b2150cf747a082192ef9b7,Unit tests for publish now/heroku - closes #348,2018-07-26T05:45:47Z,2018-07-26T05:45:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e8625695a3b7938f37b64dff09c14e47d9428fe5,"xfail documentation unit tests for view classes, refs #299
More documentation unit tests. These ones check that every single **View class
imported into the datasette/app.py module are covered by our documentation.
Just one problem: they aren't documented yet. So I'm using the xfail pytest
decorator to mark these tests as allowed-to-fail. When you run the test suite
you now get a report of how many views still need to be documented, but it
doesn't fail the tests.
The output looks something like this:
$ pytest tests/test_docs.py
collected 31 items
tests/test_docs.py ..........................XXXxx. [100%]
============ 26 passed, 2 xfailed, 3 xpassed in 1.06 seconds ============
Once I have documented all the views I will remove the xfail so any future
views that are added without documentation will cause a test failure.
We can detect that a view is documented by looking for ReST label in the docs,
for example:
.. _IndexView:
Some view classes can be used to power multiple URLs - the JsonDataView class
for example is used to power /-/metadata and /-/config and /-/plugins
In this case, the second part of the label can indicate the variety of page, e.g:
.. _JsonDataView_metadata:
The test will pass as long as there is at least one label that starts with
_JsonDataView.",2018-07-28T03:13:26Z,2018-07-28T03:13:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8da6b0d542c7ea276df8b5467d4be6cd08cf867f,"Added labels so unit tests can detect docs, refs #299",2018-07-28T03:26:18Z,2018-07-28T03:26:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
788a542d3c739da5207db7d1fb91789603cdd336,"Docs for IndexView, TableView, RowView, closes #299
Also removed xfail from test_view_classes_are_documented, so any future *View
classes that are added without documentation will cause the tests to fail.",2018-07-28T04:21:42Z,2018-07-28T04:21:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8128497b7946ab68fff703e207fc7c5b26b6e9c9,"Only run documented_views() fixture once per session
Speeds up tests, because previously it ran once per view class.",2018-07-28T04:49:20Z,2018-07-28T04:49:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
295d005ca48747faf046ed30c3c61e7563c61ed2,"Renamed variable, since docs are not written in Markdown",2018-07-28T04:56:51Z,2018-07-28T04:56:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bd71be32abead38ec0b69695347219024efea0fe,Initial project layout + database table creation tools,2018-07-28T13:43:18Z,2018-07-28T13:46:17Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
03e3f7d6486123bf3eb852ad007d9761475f138c,Configured Travis CI,2018-07-28T13:48:53Z,2018-07-28T13:48:53Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
3c50a3600d0975b84d98c93bb2336a790afc6aca,Unit test for black-approved coding style,2018-07-28T14:29:20Z,2018-07-28T14:29:20Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
501618d0d519f808e54210f3c54420e5559a9343,Ensure black is correctly installed for tests,2018-07-28T14:36:43Z,2018-07-28T14:36:43Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
56e29158fe5174a5b06d0a58090da7fb4624ed60,"Don't run black test on Python 3.7
It breaks on that version - see https://github.com/ambv/black/issues/425
But that's OK, we only need it to run onder one version anyway.",2018-07-28T18:18:40Z,2018-07-28T18:18:40Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
acea54877ca65f08cef4f7260bd7f7fcabe31b90,Create table now works for pure m2m where both rows are foreign keys,2018-07-28T22:06:59Z,2018-07-28T22:06:59Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
95bce37ad3447d3c265316fa029fc09b7bbdae11,Store list/dict/tuple values as JSON strings,2018-07-28T22:20:29Z,2018-07-28T22:20:29Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e51f36d3ebb28378d0938aabb80a432720269bce,"Added table.foreign_keys property, fixed bug in foreign key creation",2018-07-28T22:41:18Z,2018-07-28T22:41:18Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
29c897bb5649c35463618a32d095f72755aae8c6,Started the docs with a meaty example,2018-07-28T23:52:07Z,2018-07-28T23:52:07Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
0d63128c40aec15a958dddf181c13e0db1c7908b,"Preparing v0.2, first release to PyPI",2018-07-29T00:42:41Z,2018-07-29T00:42:41Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
b69f8b6c856adff577fe6a1816359bb00e82ffd1,"table.count property, plus made a start on table documentation",2018-07-31T03:24:35Z,2018-07-31T03:24:35Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
5deb65f0623bff03421f50d3c61f699b981ae18b,"Now you just 'from sqlite_utils import Database'
Plus fixed ad_id in the Russian ads example in the docs",2018-07-31T03:30:23Z,2018-07-31T03:30:23Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e888bb122dadfbd937fc3893444a2edcb0b5b499,"Added .schema property, improved docs, release 0.3",2018-07-31T15:33:52Z,2018-07-31T15:33:52Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
61d81494d5cfee72a99d880e47bc5f436720b415,Fleshed out README,2018-07-31T15:38:50Z,2018-07-31T15:38:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
f5418e13f2e435a42cd3611b28ec3c9ac02481da,Release 0.3.1 to publish updated README to PyPI,2018-07-31T15:39:43Z,2018-07-31T15:39:43Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c446e22f34eb56a454c57edf93824d2615b83c0e,"Moved fixtures to fixtures.py, added .schema test",2018-07-31T15:55:24Z,2018-07-31T15:55:24Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
f4907f6df58d822dfb67660b982a9081b39a06fb,"enable_fts(), populate_fts() and search() methods",2018-07-31T16:19:05Z,2018-07-31T16:19:20Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
515d362ad60c3dc16272c4fdca932cf0a0e9dafa,.table_names and .tables properties plus expanded docs,2018-08-01T00:35:36Z,2018-08-01T00:35:36Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e04f509c518af01db5f3174ed662c3ac50320f58,Added docs on storing JSON,2018-08-01T00:48:32Z,2018-08-01T00:48:32Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c611ed80d2e9f721fc7848fd74e6e6baebe5adde,.indexes property for introspecting indexes,2018-08-01T01:31:29Z,2018-08-01T01:31:29Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
70e1f831a00ec97b724187025e35338becd2309a,Typo,2018-08-01T01:32:03Z,2018-08-01T01:32:03Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
4427d2d96f7197e25acee85643bcf02e758b8b1e,"table.create_index(columns, index_name) method",2018-08-01T15:20:44Z,2018-08-01T15:20:44Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
0aa28293adedc488eb9107dc52b5e9a124887fbd,"Fix compatibility with SQLite prior to 3.16.0
pragma_index_info() and pragma_index_list() were introduced in 3.16.0 but the
version of SQLite running in Travis CI is earlier than that, hence the test
failures:
https://travis-ci.com/simonw/sqlite-utils/jobs/137617744",2018-08-01T15:29:53Z,2018-08-01T15:29:53Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
741e8f7fe563e18fe9a12ac1ce38157e8c903505,"Make .indexes compatible with older SQLite versions (#1)
Older SQLite versions return a different set of columns from the PRAGMA we are using.",2018-08-02T15:17:29Z,2018-08-02T15:17:29Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
a86c3ee832e0b608f9881e40425d294f31802bc0,"Added db.create_view(name, sql) method",2018-08-02T15:24:16Z,2018-08-02T15:24:16Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
19e1057ead0c4434f456bafb4812de2812d51bf5,Documentation for create_view(),2018-08-02T15:26:38Z,2018-08-02T15:26:38Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
5629aaca67437acce8af47acb06488bd9991420b,sortable_columns also now works with views,2018-08-06T00:29:23Z,2018-08-06T00:29:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7d0299edd40636037a06548736681b67385b499e,"fts_table and fts_pk metadata configs, available for both tables and views",2018-08-06T00:44:47Z,2018-08-06T00:44:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
72644b6e3fc78ecf55b386854943ec3ad39f97bd,"Support method chaining, added .last_id for accessing lastrowid
Also shipping as 0.5",2018-08-06T01:42:43Z,2018-08-06T01:42:43Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
fe5b6ea95a973534fe8a44907c0ea2449aae7602,Hide 'view and edit SQL' if config.allow_sql turned off,2018-08-06T03:17:17Z,2018-08-06T03:17:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5,"Bump versions of pytest, pluggy and beautifulsoup4 (#358)",2018-08-08T01:11:12Z,2018-08-08T01:11:12Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
9eacd30b1d6e3f1bd138fb330cfea4830197cb1d,New column_order= parameter for setting column order,2018-08-08T23:06:49Z,2018-08-08T23:06:49Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
2189be144002484c3abe5339a9c69aeca7b9889a,Refactor to use new datasatte.config(key) method,2018-08-11T20:06:45Z,2018-08-11T20:09:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
34a5c0e1e8d1e7e685b0ba73803d153552033aac,"Documented insert_all() and upsert() and upsert_all()
Also re-titled main docs page to 'Python API'",2018-08-13T00:17:14Z,2018-08-13T00:17:14Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
02862be04c51e8ec6e29517d3c28b030627bb179,Default to FTS5,2018-08-13T00:21:55Z,2018-08-13T00:21:55Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
fcc38b9ff2e4dbb680a4429002767f6df855674b,Moved fixtures into conftest.py,2018-08-13T00:24:11Z,2018-08-13T00:25:39Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
9fdf2c169caf544d56f6317afbed6879082be8b9,Documented Database(filepath) and in-memory database creation,2018-08-13T00:31:02Z,2018-08-13T00:31:02Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
d1209a2c453311432dcc41966a81a39d895e9fae,"Use FTS4 when running the tests
Because the version of sqlite3 running in Travis CI does not have FTS5",2018-08-13T00:33:13Z,2018-08-13T00:33:13Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
594b25ef9f633dabdaca98b46dea9fbb82628166,"Started a changelog, releasing 0.6",2018-08-13T00:46:22Z,2018-08-13T00:46:22Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
8e2a313c1e831c465392c5cb1502d0f153d39431,"Fixed failing FTS5 test, release as 0.6.1",2018-08-13T00:48:43Z,2018-08-13T00:48:43Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
aae49fef3b75848628d824077ec063834e3e5167," Import pysqlite3 if available, closes #360 (#361)",2018-08-16T00:58:56Z,2018-08-16T00:58:56Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
0bd41d4cb0a42d7d2baf8b49675418d1482ae39b,Do not show default plugins on /-/plugins,2018-08-28T07:36:22Z,2018-08-28T07:36:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1905c0336451b150b44478285ddb6878f5238519,New ds.metadata() method,2018-08-13T14:56:50Z,2018-08-28T07:45:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0a14a4846b29b4b60d153356ad926cbc461c45c7,Added plugin_config() method,2018-08-28T08:35:21Z,2018-08-28T08:35:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5cf0c6c91c077b8b69ea159c19f0c6fb02ab9c19,New plugin hook: extra_body_script,2018-08-28T08:56:44Z,2018-08-28T09:02:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9e1fca4b016bbb2d4b2ab350ca1570ba6141afe8,Corrected indentation in metadata.rst,2018-08-28T09:56:34Z,2018-08-28T09:56:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2e836f72d9a4e61341d75ea48e88314e0d006b65,"render_cell(value, column, table, database, datasette)
The render_cell plugin hook previously was only passed value.
It is now passed (value, column, table, database, datasette).",2018-08-28T10:03:01Z,2018-08-28T10:03:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
fbf446965b398a0a6c3e6bce72c0b9b0112498ab,"Refactoring: renamed ""name"" variable to ""database""",2018-08-28T10:17:13Z,2018-08-28T10:25:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b7c6a9f9bd2bbd06ef64fef4a1fcc86fa0039039,"extra_css_urls(template, database, table, datasette)
The extra_css_urls and extra_js_urls hooks now take additional optional
parameters.
Also refactored them out of the Datasette class and into RenderMixin.
Plus improved plugin documentation to explicitly list parameters.",2018-08-28T10:56:57Z,2018-08-28T10:56:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1f54e092306b208125f39d06712b02895eb75168,Better docs for publish_subcommand() plugin hook,2018-08-28T10:59:50Z,2018-08-28T10:59:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b7257a21bf3dfa7353980f343c83a616da44daa7,"Fix json.loads in Python 3.5
3.5 requires a str, not a bytes
https://travis-ci.org/simonw/datasette/jobs/421660555",2018-08-28T16:55:30Z,2018-08-28T16:55:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1bcd54a834a2f9730d21095df855f6708c85c200,Fix small doc typo - thanks @jaywgraves (#365),2018-09-19T17:15:42Z,2018-09-19T17:15:42Z,6410ac01839c113476668eeff88d60a0a2c6eb7a,Jay Graves,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,418191,jaywgraves,9599,simonw
57a71377c992753327a16b417daf79df7f506dd1,Releasing Datasette 0.25,2018-09-19T17:48:12Z,2018-09-19T17:48:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
96af802352e49e35751e295e9846aa39c5e22311,"Travis applies :latest tag to Docker release, refs #329",2018-09-19T18:23:56Z,2018-09-19T18:23:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
24cea271961077a63bc834a2aab3de777491a9c9,"Link to ""The interesting ideas in Datasette""",2018-10-04T02:40:04Z,2018-10-04T02:40:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
7dda8898c12720f1494cfd4761399e95211520a1,"Started contributing docs: setting up a dev environment
https://datasette.readthedocs.io/en/latest/contributing.html",2018-10-27T17:12:19Z,2018-10-27T17:13:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6b398c2971801d9a20cfdb7998f59020d5534e22,Link to dev environment instructions from installation guide,2018-10-27T17:34:31Z,2018-10-27T17:34:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5debabd3fba1f0669081cefe55b67d333470bbd4,More human friendly 'what is Datasette' intro text,2018-11-05T06:04:23Z,2018-11-05T06:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b6546da53516e148e6aa34ad94f3452da30040f8,"Use Zeit cloud v1 to avoid 100MB image limit
Closes #366 - thanks @slygent",2018-11-05T06:22:34Z,2018-11-05T06:22:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3dc0b3fa8c9b9bd81540ffe20c8b7e7a72465274,Release 0.25.1,2018-11-05T06:31:41Z,2018-11-05T06:31:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c2c03f8e7be6973ef3cbdb3ca424e55a81a956d7,Compatible with Python 3.7,2018-11-05T06:40:03Z,2018-11-05T06:40:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d0393e821e5914a7c1d659eaf0a5d612a1aa8e01,"Travis to use Python 3.7-dev for a little longer
3.7 produces a 403 forbidden error: https://travis-ci.org/simonw/datasette/jobs/450716231#L6",2018-11-05T06:45:38Z,2018-11-05T06:45:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5e3a432a0caa23837fa58134f69e2f82e4f632a6,How to activate your virtual environment,2018-11-15T00:54:54Z,2018-11-15T00:54:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
3de8fac1d322cbab6c8c55899e0e8511b36337d0,"New make_app_client() pattern
Because next version of pytest discourages calling fixture factories as functions",2018-11-20T17:16:31Z,2018-11-20T17:46:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
54a59b9fdb40b9c86ff065a5b7047e6ef305bc22,Use python-3.6.7 runtime for Heroku deploys,2018-12-16T20:53:00Z,2018-12-16T20:53:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c5f90dd1b20e41d1a3736dcbda5101d27279390b,Added docs on updating docs + the release process,2018-12-16T21:14:50Z,2018-12-16T21:14:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
84d7890b63f6aa43e7369fa8fc7a0a1bbf98c91f,Upgrade pytest to 4.0.2,2018-12-16T21:18:55Z,2018-12-16T21:18:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b5128fc53fce6a1bf3b16bad9f318451bc1d1263,Release 0.25.2,2018-12-16T21:26:37Z,2018-12-16T21:26:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ed78922ae38b51513319b60ac39990b7c2aca810,"Tiny typo in customization docs (#390)
Thanks, @jaywgraves",2018-12-16T21:32:55Z,2018-12-16T21:32:55Z,6410ac01839c113476668eeff88d60a0a2c6eb7a,Jay Graves,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,418191,jaywgraves,9599,simonw
1e2db8547be111e7c1583f096f40cec7c0824281,Improved release process documentation,2018-12-16T21:47:26Z,2018-12-16T21:47:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
595da9054e391b05a59b57c0c0a4487ea10062ce,"Better example commit
This one updates the README news section as well",2018-12-16T22:56:56Z,2018-12-16T22:56:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
74ad06e1283615cceb49fd95929b60329d47d3d4,Updated notes on FTS5 v.s. FTS4,2018-12-18T21:49:51Z,2018-12-18T21:49:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
48d24c6589f214c7e1bab21d32e2f35a0038e71f,Link to new tutorial from the README,2018-12-19T05:39:35Z,2018-12-19T05:39:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
eac08f0dfc61a99e8887442fc247656d419c76f8,--reload now also reloads if databases change on disk,2018-12-20T15:51:08Z,2018-12-20T15:51:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a2bfcfc1b1c60dac3526364af17c2fa2f3d41a0a,Fix some regex DeprecationWarnings (#392),2018-12-29T02:22:27Z,2018-12-29T02:22:27Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
d95b46b09bf53530b212cc17202a242daa62fd64,"datasette publish now --alias option
You can now use --alias to attempt to alias after you deploy.
Also updated now.json to use version: 1",2019-01-02T05:14:46Z,2019-01-02T05:15:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8b8ae55e7c8b9e1dceef53f55a330b596ca44d41,"Pass --token to 'now alias', if provided",2019-01-02T05:35:16Z,2019-01-02T05:35:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
996e8822d2cb551c0ed821ff1fda24af905332d3,"Fix CSV export hidden form fields, closes #393",2019-01-03T02:43:56Z,2019-01-03T02:43:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
424e146697309a54c05d5d1ba1f840849ddbafdc,Datasette 0.26 release notes,2019-01-03T02:53:59Z,2019-01-03T02:53:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b65d97792a53f78cb14b226231063209d22c4602,Switch to using PYPI_PASSWORD env var in Travis,2019-01-03T03:14:21Z,2019-01-03T03:14:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
788f218e267ad9e29df904c6c6a61e78bcc8e744,Supress pytest warnings from 3rd party modules,2019-01-06T04:44:34Z,2019-01-06T04:44:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5b026115126bedbb66457767e169139146d1c9fd,Corrected import path in plugin docs,2019-01-09T00:25:29Z,2019-01-09T00:25:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
8ce7866312f9b7c873541d6e3662ada3e850fa85,"compile_options output in /-/versions, closes #396",2019-01-11T00:44:37Z,2019-01-11T00:44:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c4c970f3c90fa79a6c6527fe963baf9e07b023c8,Bump aiohttp to 3.5.3 to fix a warning,2019-01-11T00:47:15Z,2019-01-11T00:47:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
50d8d8216dcc5557e6b581a13bb871f033722117,"Dockerfile now builds SQLite 3.26.0, closes #397",2019-01-11T00:47:54Z,2019-01-11T00:47:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
4722acc73ce761556b18f5dcbe36b7fef2ee2c69,Release 0.26.1,2019-01-11T00:51:38Z,2019-01-11T00:51:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c3a78eb05c0b146b2eb37b50c1668b9430b8f50a,app_client() fixture doesn't need to take **kwargs,2019-01-13T22:23:44Z,2019-01-13T22:23:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a418c8b44f82d456be523c8690cf7236bb648c22,"Expose current git tag to Docker build, closes #399",2019-01-13T23:09:48Z,2019-01-13T23:09:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7950105c278b140e6cb665c68b59df219870f9bc,Python 3.7.2 as base for Docker image,2019-01-13T23:33:50Z,2019-01-13T23:33:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6ad9037c966311546f23fff76faf1b0c2360c097,Added support for bytes and datetime.datetime,2019-01-25T02:59:21Z,2019-01-25T02:59:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
228d595f7d10994f34e948888093c2cd290267c4,Allow column names to be reserved words,2019-01-25T03:01:10Z,2019-01-25T03:01:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
d18687a30a2bb14370248d8ebd446e9838d7828e,No need to skip black under Python 3.7 any more,2019-01-25T03:02:30Z,2019-01-25T03:02:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
fa35cd9afbff17e5639ee07e8d78c6cbb81ea4e5,Loosen requirement versions,2019-01-25T03:06:30Z,2019-01-25T03:06:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
8437fe30912967a0d74c711597e0597314bea11e,"Revert ""No need to skip black under Python 3.7 any more""
It turns out the black tests still fail in Travis against that version.
This reverts commit d18687a30a2bb14370248d8ebd446e9838d7828e.",2019-01-25T03:08:52Z,2019-01-25T03:08:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
fd5829b27dce669fe1704e07536f339f20472eda,First CLI command: sqlite-utils table_names test.db,2019-01-25T03:30:47Z,2019-01-25T03:30:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
231224ba1a4de42f3d3885a0accd05dcf85570e7,Added vacuum to CLI and Python API,2019-01-25T03:39:04Z,2019-01-25T03:39:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
66fd63b11999e87c541b2023dd569b771927f283,Ability to list just FTS4 or FTS5 table names,2019-01-25T03:57:04Z,2019-01-25T03:57:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
015bd2a840a008a105f731c50eee319963352c1b,Test for .table_names(fts5=True),2019-01-25T04:23:53Z,2019-01-25T04:23:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
0a8194e730f8ecdd9a5af1f6a8d5a889796d7dba,"sqlite-utils optimize command, .optimize() and .detect_fts() table methods",2019-01-25T04:35:51Z,2019-01-25T04:35:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
1c683076d3138d9d853a1adb16fb9e6d248d1245,Sanity check test for optimize --no-vacuum,2019-01-25T04:38:23Z,2019-01-25T04:38:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
9e74289397e28f797290158c27e1dca2083c4e95,'sqlite-utils insert tablename file.json' command,2019-01-25T05:06:41Z,2019-01-25T05:06:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
b30f924c49e46beff26dc888e96099ed8bb972f7,Implemented 'sqlite-utils upsert my.db tablename --pk=x',2019-01-25T05:20:10Z,2019-01-25T05:20:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
ffc9f09a935fdaec4236c3e5a5c252ec3aad65ef,Re-arranged documentation index page,2019-01-25T05:23:24Z,2019-01-25T05:23:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e9e1cb00c152530fedb95ea699a7408c085e429a,Release notes for 0.7,2019-01-25T06:39:21Z,2019-01-25T06:39:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
ad30ccea59632fe39966116586a33f34e81cd868,Try dist:trusty to see if that gives us FTS5 in Travis CI,2019-01-25T06:42:53Z,2019-01-25T06:42:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
ccb2a1e729780689188005a52c362b7e963f71e8,Try dist: xenial,2019-01-25T06:44:24Z,2019-01-25T06:44:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
42b2b4b785e3163371e92a9cc085bc47e7c83107,"Upgrade sqlite3 in Travis so we can test against FTS5
Using recipe from https://linuxhint.com/install-sqlite-ubuntu-linux-mint/",2019-01-25T06:54:32Z,2019-01-25T06:54:32Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
9501ba4bf1b96aeefe26e261de085839e9a97e67,"sqlite-utils table_names blah.db is now tables blah.db
Travis tests were failing because on OS X the command was this:
sqlite-utils table_names blah.db
But in Travis CI the command was this:
sqlite-utils table-names blah.db
Renaming it to tables fixes this inconsistency.",2019-01-25T07:04:52Z,2019-01-25T07:04:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
6f54342570f722ca817945155c234d8d8a9b4acc,Release 0.7,2019-01-25T07:20:49Z,2019-01-25T07:20:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c83dd8a5eb9a146ef8072932333a0bca98f9577a,"sqlite-utils csv data.db ""select ..."" command",2019-01-25T15:50:20Z,2019-01-25T15:50:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
7689ca7229d2a2e662a7c6b1ada8baef9c4d7525,Fixed RST formatting,2019-01-25T18:16:26Z,2019-01-25T18:16:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
5466c9745dfef858286146ea158ffd5a71391d10,"sqlite-utils json dogs.db ""select * from dogs""",2019-01-26T02:06:29Z,2019-01-26T02:06:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
3db4f08f19b2b1a19431a092f43605031092b97f,Release 0.8,2019-01-26T02:13:29Z,2019-01-26T02:13:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
4e9045e5b0bfb7ecf0a45dc2634a438d08a2cbd6,Documentation typo,2019-01-26T02:19:15Z,2019-01-26T02:19:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
20a744fb5a75425b048951ad8826c594af8102ed,More detailed README,2019-01-26T02:21:55Z,2019-01-26T02:21:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
9a4d1ff0a268c7df7839389acd92d48752d24b95,Releasing 0.8.1 (just a better README),2019-01-26T02:22:18Z,2019-01-26T02:22:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
3a944d0c077c203277f13dd69387eb84b5c88d3e,Run Travis tests against Python 3.8-dev (#5),2019-01-26T02:37:54Z,2019-01-26T02:37:54Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
3f2e711a4bb59c868abd03d8b95c53617cef7740,"Refactored to use itertools
Found an itertools mechanism that works for iterating
through the current and next row in the cursor.",2019-01-26T18:58:45Z,2019-01-26T18:59:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
ea17c63cc52cf7290e8bbcba9f869698c2c2ea44,Tests for json returning single row,2019-01-26T18:58:00Z,2019-01-26T18:59:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
909cc8fbdfc9c05e447f40e9a73489809602c3cd,New 'datasette plugins' command to list installed plugins,2019-01-26T20:01:16Z,2019-01-26T20:01:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
57fc8ce55ecbecd7af60281404cb10573be36c98,Database() constructor works with pathlib.Path,2019-01-27T23:53:41Z,2019-01-27T23:53:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
b5dd83981a7dbff571284d4d90a950c740245b05,Export option: _shape=array&_nl=on for newline-delimited JSON,2019-01-28T01:40:23Z,2019-01-28T01:40:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5309c5c7755818323a0f5353bad0de98ecc866be,"sqlite-utils insert ... --nl option, closes #6",2019-01-28T02:17:38Z,2019-01-28T02:17:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
a22607699400468aa9c50faa47d0058663d80741,Fixed RST bug,2019-01-28T02:18:55Z,2019-01-28T02:18:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
225cf7299f0a9ef7c37caac656a8e0d8731c6cad,Docs example chaining --nl together,2019-01-28T02:28:02Z,2019-01-28T02:28:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
f0afa5646b596885a9c030f00596d9228ad23994,"insert_all() now accepts generator, closes #7",2019-01-28T06:12:18Z,2019-01-28T06:12:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
50589f8523751191559e8d812c2ee0889da06e50,"CLI insert tool now uses generators, closes #7
Also cleaned up the logic so we commit rows in batches too.",2019-01-28T06:26:45Z,2019-01-28T06:26:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
79a0f9cc96788f615810dced89f79b8e3ccc51ed,Releasing 0.9,2019-01-28T06:34:33Z,2019-01-28T06:34:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
82f0f6076ab5042faf870339dc49a570133e1d2a,"sqlite-utils insert db.db foo - --csv
New option for efficiently inserting rows from a CSV.
Uses a generator so this will happily consume enormous CSV files without
needing to slurp the whole thing into memory first.",2019-01-29T15:28:12Z,2019-01-29T15:28:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
1843d55615fa1bdce7d06919965c40acf22b05bb,"@cli.command(name=""csv"") instead of import csv as csv_std",2019-01-29T15:37:01Z,2019-01-29T15:37:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
441c131db5cc68e197db19f0623ff8a96c90c3ff,Better --help text for insert command,2019-01-29T15:40:34Z,2019-01-29T15:40:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
b944bcd0f0e0914a9f308945faffed88ad6c3b4c,"Added documentation on the Datasette Ecosystem
https://datasette.readthedocs.io/en/latest/ecosystem.html",2019-02-01T03:36:07Z,2019-02-01T03:36:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
436b8bc1d17c2ab415800ab209204f94e7f7929e,Datasette 0.27,2019-02-01T03:47:05Z,2019-02-01T03:47:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
4462a5ab2817ac0d9ffe20dafbbf27c5c5b81466,"Show size of database file next to download link, closes #172",2019-02-06T04:53:44Z,2019-02-06T04:58:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7aab60d8764bd8ef6e834578e8de94c2fcb0ceb9,Handle datetime.date and datetime.time,2019-02-07T05:15:08Z,2019-02-07T05:15:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
7c09a2e994dd36711207dcd9aa91a4be450551ab,Release 0.10,2019-02-07T05:16:35Z,2019-02-07T05:17:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
ac9311aaf5e598d493e60d63adca26018684c678,Refactored insert and upsert to share the same options,2019-02-07T05:50:25Z,2019-02-07T05:50:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
3f8ef35b2abfc64b32e254a849f2f7caff969c3b,enable-fts and populate-fts CLI commands,2019-02-08T05:18:24Z,2019-02-08T05:18:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
6acfd456b0223da6cbac7719d793a9d69472bc0d,Releasing 0.11,2019-02-08T05:22:13Z,2019-02-08T05:22:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c89b2df91822318266ae4020c6ccbd06fefb48f7,Fixed documentation typo,2019-02-08T05:23:50Z,2019-02-08T05:23:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
fd1b6eb82d092c60edcc38fcb363290dc6c6dfff,Help text for enable-fts and populate-fts,2019-02-08T05:25:26Z,2019-02-08T05:25:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
d5d39da12b26c06a426e97872bce4e94248db42d,Expanded section on db-to-sqlite,2019-02-08T06:23:27Z,2019-02-08T06:23:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
1f91065b20cbc691f464bccfd8eef7d1ce4b14a8,"Added socrata2sql to the ecosystem page
A fantastic new tool created by @achavez at the Dallas Morning News.",2019-02-08T16:06:10Z,2019-02-08T16:06:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
62e1edeaf600f45a59fde432f1bde2bcc4e1ee7b,[] escaping for FTS columns,2019-02-22T04:17:58Z,2019-02-22T04:17:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
3095f2e6715380f5381b9bb7176d109e643cc0f8,Added db[table].rows iterator,2019-02-22T05:29:50Z,2019-02-22T05:29:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
f2ca48c0dad373abe307536a96af24f73934ed7d,"Default command now executes queries, --csv or --json
I replaced the following commands:
sqlite-utils json db.db ""select * from table""
sqlite-utils csv db.db ""select * from table""
With a unified 'query' command, which is now set as the default:
sqlite-utils db.db ""select * from table""
sqlite-utils db.db ""select * from table"" --csv",2019-02-23T01:40:21Z,2019-02-23T01:40:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c7dbb03a104c2429d008a1038d6d128b1f820027,Added 'sqlite-utils rows db.db tablename' command,2019-02-23T01:52:17Z,2019-02-23T01:52:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
11a9511d23ba79e7c8c92bc90ec29ba7f22e3eb7,Updated README to reflect new query default subcommand,2019-02-23T01:53:48Z,2019-02-23T01:53:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e3c0ed1b1a4f4dd3eeed50d80ca3bd9e9b8c43c9,"sqlite-utils tables now takes --counts, --columns, --csv, --nl",2019-02-23T02:12:53Z,2019-02-23T02:12:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
1ffa40301de5bb960e89114de0f5199850a9ed9d,Releasing 0.12,2019-02-23T02:22:28Z,2019-02-23T02:22:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
463fd3c3f66691532022f14ad446f9b782d2273c,Bump copyright year,2019-02-23T06:08:14Z,2019-02-23T06:08:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
919415e4e933662f15fe224439fca52e0c2fba08,Added LICENSE file,2019-02-23T17:16:57Z,2019-02-23T17:16:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
ca225b02c00c921af2d5777b9a05e96dd4947c30,Prettier indentation for CREATE TABLE,2019-02-23T20:51:35Z,2019-02-23T20:52:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c5068a0972651b3e359ebc2d6c1486b8b7d2c242,:pencil: Updates my_database.py to my_database.db (#9),2019-02-24T03:55:04Z,2019-02-24T03:55:04Z,207bb2132044fa5a4fe28a579f7588c2eee6e391,Jeff Triplett,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,50527,jefftriplett,9599,simonw
e615d22c5564ea1f32abb086088b2700110be10a,"Support for numpy types, closes #11 (#12)",2019-02-24T04:02:19Z,2019-02-24T04:02:19Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
dbf239e3fc8af00ef43ec578fb195dfe604a99fe,"hash_id= mechanism for setting ID using content hash, closes #13",2019-02-24T04:36:40Z,2019-02-24T04:36:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
6c3f5e647934413dfc46a218f1540a1cab31e52e,Added --table and --fmt options for table output using tabulate,2019-02-24T06:45:17Z,2019-02-24T06:45:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
10e3aab4c63bc02cacd64e7aa1e5eaff2b314b3e,Fixed typo with last_pk,2019-02-24T06:49:54Z,2019-02-24T06:49:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
1b6025e8ab5cef6a6f2550cc3be1f80b12cc64a1,Release 0.13,2019-02-24T06:54:43Z,2019-02-24T06:54:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e7ffbcdb364810213b0697c9bcab064efb1dd469,"Ability to create unique indexes, refs #14",2019-02-24T18:41:51Z,2019-02-24T18:41:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
0c6745b70f95663f8ddf4309c578bd568eca75ec,Whitespace fix,2019-02-24T18:42:27Z,2019-02-24T18:42:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
7784b924a179ee213f52693276ab7b68d6549b51,"Added create_index(..., if_not_exists=True), refs #14",2019-02-24T18:46:44Z,2019-02-24T18:46:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
8a5d0d80c37008f30953110d58f474aac2728ee3,"sqlite-utils create-index command, closes #14",2019-02-24T19:11:21Z,2019-02-24T19:11:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
dc2560879ed32136d64707a031b62b2870809892,"table.add_column(name, type) method, refs #15",2019-02-24T19:40:26Z,2019-02-24T19:40:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c5286d2c66b8c187002f9ad8991a6665b2b092f9,Black formatting,2019-02-24T19:40:58Z,2019-02-24T19:40:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
6d25f648ed708b8dd78cbb0af5e356d16859625f,"add_column now accepts explicit SQLite types, refs #15",2019-02-24T19:49:24Z,2019-02-24T19:49:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
05a85b358fb907d8fcb72f19390ee2ba5a2261a5,Don't assume -1 for error code,2019-02-24T19:50:56Z,2019-02-24T19:50:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
0bc49e938e1e3444df734f9178a9a317f68f9716,"'sqlite-utils add-column name type' command, closes #15",2019-02-24T20:04:33Z,2019-02-24T20:04:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
33df260b38e1b0f179cdb849fc4e3e9c76e57f3a,Fix for CLI test,2019-02-24T20:12:59Z,2019-02-24T20:12:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
9756310408c7e5fa1ca257573e46aa13c2041c24,Black,2019-02-24T20:59:46Z,2019-02-24T20:59:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e1ca938aa1c84367fd9d4786b9709c56f3e6e778,"table.add_foreign_key(column, other_table, other_column)
New mechanism for adding foreign key constraints to an existing SQLite
table.
SQLite ALTER TABLE does not support this out-of-the-box, so I instead
had to write some careful code that uses PRAGMA writable_schema = 1 to
directly modify the sqlite_master table.
Refs #2",2019-02-24T21:10:51Z,2019-02-24T21:10:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
f8d3b7cfe5c1950b0749d40eb2640df50b52f651,"sqlite-utils add-foreign-key books.db books author_id authors id
Command for adding foreign keys to existing tables. Closes #2",2019-02-24T21:33:45Z,2019-02-24T21:33:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
557dc3f9a7b622c45c73fd791cfe0a786f9a1de0,"Improved foreign_keys= argument, closes #17",2019-02-24T22:12:45Z,2019-02-24T22:12:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
3cab079d3e45aa3468e9f7317680ded6438f3955,"add-column col_type now optional, defaults to str",2019-02-24T22:24:00Z,2019-02-24T22:24:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
05317f53411fab3c3d66b88408bc867f2e474a35,Release 0.14,2019-02-24T23:11:51Z,2019-02-24T23:11:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
0b1af42ead3b3902347951180b3364ce1942da6e,Link to my blog entry,2019-02-25T03:45:38Z,2019-02-25T03:45:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
5b3af3d015a6048a3977234bf46d20905ce720c0,Added sqlite-utils blog entry to news section,2019-02-25T03:47:11Z,2019-02-25T03:47:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
4147c388cbb9b14d137dd5229ae3f574ee6a25fe,Link to sqlite-utils blog entry,2019-03-08T04:30:21Z,2019-03-08T04:30:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
41744d76908bbef0edc038a5050a709cdd26e529,Added datasette-jellyfish,2019-03-09T18:43:12Z,2019-03-09T18:43:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
9743e1d91b5f0a2b3c1c0bd6ffce8739341f43c4,"Support for :memory: databases
If you start Datasette with no files, it will connect to :memory: instead.
When starting it with files you can add --memory to also get a :memory: database.",2019-03-14T23:42:38Z,2019-03-15T03:54:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bf6b0f918de4aeee7c1036ac975ce2fb23237da7,about and about_url metadata options,2019-03-10T21:37:11Z,2019-03-15T03:54:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b3e739332624c2d4f2668a105afd727af774100b,"Allow more recent versions of Click
Closes #414",2019-03-15T04:41:43Z,2019-03-15T04:41:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
285566790879b31d2fdd2a8c6f56825162eb71b9,Fix for test failure with Click 7.0,2019-03-15T05:00:13Z,2019-03-15T05:00:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9e8c36793bfbb17c2f67371cc7f9aa8b9202fdc4,"Update spatialite.rst (#413)
a line of sql added to create the idx_ in the python recipe",2019-03-15T05:06:45Z,2019-03-15T05:06:45Z,41e868c44ebf155cd4e69182c407f1d278d635ce,joelondon,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,107914493,datasette,28597217,joelondon,9599,simonw
afe9aa3ae03c485c5d6652741438d09445a486c1,"show/hide link for SQL on custom query page
Closes #415",2019-03-15T05:22:24Z,2019-03-15T05:22:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
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,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
47032636b55718dd711670f19b753f4ada9e8f2f,"'datasette serve -i immutable.db' option, refs #419",2019-03-17T23:25:15Z,2019-03-17T23:25:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
82fec6048148b58748040a7e2caa163387e982a3,"Fix for TypeError
File ""../datasette/app.py"", line 138, in __init__
self.files = files + immutables
TypeError: can only concatenate tuple (not ""list"") to tuple",2019-03-17T23:36:35Z,2019-03-17T23:36:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0209a0a344503157351e625f0629b686961763c9,"table_exists() now uses async SQL, refs #420",2019-03-31T18:02:22Z,2019-03-31T18:02:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7d0f668556b6d9a6c3d70a7b8a07a542857bbb56,".resolve_db_name() and .execute() work without inspect
Refs #420",2019-03-31T23:51:52Z,2019-03-31T23:51:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
29a3896fe1e09d5c35a90d55690c9f71fae81e24,".database_url(database) no longer needs inspect, refs #420",2019-03-31T23:55:38Z,2019-03-31T23:55:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
468c6fd9532f08859c77ae670307fd5f4c6632f5,"DatabaseDownload no longer uses .inspect(), refs #420",2019-04-01T02:04:17Z,2019-04-01T02:04:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d8851e0011f256ce52775aa776e0e4323db50c8e,Removed rogue print(),2019-04-07T01:54:51Z,2019-04-07T01:54:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
97331f3435ba1583a0f9dbcaffc25de8894cf1f8,"sortable_columns_for_table() no longer uses inspect()
Refs #420",2019-04-07T01:58:51Z,2019-04-07T01:58:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
53bf875483d98861314db3a0cdcec8f5ce22ee96,"expand_foreign_keys() no longer uses inspect, refs #420",2019-04-07T02:56:07Z,2019-04-07T02:56:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c882e9262f64e0fc7c2fc89c611bdb768c069af7,"display_columns_and_rows() no longer uses inspect, refs #420",2019-04-07T03:11:08Z,2019-04-07T03:11:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f23120a9641e521d669788e9938fb3cf2754d710,RowView.data() no longer uses inspect refs #420,2019-04-07T03:17:47Z,2019-04-07T03:17:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
db02311ebf3711309b231d007967bcf8b026a026,"foreign_key_tables no longer uses inspect, refs #420",2019-04-07T03:23:30Z,2019-04-07T03:23:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
36bd6558b00be027bb4b7dba0c8d200da0ca95df,"expandable_columns() no longer uses inspect, refs #420",2019-04-07T03:46:08Z,2019-04-07T03:46:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3a208a41d4dce35b97eca8b25f37055c3fda5aed,"TableView.data() no longer uses .inspect, refs #420
BUT... it does a count(*) against the whole table which may take unbounded time.
Fixing this is part of #422",2019-04-07T03:47:10Z,2019-04-07T03:47:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
78e45ead4d771007c57b307edf8fc920101f8733,"New ?tags__arraycontains=tag lookup against JSON fields
Part one of supporting facet-by-JSON-array, refs #359",2019-04-10T15:17:19Z,2019-04-10T15:27:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9cd3b44277e6a8ea9273bf659379ff0414e0b8ae,Upgrade to Jinja2==2.10.1 (#426),2019-04-10T23:13:30Z,2019-04-10T23:13:30Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
db74cf0144df3e2a017c40a3a36ff5e1a78d7e92,"?_fts_table= and ?_fts_pk= arguments, closes #428",2019-04-12T04:21:17Z,2019-04-12T04:21:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e11cb4c66442abca2a6b6159521a6cf4da8739c1,"Persist show/hide state better, closes #425",2019-04-12T05:00:47Z,2019-04-12T05:00:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bc6a9b45646610f362b4287bc4110440991aa4d6,"?_where= parameter on table views, closes #429
From pull request #430",2019-04-13T01:37:22Z,2019-04-13T01:37:22Z,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
f2c767c2221b06c0fb4962cfa430e038359019d3,Fixed broken link in documentation,2019-04-13T01:56:51Z,2019-04-13T01:57:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
274ef43bb7b129ddc2e68805b4f4ff3776fb9503,Moved expand_foreign_keys() from TableView to Datasette,2019-04-13T18:48:00Z,2019-04-13T18:48:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
13ee3c222f8ee967a2f716cca11bee4ea51fea46,Moved BaseView.absolute_url() to Datasette,2019-04-13T19:16:05Z,2019-04-13T19:16:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d1075b8259b06e6002aaecc9a1167a4db9b2c2f4,Cleaned up pylint warnings,2019-04-13T19:20:10Z,2019-04-13T19:20:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d4bfb8461c68ba2912f6d01fe159ce186a9040c6,Removed accidental extra default plugins module,2019-04-13T19:33:23Z,2019-04-13T19:33:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9dc7a1824be0a876b8f54e0edd4467d9a357e0cb,Slightly more interesting example link,2019-04-13T22:49:07Z,2019-04-13T22:49:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
6da567dda953c7ac0e5500f17d8e220467a3499e,"Extract and refactor filters into filters.py
This will help in implementing __in as a filter, refs #433",2019-04-15T21:51:20Z,2019-04-15T21:51:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2c19a27d15a913e5f3dd443f04067169a6f24634,"Documentation for filters, plus new documentation unit test
https://simonwillison.net/2018/Jul/28/documentation-unit-tests/",2019-04-15T22:41:11Z,2019-04-15T22:41:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1c6649b19b09ea018d91a86db9c019a940fe36fc,"New colname__in=x,y,z filter, closes #433",2019-04-15T22:42:28Z,2019-04-15T22:43:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
583b22aa28e26c318de0189312350ab2688c90b1,New ?column__date=yyyy-mm-dd filter,2019-04-15T22:54:54Z,2019-04-15T22:54:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9c77e6e355ec718d76178a7607721d10a66b6aef,"Support multiple filters of the same type
Closes #288",2019-04-15T23:44:17Z,2019-04-15T23:44:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2b11948d7c5f4548325c941d92eaf428852a19d8,"New ConnectedDatabase.mtime_ns property
I plan to use this for some clever table count caching tricks",2019-04-20T17:50:45Z,2019-04-20T17:50:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
31f36e1b97ccc3f4387c80698d018a69798b6228,"Added some guidelines
Mainly to remind me that master needs to be releasable at all times!",2019-04-20T18:32:40Z,2019-04-20T18:32:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
7d01ca34a10b5f8a993859cfd05790eb2870b94e,"Added ?_trace=1 option to trace SQL
Currently just dumps all SQL statements out on the console.",2019-04-21T05:28:15Z,2019-04-21T05:34:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
58a862cee4a065d463da0a08b87134efb6b6e18d,"?_trace=1 now adds SQL trace info to JSON/HTML response
Also added documentation for it. Refs #435",2019-04-21T17:41:16Z,2019-04-21T17:41:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e4e73a537add40b92a02e55af004b0d26a3ccdce,"Test for ?_trace=1, refs #435",2019-04-21T17:46:56Z,2019-04-21T17:46:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9d73e3c8bd5f3aae24a75b62c420de166992b30c,"Note that trace data format is very likely to change, refs #435",2019-04-21T17:53:28Z,2019-04-21T17:53:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
11b352b4d52fd02a422776edebb14f12e4994d3b,"Fix for Python 3.5, refs #435",2019-04-21T18:20:20Z,2019-04-21T18:20:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bac4e01f40ae7bd19d1eab1fb9349452c18de8f5,"Ensure sqlite_timelimit correctly clears handler
If an error occurred inside the block the progress handler (used to
enforce a time limit) was not being correctly cleared, resulting in
timeout errors potentially occurring during subsequent SQL queries.
The fix is described here: https://docs.python.org/3/library/contextlib.html#contextlib.contextmanager",2019-04-21T19:02:24Z,2019-04-21T19:02:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
cf406c075433882b656e340870adf7757976fa4c,"New plugin hook: register_output_renderer hook (#441)
Thanks @russss!
* Add register_output_renderer hook
This changeset refactors out the JSON renderer and then adds a hook and
dispatcher system to allow custom output renderers to be registered.
The CSV output renderer is untouched because supporting streaming
renderers through this system would be significantly more complex, and
probably not worthwhile.
We can't simply allow hooks to be called at request time because we need
a list of supported file extensions when the request is being routed in
order to resolve ambiguous database/table names. So, renderers need to
be registered at startup.
I've tried to make this API independent of Sanic's request/response
objects so that this can remain stable during the switch to ASGI. I'm
using dictionaries to keep it simple and to make adding additional
options in the future easy.
Fixes #440",2019-05-01T23:01:56Z,2019-05-01T23:01:56Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,45057,russss,9599,simonw
669fa21a71c9920923df0f64907c095c0e7d889f,Include request duration in traces,2019-05-01T23:16:15Z,2019-05-01T23:27:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e7151ccccf4a0d10e1fcf3832e18c5199c16dea0,"Index page no longer uses inspect data - refs #420
Also introduced a mechanism whereby table counts are calculated against a time limit
but immutable databases have their table counts calculated on server startup.",2019-05-02T00:39:39Z,2019-05-02T00:39:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
50d2d1aac985f440b36e6847e3ddacb4a6bf4d4b,Fixed bug where metadata.json hidden tables were ignored,2019-05-02T00:54:48Z,2019-05-02T00:54:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
033cf0bcbbcadd0256d0c43fb7b9d3053727b4fe,"DatabaseView no longer uses .inspect(), closes #420",2019-05-02T01:12:58Z,2019-05-02T01:13:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f553a670216960043ec7e62ff35d42db78903ff0,"Don't load setuptools plugins during test runs
Uses pattern from https://docs.pytest.org/en/latest/example/simple.html#detect-if-running-from-within-a-pytest-run
Closes #438",2019-05-02T05:09:03Z,2019-05-02T05:09:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ad9de774f75ba41f2a627a9d2cecd61050bac901,"Added missing file, refs #438",2019-05-02T05:10:23Z,2019-05-02T05:10:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3651eedf20b86ad30f510bf762fb25790bb3560c,"Show 'many rows' if count times out, refs #420",2019-05-02T05:20:24Z,2019-05-02T05:20:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
efc93b8ab5a21e3802f75f08d5e41409f5684b5d,"Entirely removed table_rows_count table property
We were not displaying this anywhere, and it is now expensive to calculate.
Refs #419, #420",2019-05-02T05:29:47Z,2019-05-02T05:29:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ea66c45df96479ef66a89caa71fff1a97a862646,"Extract facet code out into a new plugin hook, closes #427 (#445)
Datasette previously only supported one type of faceting: exact column value counting.
With 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.
A new plugin hook, register_facet_classes, can be used by plugins to add in additional facet classes.
Each 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.",2019-05-03T00:11:26Z,2019-05-03T00:11:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
53d2f00b732488e0204332da181fc256aa00f41c,"Implemented ArrayFacet, closes #359",2019-05-03T00:21:27Z,2019-05-03T00:21:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
470cf0b05d4fda0d2563f81c7e32af13fe346ccc,"Add a max-line-length setting for flake8 (#444)
This stops my automatic editor linting from flagging lines which are too
long. It's been lingering in my checkout for ages.
160 is an arbitrary large number - we could alter it if we have any
opinions (but I find the line length limit to be my least favourite part
of PEP8).",2019-05-03T13:11:27Z,2019-05-03T13:11:27Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,45057,russss,9599,simonw
bf229c9bd88179c8ec16bd65fd4fb28ab4241c2e,"Pass view_name to extra_body_script hook (#443)
At the moment it's not easy to tell whether the hook is being called
in (for example) the row or table view, as in both cases the
`database` and `table` parameters are provided.
This passes the `view_name` added in #441 to the `extra_body_script`
hook.",2019-05-03T13:12:19Z,2019-05-03T13:12:19Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,45057,russss,9599,simonw
75a21fc2a136ccfc9da7bbf521cf288e63c9707f,"datasette publish cloudrun (#434) - thanks, @rprimet
New publish subcommand that publishes using the
new Google Cloud Run platform.
datasette publish cloudrun database.db",2019-05-03T13:59:01Z,2019-05-03T13:59:01Z,8ff51bbea01fdafe1fb3502111343b563f7d5a1b,Romain Primet,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,10352819,rprimet,9599,simonw
bade9daeb234e35e216adfe5f6d99f489892b2f8,"Docs for 'datasette publish cloudrun', refs #434",2019-05-03T16:16:35Z,2019-05-03T16:16:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d555baf508de71a5e3dc9a9aed2c13f6f202956d,"Suppress rendering of binary data - thanks @russss (#442)
Binary columns (including spatialite geographies) get shown as ugly
binary strings in the HTML by default. Nobody wants to see that mess.
Show the size of the column in bytes instead. If you want to decode
the binary data, you can use a plugin to do it.",2019-05-03T16:44:48Z,2019-05-03T16:44:48Z,cd9d55c7c0a7cc0ee69155676fd5e9fc6e1b884b,Russ Garrett,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,45057,russss,9599,simonw
01b3de5b66742f0f661183e9e2ef66be3600e831,"Unit test for binary data display, refs #442",2019-05-03T16:43:59Z,2019-05-03T16:45:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
553314dcd699a84aa7cc806377150ca0d57a6024,Use dist: xenial and python: 3.7 on Travis (#447),2019-05-03T18:16:52Z,2019-05-03T18:16:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
f853d5592ec7f901a50381de22a26a9ab098f885,"""python3 -m pip"" is clearer (thanks @jaap3) (#368)",2019-05-03T18:18:42Z,2019-05-03T18:18:42Z,93b11f15fd4dc15002baf3d9160dc6eb928bd883,Jaap Roes,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,48517,jaap3,9599,simonw
93c65d29ba372fa2262a641c0fecb7a071d998d6,Fixed 500 error on /-/metadata page,2019-05-03T20:40:24Z,2019-05-03T20:42:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
66c87cee0c7344c7877373c60b180c766c206101,"Mark codemirror files as vendored (#367)
This should stop GitHub from incorrectly stating that Datasette is 46% JavaScript.",2019-05-03T21:11:19Z,2019-05-03T21:11:19Z,93b11f15fd4dc15002baf3d9160dc6eb928bd883,Jaap Roes,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,48517,jaap3,9599,simonw
35d6ee2790e41e96f243c1ff58be0c9c0519a8ce,"Apply black to everything, enforce via unit tests (#449)
I've run the black code formatting tool against everything:
black tests datasette setup.py
I also added a new unit test, in tests/test_black.py, which will fail if the code does not
conform to black's exacting standards.
This unit test only runs on Python 3.6 or higher, because black itself doesn't run on 3.5.",2019-05-04T02:15:14Z,2019-05-04T02:15:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
55643430f7ac8d27e99b00e7cf79db741003e811,Added Code style: black badge,2019-05-04T02:21:21Z,2019-05-04T02:21:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
831515b834b1bf465a5c64e69ce505d22f75b35b,"Respect --cors for error pages, closes #453",2019-05-05T11:59:45Z,2019-05-05T12:12:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9617e92aa819ec7d7f09b9e44656ebba90c67f67,"Removed pointless return variable
handle_request() always returns None anyway.",2019-05-05T17:58:35Z,2019-05-05T17:58:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ec2db345e9465ee4ce3880dc62dcd453e66bcbca,Fixed crash on /:memory: page,2019-05-05T18:01:14Z,2019-05-05T18:01:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bfa2ae0d16d39bb82dbe4da4f3fdc3c7f6257418,"Promote Glitch instead of Datasette Publish
Datasette Publish is currently broken due to Zeit API and platform changes.",2019-05-09T00:02:47Z,2019-05-09T00:02:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
2db977d8f30e0eb8b7cda1481a4a8852b414915d,"tests/fixtures.py can now write out plugins too
This command:
python tests/fixtures.py \
fixtures.db \
metadata.json \
fixtures-plugins/
Will now create the fixtures.db and metadata.json files, AND create
a folder called fixtures-plugins/ containing two test plugins.
You can then run it like this:
datasette fixtures.db \
-m metadata.json --plugins-dir=fixtures-plugins/",2019-05-06T02:50:33Z,2019-05-09T16:44:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9fdb47ca952b93b7b60adddb965ea6642b1ff523,"New encode/decode_path_component functions
ASGI cannot differentiate between / and %2F in a URL, so we need an
alternative scheme for encoding the names of tables that contain special
characters such as /
For background, see
https://github.com/django/asgiref/issues/51#issuecomment-450603464
Some examples:
""table/and/slashes"" => ""tableU+002FandU+002Fslashes""
""~table"" => ""U+007Etable""
""+bobcats!"" => ""U+002Bbobcats!""
""U+007Etable"" => ""UU+002B007Etable""",2019-05-05T22:36:04Z,2019-05-09T16:44:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b80b03ac9a9b8fc676ae17570b32f5439545198e,"datasette publish cloudrun --service=x, closes #457",2019-05-09T16:45:01Z,2019-05-09T16:45:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f825e2012109247fa246e2b938f8174069e574f1,Run black and update docs for #457,2019-05-09T16:47:58Z,2019-05-09T16:48:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9f8d9fe262866ff3463f8e61214dcc6897bd5a9c,setup: add tests to package exclusion (#458),2019-05-10T01:54:50Z,2019-05-10T01:54:50Z,5e571aa122bb7440d7e40e22fd627b3fbbf12c38,Veit Heller,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,7725188,hellerve,9599,simonw
ad789eaaea069046d3b293d2c650a60acd72ced7,Added some things to .gitignore,2019-05-10T03:54:44Z,2019-05-10T05:28:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
de005b9b7d3db72375e6b8b048d1616a98e6347a,Fixed 500 error on homepage,2019-05-10T03:58:19Z,2019-05-10T05:28:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e7b31ae8c1a28cab9db8e165b3f21407c2e581e6,"Use now --target production instead of now alias
Fix for this error:
$ now alias --token=$NOW_TOKEN
> WARN! The `now alias` command (no arguments) was deprecated in favour of `now --target production`.
> Error! Couldn't find a deployment to alias. Please provide one as an argument.
The command ""now alias --token=$NOW_TOKEN"" exited with 1.
https://travis-ci.org/simonw/datasette/jobs/530597261",2019-05-11T17:06:23Z,2019-05-11T17:06:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
37adf3229038137de82a4e7331075212e7e94367,Changelog for 0.27.1,2019-05-11T18:34:13Z,2019-05-11T18:34:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a0d444837f6ce3fdaf6b0664605f74dd4a7f8215,"Finished implementation of ?_trace=1 debug tool
I redesigned the JSON output and added a handy ""traceback"" key showing
three relevant lines of the current traceback for each logged query.
Closes #435",2019-05-11T19:06:22Z,2019-05-11T19:06:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
09ef305c687399384fe38487c075e8669682deb4,"Fixed ""datasette publish now ... --alias=x""
The --alias argument can now be passed more than once.
Also updated our Travis configuration to use this.
Fixes #459",2019-05-11T20:20:36Z,2019-05-11T20:20:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
05cabaebd99b4aa388096de0a03fb52d08f6c117,"Pass --token to now alias, refs #459",2019-05-11T20:35:34Z,2019-05-11T20:35:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ce09e5d2d392634eced44c3c8d603d7c628e2822,Fixed tests relating to #459,2019-05-11T20:58:22Z,2019-05-11T20:58:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c0d1b4c32297453adaa4c159edee9be0a9617f2b,"""datasette inspect foo.db"" now just calculates table counts
Refs #462
* inspect command now just outputs table counts
* test_inspect.py is now only tests for that CLI command
* Updated some relevant documentation
* Removed docs for /-/inspect since that is about to change",2019-05-11T21:36:57Z,2019-05-11T21:36:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a187c81e0caf92ed52a380f262b6b5eabb399897,Black + fix broken test,2019-05-11T21:45:59Z,2019-05-11T21:45:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c692cd291111050483a32bea1ee08e994a0b781b,Fix test ordering,2019-05-11T22:03:52Z,2019-05-11T22:03:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
da0b3ce2b76227f1cd0cfdd3df361712c17ddcd0,"New run_sanity_checks mechanism, for SpatiLite
Moved VirtualSpatialIndex check into a new mechanism that should allow
us to add further sanity checks in the future.
To test this I've had to commit a binary sample SpatiaLite database to
the repository. I included a build script for creating that database.
Closes #466",2019-05-11T22:55:30Z,2019-05-11T22:55:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
24bf79d2f01f373eafcb41eaa1279a13711eff25,"Run sanity checks, not .inspect(), on startup
Also fixes tests that did NOT like a call to run_until_complete in the Datasette() constructor.",2019-05-11T23:22:55Z,2019-05-11T23:22:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e04511410f57e88c806455b9182a853bf07122a2,"Don't show hidden tables on index page, closes #455
Refs #460. Also bulked out HTML index page unit tests.",2019-05-14T15:46:57Z,2019-05-14T15:46:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5d6b2c30f15c36bcf49906acda7f15ec6232c984,"Include views on homepage, fix table counts
If we have less than 5 tables we now also show one or more views in the
summary on the homepage.
Also corrected the logic for the row counts - we now count hidden and
visible tables separately.
Closes #373, Refs #460",2019-05-16T00:28:07Z,2019-05-16T00:28:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
79303163b249829182f2e8d8c2d45e4526aa174f,"Row count fix + sort index page databases alphabetically
Sorting alphabetically should fix a test failure in Python 3.5
Refs #460",2019-05-16T00:40:10Z,2019-05-16T00:40:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
689cf9c139f57d6a3fd61e0c62fe66c793f234ae,"Index page only shows row counts for smaller databases
The index page now only shows row counts for immutable databases OR for
databases with less than 30 tables provided it could get a count for
each of those tables in less than 10ms.
Closes #467, Refs #460",2019-05-16T03:02:33Z,2019-05-16T03:02:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
faf33515b2e6ef8b891e7c9693c66aba2a77dc54,"Sometimes sort tables by number of relationships, closes #460",2019-05-16T03:23:33Z,2019-05-16T03:23:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b7fe722f0541c8c026e93dc59cfcff6c6201ddfd,Removed rogue print(),2019-05-16T03:25:51Z,2019-05-16T03:25:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2ad9d15cd6901654e6801e2faa29e6fc08bae5fa,"Table counts now handles SQL Logic Error too
I tried running Datasette against 22 database files at once and ran into
a weird error where the table counts broke with an SQL Logic Error
exception. Easy fix: catch that exception too and treat it the same as a
regular Interrupted error.",2019-05-16T03:55:28Z,2019-05-16T03:55:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
666c37415a898949fae0437099d62a35b1e9c430,"publish heroku now uses Python 3.6.8
Also refactored temporary_heroku_directory out of utils.py",2019-05-16T04:32:23Z,2019-05-16T04:32:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
623c552ff4e2eda9cc710063a7cc674aa49264f4,"'Try Datasette without installing anything using Glitch'
Also new 'Play with a live demo' section, both at the top of the Getting
Started documentation page.
https://datasette.readthedocs.io/en/latest/getting_started.html
Closes #464",2019-05-16T04:57:26Z,2019-05-16T04:57:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8d639dd0966888aacd56cc6fc4b03a6851dd06df,Docs on how to use sphinx-autobuild,2019-05-16T05:03:37Z,2019-05-16T05:03:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8461b930d5d4d3a282289b6663b252037ebd45d3,Wording tweaks,2019-05-16T05:09:06Z,2019-05-16T05:09:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
12350e8b8a5e55f0fba14bb37ca725d751056c92,Fixed broken link to global-power-plants demo,2019-05-16T05:12:36Z,2019-05-16T05:12:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
725b5b6a69f7fad9355524948942c632f8411d5b,Re-ordered documentation index page,2019-05-16T05:14:33Z,2019-05-16T05:14:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a88b599cce14cb10226c846ea93438e80b3b7911,Improved introduction copy on Plugins docs page,2019-05-16T05:18:02Z,2019-05-16T05:18:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a4645944752e713ff4acf946c1ee824be2e30963,Added inline contents for installation page,2019-05-16T10:15:03Z,2019-05-16T10:15:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
7c79eb974b3bd4fff2bf23c00d0c17958b5b7567,It's 2019 now,2019-05-16T10:20:08Z,2019-05-16T10:20:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
f31b9fe5ca3363ec56a44cb4e29c8b531e562067,Another link to Glitch,2019-05-16T13:26:46Z,2019-05-16T13:26:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
19370267666164ebf7e46aeb284a343f34bc03bd,Removed accidental R,2019-05-16T13:27:08Z,2019-05-16T13:27:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
909e66dfdb9b43eed718004eba903497bc67b25a,"Removed .inspect() and /-/inspect.json
Refs #462
/-/inspect.json may return in some shape in #465",2019-05-16T14:14:10Z,2019-05-16T14:15:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
21b57cdf9a4ede0f9444f15a3bd182be3b06f2c0,"serve --inspect-file=X now populates cached table counts
Closes #462",2019-05-16T14:30:32Z,2019-05-16T14:30:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
0dad111d24856ee6012850dac19929a48dc0a59f,"New introspection endpoint: /-/databases - closes #470
Refs #419 and #465",2019-05-16T14:49:34Z,2019-05-16T14:49:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
cccea85be6aaaeadb31f3b588ec7f732628815f5,"/-/databases sorts alphabetically
Should fix test failure in Python 3.5",2019-05-16T14:56:13Z,2019-05-16T14:56:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
db9dbfb816e1e9e4a0845884035eeaeb3110668e,"?_hash=1 no longer respected for mutable databases
Closes #471, refs #419",2019-05-16T15:10:25Z,2019-05-16T15:10:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
81ba98a5096e3cded20966b816df6eebfce76f26,"New performance documentation, closes #421",2019-05-19T05:31:03Z,2019-05-19T05:31:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7d8573d6724a13d5003e48d75682323ee1e55692,"Rename ""datasette publish now"" to ""datasette publish nowv1""
Also added an alias so ""datasette publish now"" continues to work.
Closes #472",2019-05-19T18:06:51Z,2019-05-19T18:06:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
870f6dd55fc5e7bc2f9db4ab22f90b7a734e402a,Replaced a straggling 'datasette publish now' reference,2019-05-19T18:12:53Z,2019-05-19T18:12:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
260085838887ee343f4d3b177c422e7aef5ade9d,Fixed some links,2019-05-19T18:17:35Z,2019-05-19T18:17:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
503fee891b81dfe10f4ecd7b6c3a1dca0eb0432b,"Removed 'datasette skeleton', closes #476",2019-05-19T20:05:38Z,2019-05-19T20:05:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
88976d6cd6e0f4809023149ce9f75a62975c9beb,"Source, license and about docs - closes #475",2019-05-19T20:13:27Z,2019-05-19T20:13:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f4eefdf19330bcd2e6867875a93a948c96912213,Do not allow downloads of mutable databases - closes #474,2019-05-19T20:41:09Z,2019-05-19T20:41:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a9d138702c5b4d1d5d9402272b030c3c3d945593,"Docs for facet-by-JSON-array, closes #477",2019-05-19T21:19:35Z,2019-05-19T21:19:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
17243fc35546fefbdba7bf7f3bc6ab13b06e39e3,Release notes for 0.28 - closes #463,2019-05-19T21:24:12Z,2019-05-19T21:24:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
afd0480d3f88012ef062ac82c67a995d6bfc5080,"Tidy up README, reducing duplication with docs
Refs #451",2019-05-19T21:31:03Z,2019-05-19T21:31:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
e518f76c5f5dd0138032bfb26387f5bb91086a3f,README for Datasette 0.28 release,2019-05-19T21:37:49Z,2019-05-19T21:37:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
48759d3b35de9fa1a89622587e38b286e0484997,New setup.py description,2019-05-19T21:57:47Z,2019-05-19T21:57:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e513a80afba30bca9eeebd71c5e6aa6d8a811f33,"Use -i with datasette publish, closes #469",2019-05-19T22:53:34Z,2019-05-19T22:53:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
4246e138f9512686413e97878659ef953337e57b,Typo fix,2019-05-19T23:14:09Z,2019-05-19T23:14:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
70d2858067d3c4da0e17c1d39e03de89190e94b6,Doc typo fix (#479),2019-05-20T16:42:28Z,2019-05-20T16:42:28Z,798007d3f9547f7bcb9228088222d35f30b5b716,Thomas Wood,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,98555,IgnoredAmbience,9599,simonw
de4503a136617697648473bc37780c6799eb4d98,Fix ?col__date= for columns with spaces,2019-05-21T05:36:22Z,2019-05-21T05:36:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2d14f21f85d3a1fe0ff914e01fcacd089704f7aa,Updated tests for date(...) lookup,2019-05-21T06:06:19Z,2019-05-21T06:06:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
967230c90e7467d4adb5df5a5732ece0247cf536,"Facet by date, closes #481",2019-05-21T06:09:22Z,2019-05-21T06:09:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f12220b17de426a356a716c58768071fce1f741a,Link to blog post about 0.28,2019-05-21T16:33:57Z,2019-05-21T16:33:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
c902590ada636098a705502d78f51b2f92973350,Stack Overflow survey added to news,2019-05-21T18:47:28Z,2019-05-21T18:47:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
172da009d890aa029cff7138b4dcfd4f60948525,"Added ?_through= table argument, closes #355
Also added much more interesting many-to-many fixtures - roadside attractions!",2019-05-23T05:44:34Z,2019-05-23T05:45:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6e79fecf7e57adf89e072c7ce3a70a83d3d10ec4,Travis now uses pytest -v,2019-05-23T05:54:40Z,2019-05-23T05:54:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8ab7dcb4f939f38a9a8f8d92e79f4271fa0a6874,"Update description, don't package tests/",2019-05-25T00:37:29Z,2019-05-25T00:37:29Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
eff52023c6d316ead336c198a2a9365ce4f91b09,"alter=True/--alter option to automatically add missing columns
Closes #18",2019-05-25T00:41:04Z,2019-05-25T00:41:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
747ea5d6bc31b31fd046e036d90fb603c55307b5,"Fixed help text for sqlite-utils enable-fts
Closes #19",2019-05-25T00:43:41Z,2019-05-25T00:43:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
251e4730412210e7fdb1efd476c730ed3ff10e81,"--json-cols option for outputting nested JSON, closes #20",2019-05-25T00:56:44Z,2019-05-25T00:56:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
ee017cdbddfb7cdbf522149d195dd41416b24ecd,"Release notes for 1.0, closes #22",2019-05-25T01:06:38Z,2019-05-25T01:06:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
092e1368edc4e7f4cb337a62eabd9a6e1245006b,Fixed typo,2019-05-25T14:24:17Z,2019-05-25T14:24:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
d923d847545e829bf946bb9170bebfc7c3f9d993,"Facet by many-to-many, closes #365",2019-05-25T16:05:52Z,2019-05-25T16:06:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9bd39672dead0da8570a9e68b70f9ca7a2b4e63e,"Better label detection, refs #485
This needs unit tests.",2019-05-25T16:14:57Z,2019-05-25T16:14:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
5ef3b2d6c902622b349a35d33eefc39f2a85e59e,"Don't use -v with pytest in Travis
It seems to slow things down more than I expected.",2019-05-25T16:19:30Z,2019-05-25T16:19:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
182a3017c24e3fa3af60e4ac0c91c7e48f8736fd,Sort keys to past tests in Python 3.5,2019-05-25T16:22:02Z,2019-05-25T16:22:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
026c84db30bd0a75ecde146a80a5d142078dc299,"Refactor Datasette methods to ConnectedDatabase
Refs #487",2019-05-27T04:56:43Z,2019-05-27T04:56:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6569287d9001fb7e37f99b4bc5eddb78d047fa6f,"Refactored ConnectedDatabase to datasette/database.py
Closes #487",2019-05-27T05:07:27Z,2019-05-27T05:07:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3fe21b91bb37b0dded09f73e119b5e1ae5035d85,Typo,2019-05-27T18:27:21Z,2019-05-27T18:27:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
20f98c3e20902c62db610e43155c476508ead4a4,"Databse.primary_keys(table) / fts_table(table) refactor, closes #488
Also cleaned up some unused imports spotted by the linter.",2019-05-27T18:27:42Z,2019-05-27T18:27:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
edb36629e7356f70f42b9d37fea5dfe9cc3c364a,"Database.get_outbound_foreign_keys() refactor
Following this, the only module that ever makes calls to the low-level
execute_against_connection_in_thread() method is datasette/database.py",2019-05-27T18:41:44Z,2019-05-27T18:41:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
bd4dbc8519c24c2799dfa5e69bb3dc37a3f3092e,"Rename InterruptedError => QueryInterrupted, closes #490",2019-05-28T00:16:36Z,2019-05-28T00:16:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
cec8c3c4826da8999a5d0f905596be8de519cbc9,sqlite-utils rows now obeys --json-cols,2019-05-28T00:47:59Z,2019-05-28T00:47:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
63953f56e7001c2e21bc37d5afac699c48c00b9e,Release 1.0.1,2019-05-28T00:50:28Z,2019-05-28T00:50:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
839e55bf0a5cc2ef4d47074b7d804f7f2d5accb3,"Start of unit tests for Database class, refs #485",2019-05-28T01:42:30Z,2019-05-28T01:42:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
de92c0513409e72af78e6796c47c8954fd47576e,Fixed duplicate function name,2019-05-28T01:49:57Z,2019-05-28T01:49:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f069950a143b97b384ec39a86db28e6f2830947d,Removed obsolete __init__ method,2019-05-28T02:03:36Z,2019-05-28T02:03:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9c58d048ec4af8a35b680a5654c2a18985704f8b,"Fix pagination when sorted by expanded foreign key
Closes #489",2019-05-28T02:23:18Z,2019-05-28T02:23:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2a4b892d6c0f6609ea48df0dc393397af2b7b1c1,Tidy up with Black,2019-05-28T02:28:47Z,2019-05-28T02:28:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
1e28eeee8ce55ea68eddb228294a1eff6785b497,Fixed RST syntax bug,2019-05-28T05:25:03Z,2019-05-28T05:25:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
00c5a49a87e1ef3e39bb7ec5ab61f7c17f9ecd60,"Option to ignore inserts if primary key exists already
Support for SQLite's INSERT OR IGNORE
In the API layer it looks like this:
fresh_db[""test""].insert({""id"": 1, ""bar"": 3}, ignore=True)
For the CLI layer it looks like this:
$ sqlite-utils insert data.db dogs dogs.json --ignore
Closes #21",2019-05-29T04:15:57Z,2019-05-29T04:15:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
50e2f94b583436b1a6c54be04e78a3029de6b521,"Ability to add a column that is a foreign key reference
Python API:
db[""dogs""].add_column(""species_id"", fk=""species"")
# or
db[""dogs""].add_column(""species_id"", fk=""species"", fk_col=""ref"")
CLI:
$ sqlite-utils add-column mydb.db dogs species_id --fk species
# or
$ sqlite-utils add-column mydb.db dogs species_id --fk species --fk-col ref
Closes #16",2019-05-29T04:54:43Z,2019-05-29T04:54:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
26b2cf3418f1e19b5436a7385c3945384838e594,Changelog for 1.1 + docs for --ignore/ignore=True,2019-05-29T05:06:22Z,2019-05-29T05:06:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
7a3041b1adcb1c95f2edeb789e4b1ecac34f0eab,Releasing 1.1,2019-05-29T05:12:03Z,2019-05-29T05:12:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
803f750309bf0cd5b7501228c1efcf9a35686d74,Added datasette-jq plugin to ecosystem,2019-05-30T01:51:10Z,2019-05-30T01:51:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945,"Upgrade pytest to 4.6.1, pluggy to 0.12.0 (#497)",2019-06-03T02:06:26Z,2019-06-03T02:06:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
0c756b8cd948bd69b7342c0d0e93bad4ff4e97b2,Added datasette-bplist plugin to ecosystem,2019-06-09T02:11:59Z,2019-06-09T02:11:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
6ccfcefb782bbf86b87bf047d01b979782aa6d97, Added datasette-render-binary plugin to ecosystem,2019-06-09T16:49:06Z,2019-06-09T16:49:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
aa911122feab13f8e65875c98edb00fd3832b7b8,Fix typo in install step: should be install -e (#500),2019-06-11T18:48:40Z,2019-06-11T18:48:40Z,6067f58a7236b3d01e4166f795a161c7469a447c,Tom MacWright,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,32314,tmcw,9599,simonw
2fed87da6ea990d295672e4db2c8ae97b787913e,"--not-null-default and not_null_default=, refs #24",2019-06-13T01:35:02Z,2019-06-13T01:35:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c2622ceabd073b43b5789ccaa5036471b3c96e12,"cd docs && make livehtml
Enabled make rule for sphinx-autobuild",2019-06-13T04:50:18Z,2019-06-13T04:50:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
d645032cfa4edbccd0542eecdddca29edf9f7b07,"add_foreign_key can now detect table and pk, refs #25",2019-06-13T04:51:09Z,2019-06-13T04:51:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
07a10bdb2c09c7e275a9db546c42900b1dea4e75,foreign_keys=[...] can now detect tables and keys - closes #25,2019-06-13T05:32:26Z,2019-06-13T05:32:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
362359da7eed7dc6589589122960c0a0d0460d7c,"not_null= and defaults= arguments to various Python methods, refs #24",2019-06-13T06:10:07Z,2019-06-13T06:10:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
208f56fbaf173fdd8cb03a840e218f85d414a144,"--not-null and --default options to insert/update, closes #24",2019-06-13T06:30:16Z,2019-06-13T06:30:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
1c8a0e874fe0fc2eaade1a6c44d947e1e6c7b2b6,Release 1.2,2019-06-13T06:39:59Z,2019-06-13T06:39:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
d4df640d187d01a0ee81c238082a690bbefd0800,"Refactored view class hierarchy, refs #272
See https://github.com/simonw/datasette/issues/272#issuecomment-502393107",2019-06-15T19:41:34Z,2019-06-15T19:41:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
35429f90894321eda7f2db31b9ea7976f31f73ac,"Revert ""New encode/decode_path_component functions""
Refs #272
This reverts commit 9fdb47ca952b93b7b60adddb965ea6642b1ff523.
Now that ASGI supports raw_path we don't need our own encoding scheme!",2019-06-19T00:22:26Z,2019-06-19T00:23:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
364b0fb6784f72b5c4048a3d6b697fba5ec86db7,Remove .DS_Store,2019-06-20T23:55:39Z,2019-06-20T23:56:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
976263effcc2b9658006f739f7f7f02554f8d97f,"Sanity check add_foreign_key() column exists, closes #29",2019-06-20T23:58:09Z,2019-06-20T23:58:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
46281c9db0d6eb50203880c83363a8b279db4ecd,Release 1.2.1,2019-06-21T00:01:21Z,2019-06-21T00:01:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,2946d096d0cdefdc017559e6b57e87658736e843,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
ba8db9679f3bd2454c9e76e7e6c352126848b57a,"Port Datasette from Sanic to ASGI + Uvicorn (#518)
Datasette now uses ASGI internally, and no longer depends on Sanic.
It now uses Uvicorn as the underlying HTTP server.
This was thirteen months in the making... for full details see the issue:
https://github.com/simonw/datasette/issues/272
And for a full sequence of commits plus commentary, see the pull request:
https://github.com/simonw/datasette/pull/518",2019-06-24T03:13:09Z,2019-06-24T03:13:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
a5591236c46f507b9e46b1b52e51d5f46ffd6913,"Install test dependencies so deploy can work
python tests/fixtures.py needs asgiref or it fails with an error",2019-06-24T03:23:07Z,2019-06-24T03:23:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
cdd24f3eaa207f67d948c1876725b0f84654a623,Added datasette-doublemetaphone to list of plugins,2019-06-24T04:23:24Z,2019-06-24T04:23:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
34e292d24dc2b8376236472bec3cce1c556ddfe5,"Porting Datasette to ASGI, and Turtles all the way down",2019-06-24T05:28:37Z,2019-06-24T05:28:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
6341f8cbc7833022012804dea120b838ec1f6558,"Better coverage of sqlite-utils in FTS docs, closes #525",2019-06-24T16:28:42Z,2019-06-24T16:28:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9e97b725f11be3f4dca077fe5569078a62ec2761,pip install -e .[docs] for docs dependencies,2019-06-25T12:08:04Z,2019-06-25T12:08:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
76882830548e16905348ee75acb0044cb8e1fd20,Typo,2019-06-25T15:36:39Z,2019-06-25T15:36:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
f03d2eddd8d861a7cf43a0ef3d72f67aae571dd4,Handle datetime.time correctly,2019-06-26T04:18:35Z,2019-06-26T04:18:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
641eccc2b7a7d39f234de8e42c7ebc426d350984,Release 1.2.2,2019-06-26T04:20:55Z,2019-06-26T04:20:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
86bd2bba689e25f09551d611ccfbee1e069e5b66,1.2.2 release notes,2019-06-26T04:23:45Z,2019-06-26T04:23:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
997d8758fc8992be93d5984556e5b9e3bad4205f,"db.add_foreign_keys() method
Closes #31",2019-06-29T06:27:38Z,2019-06-29T06:27:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
b4e36546b093281d1e01549c6d8c4c66b1063675,Release 1.3,2019-06-29T06:31:18Z,2019-06-29T06:32:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
0fe3b38290e1bb2d92746d90318d8662b57218bd,"Added db-to-sqlite to ""Related projects""",2019-06-29T21:34:24Z,2019-06-29T21:34:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
e8f887ef4a0977243811b90bc2ce9aed9d2c206a,"sqlite-utils index-foreign-keys / db.index_foreign_keys()
Closes #33",2019-06-30T23:50:54Z,2019-06-30T23:50:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
fad14ab9438869d38003254f3fc1444af21a2cdb,Release 1.4,2019-06-30T23:51:17Z,2019-06-30T23:51:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
13e4f9a676da91e271a243f18f3a4ebe4f84557a,"Unit test for _table custom template, refs #521",2019-07-03T03:06:22Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
754836eef043676e84626c4fd3cb993eed0d2976,"New experimental Row() for templates, refs #521",2019-06-25T12:02:42Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b9ede4c1898616512b5d204f9c941deff473cbe4,"Updated custom template docs, refs #521",2019-07-03T03:13:34Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c461357b4483f1cc44efb3f12cf91cc1fb45ab1d,"Default to raw value, use Row.display(key) for display, refs #521",2019-06-25T12:21:10Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
e7120d91f6ab7917b57b0e966259082d513c36ee,"Rename _rows_and_columns.html to _table.html, refs #521",2019-07-03T00:50:45Z,2019-07-03T03:23:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
4d2fdafe39159c9a8aa83f7e9bfe768bbbbb56a3,"Added asgi_wrapper plugin hook, closes #520",2019-07-03T03:57:28Z,2019-07-03T04:06:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f0d32da0a9af87bcb15e34e35424f0c0053be83a,"Switch to ~= dependencies, closes #532 (#536)
* Switch to ~= dependencies, closes #532
* Bump click and click-default-group
* imp. is deprecated, use types.ModuleType instead - thanks https://stackoverflow.com/a/32175781
* Upgrade to pytest 5",2019-07-03T04:32:55Z,2019-07-03T04:32:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
1a053d9438cb217e54e7784777e11620ece8fed0,Added Python library example to README,2019-07-03T18:04:03Z,2019-07-03T18:04:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
a2d45931935f6bb73605a94afedf9e78308c95d6,"Secret plugin configuration options (#539)
Closes #538",2019-07-04T05:36:44Z,2019-07-04T05:36:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
25ff0a8ba6b2e3247a66048ad173ba5ed8a38b80,"Fix for accidentally leaking secrets in /-/metadata, closes #538",2019-07-04T05:47:45Z,2019-07-04T05:47:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
107d47567dedd472eebec7f35bc34f5b58285ba8,Black,2019-07-04T05:56:13Z,2019-07-04T05:56:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
16fdabda978fa659bed0e8670a385dab3c2cd197,Better robustness in face of missing raw_path,2019-07-04T14:03:02Z,2019-07-04T14:03:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a18e0964ecd04593f227616538a80dee08768057,"Refactor templates for better top nav customization, refs #540",2019-07-05T20:34:41Z,2019-07-05T20:34:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
fcfcae21e67cc15090942b1d2a47b5f016279337,"extra_template_vars plugin hook (#542)
* extra_template_vars plugin hook
Closes #541
* Workaround for cwd bug
Based on https://github.com/pytest-dev/pytest/issues/1235#issuecomment-175295691",2019-07-06T00:05:56Z,2019-07-06T00:05:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
d95048031edb02bbc9892879507f55a4f29c5459,"Split pypi and docker travis tasks (#480)
Thanks @glasnt!",2019-07-07T20:03:19Z,2019-07-07T20:03:19Z,f9a18a704545f33349d7b28b24faf7063846ae0a,Katie McLaughlin,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,813732,glasnt,9599,simonw
f80ff9b07b5ecdfeca4aa81f5728812a22bfb019,"min-height on .hd
Now it should be the same size on the homepage as it is on pages with breadcrumbs",2019-07-07T20:16:48Z,2019-07-07T20:16:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
787dd427de97dcbd0843611f1aef6d157d8bb0b6,"white-space: pre-wrap for table SQL, closes #505",2019-07-07T20:21:50Z,2019-07-07T20:26:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
912ce848b9fa8b1642c800b446f504518bc39f2a,"Fix nav display on 500 page, closes #545",2019-07-07T20:25:38Z,2019-07-07T20:26:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
9998f92cc05e6061a81af6cf194c3caa4d0759c1,"Updated custom facet docs, closes #482",2019-07-07T23:19:02Z,2019-07-07T23:19:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c5542abba564a0b320a1201a8cc85b48c743005d,"Removed ManyToManyFacet for the moment, closes #550",2019-07-07T23:21:11Z,2019-07-07T23:21:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
aa4cc99c0221a98850f8c801c329aac40f243b7b,"Removed facet-by-m2m from docs, refs #550
Will bring this back in #551",2019-07-08T01:22:05Z,2019-07-08T01:22:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2d04986c4438cdfd3bb9d156d9dfcf830cb87b49,"Added datasette-auth-github and datasette-cors plugins to Ecosystem
Closes #548",2019-07-08T02:02:27Z,2019-07-08T02:02:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
973f8f139df6ad425354711052cfc2256de2e522,"--plugin-secret option for datasette publish
Closes #543
Also added new --show-files option to publish now and publish cloudrun - handy for debugging.",2019-07-08T02:06:31Z,2019-07-08T02:06:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
fb7ee8e0ad59a15083234a48e935525f6e7257dd,Changelog for 0.29 release,2019-07-08T03:14:27Z,2019-07-08T03:14:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
81fa8b6cdc5457b42a224779e5291952314e8d20,"News: Datasette 0.29, datasette-auth-github, datasette-cors",2019-07-08T04:36:27Z,2019-07-08T04:36:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
b0a2f897f4e70fd9cbb0da227da75d3f5eaa5248,Typo fix,2019-07-09T11:42:40Z,2019-07-09T11:42:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
5be66529a3887a88b2c08d23c82e3aa8de344797,Fixed RST and Typo,2019-07-09T11:49:32Z,2019-07-09T11:49:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
fef96163d92e39a804824ec98d6053e888be76a2,Minor markup cleanup,2019-07-09T11:55:04Z,2019-07-09T11:55:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
9ca860e54fe480d0a365c0c1d8d085926d12be1e,"Add support for running datasette as a module (#556)
python -m datasette
Thanks, @abdusco",2019-07-11T16:07:44Z,2019-07-11T16:07:44Z,3684ad6084bc36bc5a059f0d6eb929bcf9854536,Abdus,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,3243482,abdusco,9599,simonw
74ecf8a7cc45cabf369e510c7214f5ed85c8c6d8,"Fix static mounts using relative paths and prevent traversal exploits (#554)
Thanks, @abdusco! Closes #555",2019-07-11T16:13:19Z,2019-07-11T16:13:19Z,3684ad6084bc36bc5a059f0d6eb929bcf9854536,Abdus,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,3243482,abdusco,9599,simonw
cc27857c722c172b3c9bd93c92f02e19f2a55d6c,Removed unused variable,2019-07-11T16:14:24Z,2019-07-11T16:14:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2a94f3719fb2c4335fcda374fa92f87272b02d34,Release 0.29.1,2019-07-11T16:17:55Z,2019-07-11T16:17:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f2006cca80040871439055ae6ccbc14e589bdf4b,Updated release notes,2019-07-11T16:27:28Z,2019-07-11T16:27:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d224ee2c98ac39c2c6e21a0ac0c62e5c3e1ccd11,"Bump to uvicorn 0.8.4 (#559)
https://github.com/encode/uvicorn/commits/0.8.4
Query strings will now be included in log files: https://github.com/encode/uvicorn/pull/384",2019-07-13T22:34:57Z,2019-07-13T22:34:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
afc2e4260ab8b28e132c834185c5294fb27543f1,News: Single sign-on against GitHub using ASGI middleware,2019-07-14T01:42:35Z,2019-07-14T01:42:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
5ed450a3328bd6a6a918474eeb5446d8a704df1c,Fixed breadcrumbs on custom query page,2019-07-14T02:05:39Z,2019-07-14T02:05:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
90d4f497f9b3f6a5882937c91fddb496ac3e7368,"Fix plus test for unicode characters in custom query name, closes #558",2019-07-14T02:49:24Z,2019-07-14T02:49:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
6abe6faff6b035e9334dd05f8c741ae9b7a47440,Release 0.9.2,2019-07-14T03:04:05Z,2019-07-14T03:04:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
a9453c4dda70bbf5122835e68f63db6ecbe1a6fc,"Fixed CodeMirror on database page, closes #560",2019-07-14T03:38:40Z,2019-07-14T03:38:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ba6bd47f15c154e348c3c85c05858053a4ab7bab,Typo fix,2019-07-14T16:25:57Z,2019-07-14T16:25:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
41d1751aec9c08c05191f9806aa07d56b565e9d1,Release 1.4.1,2019-07-14T17:08:34Z,2019-07-14T17:08:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
72a6f430dfa99f99ca3204ac7e7bd280e1bd421b,Update PyPI classifiers,2019-07-14T17:16:36Z,2019-07-14T17:16:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
f70e35c9bbc0d5803bc0aee572b894a8b21ac41e,"Added table.rows_where(where, args) method",2019-07-14T18:58:40Z,2019-07-14T18:58:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
a8ecf95f115e70eafc4cb352c4677e6e1418afbd,Use pip install -e .[docs] for documentation dependencies,2019-07-14T19:23:31Z,2019-07-14T19:23:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
91311bb0db14d410200845b2367f3c9d73e74db6,"Sphinx docs now pull version info from git tag
Based on http://dreamiurg.net/2011/10/03/using-git-to-get-version-information/",2019-07-14T19:24:45Z,2019-07-14T19:24:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
65b2156d9cc0aa6b5c3dc7a6bd600d98b281a13b,"Show version in docs
Thanks, @nedbat
https://twitter.com/nedbat/status/1150490436114534400",2019-07-14T19:45:00Z,2019-07-14T19:45:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c65b67ca46f70e2da46a5b945f4ed358173262e9,".get() method plus support for compound primary keys (#40)
* create_table now handles compound primary keys
* CLI now accepts multiple --pk for compound primary keys
* Docs for compound primary keys with CLI and Python library
* New .get() method plus documentation
Closes #36, closes #39",2019-07-15T04:28:51Z,2019-07-15T04:28:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
ef112ffc94e157b2152ebc4e01ab750570f447e8,Release 1.5,2019-07-15T04:34:49Z,2019-07-15T04:37:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
09316835e609e2321dafa08d37d8f227521373f8,"Implemented --tsv option, closes #41",2019-07-19T04:50:38Z,2019-07-19T04:50:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
c88f0a4d4617ff832aa728aac1da3500548c3137,Release 1.6,2019-07-19T04:51:21Z,2019-07-19T04:51:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
47a15cba605f045bdb5b224362f7fd27f6a47956,Initial framework,2019-07-20T05:12:38Z,2019-07-20T05:12:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
997136e714281c82955464fa13071e6b3e986eed,"Added export.xml test fixture
Also utils.find_all_tags() utility function",2019-07-20T05:40:04Z,2019-07-20T05:40:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
8fb7609e5b133fd8b53a79772ee5501dac60ea88,Usage instructions,2019-07-20T05:57:26Z,2019-07-20T05:57:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
d016e70c31cf84ba0f5ec3102546db54a51aaffb,"Export activity summaries, closes #3",2019-07-20T05:57:58Z,2019-07-20T05:57:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
8cb1d04ae0425d471da1e6df21a92bc1a1764c24,"Import workouts, closes #2",2019-07-20T06:10:18Z,2019-07-20T06:10:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
38464031acf34b8fecb6a719971f2d95045dcd01,"Import records, closes #4",2019-07-20T06:19:31Z,2019-07-20T06:19:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
d64299765064501f4efdd9a0b21dbdba9ec4287f,Fixed URLs in README,2019-07-20T06:22:57Z,2019-07-20T06:22:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
63aaf80e5b3d27ded34f557df2c689c9d9854e97,"Use hash_id in less places
I was getting import errors when duplicate hash_id was generated.",2019-07-20T16:42:26Z,2019-07-20T16:42:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
2bb3bddec9db5a47f0d064bdc124c0c6c12780e5,Release 0.2,2019-07-20T16:44:05Z,2019-07-20T16:44:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
5fa404135a2704fe94dd976bf197472acffded28,"Added progress bar, --xml and --silent options
--xml lets you pass path to an XML file - I used this to add some
unit tests for the CLI itself.
--silent means ""don't show a progress bar""
Closes #5",2019-07-22T02:47:56Z,2019-07-22T02:47:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
b63bab25de0d6db72d5e410789fbc9bfa1eace93,"Better progress bar label, refs #5",2019-07-22T03:17:20Z,2019-07-22T03:17:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
f518d8c7099a9f8826920ab9634a159036094cf7,"Break records out into separate tables, closes #6",2019-07-22T03:28:43Z,2019-07-22T03:28:43Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
604d423f92732c7f6d2b4402cc80734ac3bd7c21,Documentation for progress bar / --silent,2019-07-22T03:31:02Z,2019-07-22T03:31:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
5d7e14d40d5a4cfd133ca5faa442312f607784c5,Release 0.3,2019-07-22T03:31:54Z,2019-07-22T03:31:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
152eb2afaf35cde5d44e50369f4cb32a72e72fdb,Use pysqlite3 if available,2019-07-22T22:39:35Z,2019-07-22T22:39:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
57e43baece0936d75c74711f5f6835a5c1c1ac42,"Table options can now be passed to constructor OR to insert_all()
If you want to set default options for a table, you can do this:
table = db.table(""dogs"", pk=""id"", column_order=[""name"", ""age""])
If you pass those keyword arguments to the .insert/.update/etc
methods they will over-ride the defaults you set on the table.
table = db[""dogs""] # This still works too",2019-07-22T23:30:54Z,2019-07-22T23:30:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
be655827b4a4ff88eb4813075339b0b01e018145,use_table_factory is a better name than use_class_constructor,2019-07-22T23:33:37Z,2019-07-22T23:33:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
127a836054fb784dc02ea40dadb55b3741dcd603,Documented new table configuration options via .table(),2019-07-22T23:59:17Z,2019-07-22T23:59:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
58db40d67c12cb4353a825d4aa215141a51b9e6e,Better __repr__ for tables,2019-07-23T00:05:51Z,2019-07-23T00:05:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
034d498b319d37b0639203fa4fbb304715b3ae03,Support Database(memory=True) for in-memory databases,2019-07-23T00:12:54Z,2019-07-23T00:12:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
535a731b9310a07b10a8649313c8bd8fafcdadea,Fixed lint error,2019-07-23T07:41:34Z,2019-07-23T07:41:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
f3a4c3d3ee6475a6caf3c9606656dbaf1df020b7,db.create_table() now remembers configs,2019-07-23T07:47:19Z,2019-07-23T07:47:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e22cfcd953f967f6e9551b3a048d7c40726f349b,Removed a TODO which is now done,2019-07-23T13:05:04Z,2019-07-23T13:05:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
580502431614d3653c93249988290265f3163d4b,"Implemented table.lookup(...), closes #44
* Add pk column if missing from insert
* Implemented table.lookup(...)",2019-07-23T13:06:59Z,2019-07-23T13:06:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
941d281aee6eac20ad64b505511da7e47f697700,"extracts= table parameter, closes #46",2019-07-23T17:00:42Z,2019-07-23T17:00:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
6fcc27be26a560d525a1e0cf0ab225c5f7c19daf,Release 0.3.1,2019-07-24T06:33:22Z,2019-07-24T06:34:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
c8392df78ee3e1643d18b747a4abf585d84d5d88,"Use less RAM (#8)
* Call el.clear() for each element
* Clear root element each time
Memory profile graphs here: https://github.com/dogsheep/healthkit-to-sqlite/issues/7",2019-07-24T06:35:51Z,2019-07-24T06:35:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,197882382,healthkit-to-sqlite,9599,simonw,19864447,web-flow
9b7be79c86b4283f24a64f62257c918f12542997,Release 1.7 - with lookup table support,2019-07-24T06:50:41Z,2019-07-24T06:50:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
35162fce0d216e15508964f7209e022bad31bb89,Fix for #9 - too many SQL variables,2019-07-26T06:00:27Z,2019-07-26T06:00:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
58b65b504d61bea5d3ab3696257204b925063a6b,Release 0.3.2,2019-07-26T06:02:30Z,2019-07-26T06:02:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
f04deebec4f3842f7bd610cd5859de529f77d50e,Refactored connection logic to database.connect(),2019-07-25T13:07:44Z,2019-07-26T10:22:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
27cb29365c9f5f6f1492968d1268497193ed75a2,"Fix numerous typos (#561)
Thanks, @minho42!",2019-07-26T10:25:44Z,2019-07-26T10:25:44Z,710d89efa471054d77ad1b7e2b26e2e78e1153e7,Min ho Kim,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,15278512,minho42,9599,simonw
62d292252804aa0a0c1d6fdc9ea1722b5ffb20a8,"Fix for too many SQL variables, closes #50",2019-07-28T11:10:56Z,2019-07-28T11:10:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
0c1b8b7f96be874bb63801f69323960f277aa49a,Use assertion to enforce <=999 columns,2019-07-28T11:41:57Z,2019-07-28T11:41:57Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
535a5ea476fb41738c839ac609b43d2f019cea96,Documentation and tests for table.drop() method,2019-07-28T11:22:12Z,2019-07-28T11:57:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
9cb045284ede8009c12abdb1755b5b20f6ccff5f,"Fix for too many SQL variables on bulk insert
SQLite has a max of 999 variables per query, so bulk inserts of e.g. 100 records with 11 columns each were failing with an error.
We now dynamically adjust the batch_size to ensure this doesn't happen.
Closes #50",2019-07-28T11:59:32Z,2019-07-28T11:59:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
a6749cdf43229c4f7864c946496e9ac0141627d9,Release 1.7.1,2019-07-28T12:00:51Z,2019-07-28T12:00:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
15368c5f59066fc9c6b8ce5d0578132b1b68b75d,"First working version of .update(), refs #35",2019-07-14T17:03:18Z,2019-07-28T12:15:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
455071f3c5e76141926eb1e77656cb131a826707,"Unit tests for .update()
Also now set .last_pk to lastrowid for rowid tables.",2019-07-28T12:30:28Z,2019-07-28T12:30:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e4a11b181580605b1711acee4828039137e2fcd9,"Refactor .update() to use .get()
.pks introspection now returns [rowid] for rowid tables.",2019-07-28T12:44:33Z,2019-07-28T12:44:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
5225dbb89c08a73b1af536105f7fcff64aef5638,Unit tests for invalid .update() pks,2019-07-28T14:46:49Z,2019-07-28T14:46:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
4ab8d46b03a92c68e9694ea7c285d3852ef58530,"Added table.update(pk, ..., alter=True)",2019-07-28T14:51:49Z,2019-07-28T14:51:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
bc9c4db34b815f5385abbf4bb491bab0e10779db,.update(...) with no update argument sets last_pk,2019-07-28T14:59:52Z,2019-07-28T14:59:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
598608374625cbfa0799f5b7a210ca6e192f9c0b,Documentation for table.update() method,2019-07-28T15:03:44Z,2019-07-28T15:03:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
16d7008002b43cf47a973791da93e5cdd5913fc3,Applied black,2019-07-28T15:37:27Z,2019-07-28T15:37:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
e1021030dd2d8d4705ad0e7bae389eeaea7fa17b,Release 1.8,2019-07-28T15:41:42Z,2019-07-28T15:41:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
0747dabb24b608e8524de4858ce50c60ba7e471b,"table.update() method
* Also now set .last_pk to lastrowid for rowid tables
* table.pks introspection now returns [""rowid""] for rowid tables
Closes #35",2019-07-28T15:43:50Z,2019-07-28T15:43:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
35eeafaaa33648a528cbcd57ceca966fea19c6ae,"table.m2m(...) method, with tests",2019-07-31T05:31:27Z,2019-07-31T05:51:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
ff2348e71af6705dfa3220d823ce0285e95b127f,Added failing tests,2019-07-31T06:16:46Z,2019-07-31T06:16:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
ba1211d4456911bf0bd13f2e753a56ed988df3b4,"Implemented .m2m(table, lookup=...)",2019-08-03T14:28:03Z,2019-08-03T14:28:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
b6b92980c00eda14a4d759b724139a0a2d321007,"table.m2m(..., m2m_table=x) argument",2019-08-03T17:51:22Z,2019-08-03T17:51:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
b9256413d26875c2bc3841e68b90d3842e88ccb8,"db.m2m_table_candidates(table, other_table)",2019-08-03T18:07:06Z,2019-08-03T18:07:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
d96a8f149ecb4d3fd8a8e5226774b7060c96ec95,Use existing m2m table if one exists,2019-08-03T18:15:16Z,2019-08-03T18:16:51Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
5516175ca6b9b2d48b7a929ba074b1ef69e981b0,Allow table objects to be passed to .m2m(),2019-08-04T02:09:17Z,2019-08-04T02:09:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
243bcaa1acd32a173c07b24dca553991493005a0,Documentation for .m2m() table method,2019-08-04T02:29:19Z,2019-08-04T02:29:19Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
6ac0a5df5d714f6f3b33a92eed9ccbd8eebe66a4,Release 1.9,2019-08-04T03:35:30Z,2019-08-04T03:35:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
4c0912dbf27b12071aca9569bcf7233e60f91c7c,"table.m2m() method for creating many-to-many records
Closes #23",2019-08-04T03:37:32Z,2019-08-04T03:37:32Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
0e7b461eb3e925aef713206c15794ceae9259c57,Fixed typo,2019-08-04T04:13:31Z,2019-08-04T04:13:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
9faa98222669723d31e918bb16a42c13c363817f,"Ability to introspect and run queries against views (#55)
* db.views_names() method and and db.views property
* Separate View and Table classes, both subclassing new Queryable class
* view.drop() method
* Updated documentation",2019-08-23T12:19:41Z,2019-08-23T12:19:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
53124bc02fac5a89b154513f5fdc67431901fad9,Release 1.10,2019-08-23T12:24:04Z,2019-08-23T12:24:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
68a5cb1b8ef2264bed68d4763f04bd47b1aa5d05,Corrected .table_views() -> .view_names(),2019-08-26T05:03:22Z,2019-08-26T05:03:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
cb70f7d10996b844154bf3da88779dd1f65590bc,Corrected .views_names() -> .view_names(),2019-08-26T05:04:14Z,2019-08-26T05:04:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
06dfb95a5ca5c0682ccad87b6150a2b0db66ade1,"Initial working version
Only supports loading checkins from a JSON file on disk:
swarm-to-sqlite swarm.db -f checkins.json",2019-08-30T11:26:27Z,2019-08-30T11:26:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
cfd1ac4f0eb942fd81ac86e148b4ca20915343cd,Implemented events and posts,2019-08-30T14:27:10Z,2019-08-30T14:27:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
00e2473f919d921a2aa1c9264397e3e593e3907e,Added support for stickers,2019-08-30T14:45:26Z,2019-08-30T14:45:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
e04ec1f86e35e14ec9148108de27d4305bb79230,Added checkin_details SQL view,2019-08-30T15:01:17Z,2019-08-30T15:01:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
61c7734979a5592526ea6841e77175de2163eb17,"Require at least sqlite-utils 1.10
We need it for the view introspection methods",2019-08-30T17:02:46Z,2019-08-30T17:02:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
b77e0d54c59825ebe0d1cc7f01bbe954cc6fd70d,"Added venue_details view
Includes date of first and last checkin plus count of checkins",2019-08-30T17:16:24Z,2019-08-30T17:16:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
7bc005a8664ae1b3f831c4714534d612561d5e93,Added venue_categories to venue_details view,2019-08-30T17:18:44Z,2019-08-30T17:19:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
31ea281c40540013c5dbae84d67c5193f40b0e3e,Use group_concat(distinct categories.name) for venue_details view,2019-08-30T17:25:04Z,2019-08-30T17:25:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
0e5b6025c6f9823ff81aa8aae1cbff5c45e57baf,"Can now fetch data from Foursquare API, closes #1
Also made createdAt field the original unix timestamp
and added a new created field which is the ISO formatted version.",2019-08-30T18:16:20Z,2019-08-30T18:19:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
3f8cadd6a33254788839a5c1e64ff61872aeb54a,"Implemented --save option, closes #2
Also added usage instructions to README.",2019-08-31T02:36:52Z,2019-08-31T02:36:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
5da18118ea820b3e76dad4a8d53cd4de6f63e658,Run pytest with -vv in Circle CI,2019-08-31T02:39:12Z,2019-08-31T02:39:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
c8246218c074d4a53394de9d364eb6c21b245104,"Treat Foursquare timestamps as UTC, closes #5",2019-08-31T02:46:58Z,2019-08-31T02:46:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
7bd30150a32e409bfc573a7001e88813ed819248,"Link to your-foursquare-oauth-token tool, close #4",2019-08-31T18:07:24Z,2019-08-31T18:07:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,205429375,swarm-to-sqlite,9599,simonw,19864447,web-flow
405e092d5916e70df10f82d15e9c052aa9ee8d80,"Option to add triggers when enabling FTS (#57)
--create-triggers CLI option and create_triggers=True in the Python library
* Add an option to create triggers for fts table.
* Add cli option for the create-update-trigger.
* Add tests for the create-update-trigger option.
* Change FTS table escaping to square brackets.",2019-09-02T23:42:28Z,2019-09-02T23:42:28Z,a83a9ad7fdcc8d400257ebb4c5d09638aa09f73b,Amjith Ramanujam,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,49260,amjith,9599,simonw
2ca63e3b2de5408a860c6c7c1852deb9a138279e,"db.triggers and table.triggers introspection (#60)
Closes #59",2019-09-03T00:09:41Z,2019-09-03T00:09:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
3a4dddaca23157984dbda7c16a957d3fc459024f,"Documentation for create-triggers, refs #57",2019-09-03T00:10:26Z,2019-09-03T00:10:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
2dc5c8dc259a0606162673d394ba8cc1c6f54428,"detect_fts now works with alternative table escaping (#571)
Fixes #570. See also https://github.com/simonw/sqlite-utils/pull/57",2019-09-03T00:32:27Z,2019-09-03T00:32:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
0fc8afde0eb5ef677f4ac31601540d6168c8208d,Changelog for 0.29.3 release,2019-09-03T00:40:53Z,2019-09-03T00:40:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
d5e1f8ac77d91b9b713358e80d9542abbf5f3633,Release 1.11,2019-09-03T00:58:41Z,2019-09-03T00:58:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
2e4b7c136734b352732186b4d761e608835f7ad3,twitter-to-sqlite auth and followers commands,2019-09-03T20:28:36Z,2019-09-03T20:30:34Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
9ecd8f04a59621e59307f412f6df842f2b5ef65d,"Release 0.1a
Mainly doing this to reserve twitter-to-sqlite on PyPI",2019-09-03T20:36:44Z,2019-09-03T20:36:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
2a0a84a4ff8211cd96e2f7a8b882a6cc3cc55c5c,Deploy releases tagged with alpha or beta,2019-09-03T20:41:20Z,2019-09-03T20:41:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
fd1a989e09ccfd7b19ac5044ed4679c2134c1294,Fixed regex,2019-09-03T20:42:38Z,2019-09-03T20:42:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
1f1310a25d95351d4bc8840472e97263c886b852,Documentation for auth and followers commands,2019-09-03T21:17:52Z,2019-09-03T21:17:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,206156866,twitter-to-sqlite,9599,simonw,19864447,web-flow
ef70bb8b3658a984f00e377e6ca1c1d5c238e81d,Break loop after last page,2019-09-03T21:17:25Z,2019-09-03T21:18:05Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
47f474c0fb76c53bdf46aefcb3ca9669e676f932,Added note about followers command being rate limited,2019-09-03T21:31:58Z,2019-09-03T21:31:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,206156866,twitter-to-sqlite,9599,simonw,19864447,web-flow
9dc9f6243f20d0a1217e0d67793ec496333befde,twitter-to-sqlite auth -a my-auth.json option,2019-09-03T22:32:22Z,2019-09-03T22:37:30Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
aedf22abac2f87f02d05252a7c6bf2c9854bc786,twitter-to-sqlite followers --auth option,2019-09-03T22:40:56Z,2019-09-03T22:40:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
4c0977fc5d091d3c31102000a7312f28d07cdd5b,Added help text for --auth option,2019-09-03T22:42:06Z,2019-09-03T22:42:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
f95762cc25cbf75909fee8ad041cc903d5f421b0,Better heading,2019-09-03T22:42:41Z,2019-09-03T22:42:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
aa36ab8eacaf61643b81f639bbc60dc820741091,First working version,2019-09-04T01:17:22Z,2019-09-04T01:17:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw
5ff02db0ed251c9cbf494f932028e576692addf9,"Removed obsolete code, applied black",2019-09-04T03:32:14Z,2019-09-04T03:32:14Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw
f7af9fa164739a09d5e83bc5be64fede4b7f795b,Removed obsolete import,2019-09-04T03:34:07Z,2019-09-04T03:34:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw
309bddb71e21f79dc6aa16d53413959929809663,Guess medium_url from /square.jpg regular url,2019-09-04T03:41:56Z,2019-09-04T03:41:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw
a7b00b7bd95121ee2e39cf01498e77945c9d67f6,"Added observations_with_photos view
Optimized for use with datasette-json-html",2019-09-04T03:52:40Z,2019-09-04T03:52:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw
ce55b96ebeee79275307a406cd1ae88e511e147c,Preparing release 0.1a,2019-09-04T04:03:31Z,2019-09-04T04:03:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206202864,inaturalist-to-sqlite,9599,simonw,9599,simonw
c1340a15bbd2fced600e5e72626cf42d93b3f789,"Added twitter-to-sqlite fetch URL command
Useful development tool - makes it easy to make authenticated API
requests on the command-line.
Also started the Design notes docs",2019-09-04T16:13:21Z,2019-09-04T16:13:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
5966dad3844b6f98e900de6e738248d949eaaa68,"Implemented favorites and user-timeline commands
Plus tests",2019-09-04T19:59:00Z,2019-09-04T19:59:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
506c9d5e8e659b46e2f544bf476a96047feed402,Circle CI now runs pytest,2019-09-04T20:00:10Z,2019-09-04T20:00:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
656c970d8b7d0744f1bb5743767fc5b34b62b90e,Added python-dateutil dependency,2019-09-04T20:01:12Z,2019-09-04T20:01:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
b266da2f01d6f9ed622a4be36fcafba64b42831c,Removed dead code,2019-09-04T20:03:20Z,2019-09-04T20:03:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
11b2847252a2d6683023339873d6a31c5300409e,"Save followers in following m2m table, closes #1",2019-09-04T20:22:52Z,2019-09-04T20:22:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
013cc8147abb78227b7232c2d14cb428613b5760,user-timeline documentation,2019-09-04T20:39:12Z,2019-09-04T20:39:12Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
c03174ee34eeb6bccb6c6fd0e228a7e892d0b257,Release 0.1,2019-09-04T20:43:35Z,2019-09-04T20:43:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
5c626013c74ca3624d2402ae59d0398de67369bc,Enable FTS on tweets full_text,2019-09-04T21:16:23Z,2019-09-04T21:16:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
005913518b695a2456fada7db61ba0d30488bc12,"Fix for bug where tweets were not saved
This is a messy fix, need to dig in more",2019-09-04T21:16:38Z,2019-09-04T21:16:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
ee202d8ce2cd226fd7512f37b201698b6bcac027,Test for new FTS tables,2019-09-04T21:17:18Z,2019-09-04T21:17:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
215bd23ee36701aebd8088d0c49d3c8e8be3df48,"Note max 3,200 tweets for other people's accounts",2019-09-04T21:23:38Z,2019-09-04T21:23:38Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,206156866,twitter-to-sqlite,9599,simonw,19864447,web-flow
ea4577bcded84cf135d5aff0c5bcb23dbc8e29db,Release 0.2,2019-09-04T21:17:34Z,2019-09-04T21:28:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
f07d3d14ca39ea95416edc904e566fe28e5b46f6,Extract places into separate table,2019-09-04T21:54:39Z,2019-09-04T21:54:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
bc2307450b6944b4fc894de88b1a6e7f6c133f66,"Extract media to separate table, closes #6",2019-09-04T22:07:52Z,2019-09-04T22:07:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
e2d7db2c9ef6c944804cda5c6662718ab3a80d0e,Release 0.2,2019-09-04T22:10:07Z,2019-09-04T22:10:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
6fe6359b0887b75cd5e7890f2a3c906e6442d59a,Initial working version,2019-09-05T20:14:33Z,2019-09-05T20:14:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw
84351a5269ca6a2e99808cd66652a6158e2f67f0,Use pytest -vv,2019-09-05T20:18:02Z,2019-09-05T20:18:02Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw
d1cefefc207b8401cc8bf375f07a936c940a4ada,Adjust sort order in test,2019-09-05T20:31:13Z,2019-09-05T20:31:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw
e7f83e628ba6737fe5a7084ecf76221a2580fe2a,"Initial working version
* ""github-to-sqlite auth"" command saves a token to auth.json
* ""github-to-sqlite issues"" command only works with --load=",2019-09-07T22:43:03Z,2019-09-07T22:43:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
7fd4cb33b7db2dc2ba7fbf57a1d119d6d21d0f20,Fixed README title,2019-09-07T22:44:23Z,2019-09-07T22:44:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
2fb755e7d829321538b2aac69da3180e746ba3a8,Implemented location-history import command,2019-09-07T23:30:23Z,2019-09-07T23:30:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw
7387c88a3f84704548e81d43b91615c02b61a957,Implemented 'issues' OAuthed data fetching,2019-09-08T03:06:52Z,2019-09-08T03:06:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
231497345d5a653d5ce9b74a8c003cfe1b87530d,Order of files in zip does not matter,2019-09-08T03:12:50Z,2019-09-08T03:12:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw
e54e544427f1cc3ea8189f0e95f54046301a8645,Release 0.2,2019-09-08T03:13:45Z,2019-09-08T03:13:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206649770,google-takeout-to-sqlite,9599,simonw,9599,simonw
24568509931d68d0ad1b017ab72f0462cde7666c,New --stop_after option for user-timeline,2019-09-08T19:45:53Z,2019-09-08T19:45:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
54867fefc58b88b63de4a2b3c06cce970b41d1f2,"users-lookup command, closes #7",2019-09-08T20:32:08Z,2019-09-08T20:32:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
3e21277c76b86b54fb5cc8dd41a3eb14b6164947,"--attach and --sql for users-lookup, refs #8",2019-09-08T21:24:27Z,2019-09-08T21:24:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
a1d547132356501d3d19c99d0f2e6c8108c53981,Added list-members subcommand,2019-09-09T22:39:41Z,2019-09-09T22:39:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
898bad33fd1f0e755f05df6f1885b85031884df4,Release 0.4,2019-09-09T22:41:25Z,2019-09-09T22:41:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
9fa0f564486c416456a88c277df2f16b86739c73,Added missing --ids in README,2019-09-09T22:44:33Z,2019-09-09T22:44:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
b5ab2bd69772ece9dc853b359931c7fdaaa19160,"followers-ids and friends-ids subcommands
Closes #9",2019-09-10T17:36:44Z,2019-09-10T17:36:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
cab7edb1e50549a37b1c8520b546dfa85afda92a,Fixed incorrect header in README,2019-09-10T17:38:04Z,2019-09-10T17:38:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
e60f314b0b4f9ab6a292270c11320530da66f4ac,Release 0.5,2019-09-10T17:38:46Z,2019-09-10T17:38:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
e9112da07229d2bda44d797b94a823cf40955329,Fixed copy,2019-09-11T14:49:56Z,2019-09-11T14:49:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,206156866,twitter-to-sqlite,9599,simonw,19864447,web-flow
bd26f356649ebe0a98cd11e8992a531ec3bc66c8,"Docs for --sql and --attach, refs #8",2019-09-13T20:32:52Z,2019-09-13T20:32:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,206156866,twitter-to-sqlite,9599,simonw,19864447,web-flow
d3a0e4cedaa965061c6aa1a38ceffa0a3f00210e,Removed accidental debugging code,2019-09-14T19:19:16Z,2019-09-14T19:19:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
321e0284c64dc48b2143311009886293c05edb07,Release 0.1.1,2019-09-14T19:19:33Z,2019-09-14T19:19:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
f1fa627a744f740a31b19dae812718838c3a6f6b,"github-to-sqlite starred' command, closes #1",2019-09-14T21:30:30Z,2019-09-14T21:30:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
0fe96bc50fb3d7b1c7e4577db0ddf207eaeebbb9,Release 0.2,2019-09-14T21:31:17Z,2019-09-14T21:31:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
a4e0dc3407058b05966a1c37b48c8b8cb4bbad05,"Extract license from repos table, closes #2",2019-09-14T21:46:49Z,2019-09-14T21:46:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
f697f247468516aa4ee13b1862b59e0dba18d00f,Release 0.3,2019-09-14T21:49:27Z,2019-09-14T21:49:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
8c9a9498159c4dfa1dff0593427cc3ee7df9a83c,"'github-to-sqlite repos' command, closes #3",2019-09-17T00:17:42Z,2019-09-17T00:17:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
8c6251c31a05c58c2bfbef114247642d1b3dbb44,Release 0.4,2019-09-17T00:18:37Z,2019-09-17T00:18:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
6894c8bc767b4c0375ddb8b2f0d2fed857667ff5,First release,2019-09-19T15:38:10Z,2019-09-19T15:38:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,209590345,genome-to-sqlite,9599,simonw,9599,simonw
a314b761866d250c16f1ff6dd682010cf4181eb4,Added /-/threads debugging page,2019-10-02T15:32:47Z,2019-10-02T15:35:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
eb39c84a8f27443abb7aaebc1724c99f68e441fb,Test and docs for using :memory: as a filename,2019-10-04T16:17:27Z,2019-10-04T16:17:27Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
6670b0719ba4486a1341924522b73eedd0f198aa,Slightly better error handling,2019-10-06T04:08:42Z,2019-10-06T04:09:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
a429dd14c776a7602e603a8e5fa0e99169ca34ac,"Experimental follow/track commands, refs #11",2019-10-06T04:09:18Z,2019-10-06T04:09:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
5bfc59fe205da619d2b306734fc30f7327b175e7,"follow command now takes screen names, supports --sql and --ids refs #11",2019-10-06T04:33:18Z,2019-10-06T04:33:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
cfd977e97f82ece49c850fbed3d8778149a59c7d,"Documentation for follow/track commands, closes #11",2019-10-06T04:48:23Z,2019-10-06T04:48:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
2f8ceca31b8f3ca3a60bccdf25f39b7c3807877a,Release 0.6,2019-10-06T04:49:17Z,2019-10-06T04:49:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
c44d286a572ba31b79f631f63fd2543fc4fb010f,README tweaks,2019-10-06T05:03:17Z,2019-10-06T05:03:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,206156866,twitter-to-sqlite,9599,simonw,19864447,web-flow
fffd69ec031b83f46680f192ba57a27f0d1f0b8a,Allow EXPLAIN WITH... - closes #583,2019-10-06T17:23:58Z,2019-10-06T17:23:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
17606ed11e157f3c67611d7233b60ed5eb750c37,"statuses-lookup command, closes #13",2019-10-07T00:31:27Z,2019-10-07T00:31:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
436a170d74ec70903d1b4ca430c2c6b6435cdfcc,Release 0.7,2019-10-07T00:32:08Z,2019-10-07T00:32:08Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
5495bca54a2aad91b1243b3cdc7f7d85cddd0bd5,Initial setup plus 'pocket-to-sqlite auth' command,2019-10-07T03:23:42Z,2019-10-07T03:23:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw
552543a74970f8a3a3f87f887be23a0c6eb1cb5b,alter=True when upserting users,2019-10-07T04:01:41Z,2019-10-07T04:01:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
618b05b44fa526aca7d4a8fcdbb2e7ee7f3456d7,Initial save_items() utility plus tests,2019-10-07T04:50:41Z,2019-10-07T04:50:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw
1143fcc20b253213925f84f3979a27c9834fbbac,Implemented 'fetch' command,2019-10-07T05:07:37Z,2019-10-07T05:07:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,213286752,pocket-to-sqlite,9599,simonw,9599,simonw
fee5f4bdbba4b40551a473a88c6b7ae1ca459962,Fixed link to Pocket,2019-10-07T05:36:56Z,2019-10-07T05:36:56Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,213286752,pocket-to-sqlite,9599,simonw,19864447,web-flow
2019ee908731054c6eaa3d5123dfbdf7d2d70fc4,"twitter-to-sqlite import command, closes #4",2019-10-11T06:45:00Z,2019-10-11T06:45:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,206156866,twitter-to-sqlite,9599,simonw,19864447,web-flow
fb2698086d766e0333a55bb73435e7283feeb438,Release 0.8,2019-10-11T06:45:21Z,2019-10-11T06:45:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
6a8012b6370154616f073cd8f1c159c3b388b0b7,"twitter-to-sqlite import recreates archive- tables, closes #17",2019-10-11T15:40:00Z,2019-10-11T15:40:00Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
1d84a96a47a70680de9d621771dfe6cf2082cf08,"home-timeline command, closes #18",2019-10-11T16:51:03Z,2019-10-11T16:51:03Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
d22afae39b1390964dace33f43a8f86c222876fe,"Archive tables use _ not -
Tables with hyphens in the name are harder to query
because you have to remember to [escape-them].",2019-10-11T16:54:25Z,2019-10-11T16:54:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
2045f2766387dada103dce4c9aaf1418bfaec3b5,Use archive_ in README,2019-10-11T16:55:10Z,2019-10-11T16:55:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
5e3bd8c176345c0ae11a2c988be9e03152d0db0a,Initial commit,2019-10-13T02:10:13Z,2019-10-13T02:10:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,214746582,dogsheep.github.io,9599,simonw,19864447,web-flow
01b7a6a71ca121ec91ca4cc18f46a565098441fd,List of all current Dogsheep tools,2019-10-13T02:23:10Z,2019-10-13T02:23:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,214746582,dogsheep.github.io,9599,simonw,19864447,web-flow
68df9bf80627d8608a82480ea016de32ebb29ce7,Added goodreads-to-sqlite,2019-10-13T02:27:04Z,2019-10-13T02:27:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,214746582,dogsheep.github.io,9599,simonw,19864447,web-flow
8c9b5558a1549803ac0cb648c78a21767cccce86,"issue-comments command, closes #7
Also added --issue option to issues command, for fetching one specific issue.",2019-10-13T05:24:25Z,2019-10-13T05:24:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
ae9035f8fe5aff1c54bff4c6b4c2e808a44f0f2a,Release 0.5,2019-10-13T05:28:24Z,2019-10-13T05:28:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,207052882,github-to-sqlite,9599,simonw,9599,simonw
f5b7ceba5b3167e962808814d492e49f87454b3f,"favorites command now populates favorited_by table, closes #14",2019-10-14T03:30:17Z,2019-10-14T03:30:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
af2e6a5cf186a7200d76cb67ac30fa59cc24d84e,"Button to format SQL, closes #136
SQL code will be formatted on page load, and can additionally
be formatted by clicking the ""Format SQL"" button.
Thanks, @rixx!",2019-10-14T03:46:12Z,2019-10-14T03:46:12Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw
908fc3999e06f3ccd3bb8ad0539490bbc7809748,"Sort databases on homepage by argument order - #591
Closes #585 - thanks, @rixx!",2019-10-14T03:52:33Z,2019-10-14T03:52:33Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw
12cec411cae73ba7211429da12cd32c551fe17b1,"Display metadata footer on custom SQL queries (#589)
Closes #408 - thanks, @rixx!",2019-10-14T03:53:21Z,2019-10-14T03:53:21Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw
9366d0bf191daccee6093c54ed51a2855d129cd8,Add Python versions badge,2019-10-14T22:29:16Z,2019-10-14T22:29:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
993a30e8cb96c94e599c30fac810d3933b46b6fa,"Store unescaped full_text of Tweet, closes #21",2019-10-15T18:48:11Z,2019-10-15T18:48:11Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
19b5633b4ae0937e33e980b93bf777763f454a80,"favorites --stop_after option, refs #20",2019-10-15T18:51:16Z,2019-10-15T18:51:16Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
0b84d52ab87d960d4b5e188052540518db2ea569,Release 0.10,2019-10-15T18:53:53Z,2019-10-15T18:53:53Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
8d607194db4ad6e92f59e901e3da690a3d20f1fa,"import command now works on files and directories, closes #22",2019-10-16T18:53:31Z,2019-10-16T18:53:31Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
ff55f97f1c9ba3203a25eb2cafe21e712c010d86,"Removed unneccessary test file
I moved this test into test_import.py in the previous commit.",2019-10-16T18:58:17Z,2019-10-16T18:58:17Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
fced2a9b67d2cbdf9817f1eb75f7c28e413c963b,"--since and --since_id options for user-timeline, closes #19
Refs #20
Also added some initial rate limit error handling code.",2019-10-16T19:12:41Z,2019-10-16T19:12:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
20ffa86b8ad3f2c98d88bb5e92365977bbcff417,"Added --since_id and --since to user-timeline, refs #20",2019-10-16T19:23:35Z,2019-10-16T19:23:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
2878c7ccbfc98f22d6fa3bc96a070aba7b712297,Release 0.11,2019-10-16T19:37:10Z,2019-10-16T19:37:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
c1f62c8fac09ce5f288aa87f950a90b8f89d13c6,"Fix bugs running --since from scratch
If tables were missing, script would throw an error.",2019-10-16T19:46:23Z,2019-10-16T19:46:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
dc584416df10d1feee838b1ed5359bde45eca45f,Release 0.11.1,2019-10-16T19:46:35Z,2019-10-16T19:46:35Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
54a8a88e81e57cbc7ec3de2efba583aec8855906,"Added --since option, closes #3",2019-10-16T20:39:54Z,2019-10-16T20:39:54Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
f2c89dd613fb8a7f14e5267ccc2145463b996190,Applied black,2019-10-16T20:40:15Z,2019-10-16T20:40:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
2cc11a9e551daa588c962dda70053827c7f971cf,Release 0.2,2019-10-16T20:40:25Z,2019-10-16T20:40:25Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,205429375,swarm-to-sqlite,9599,simonw,9599,simonw
e6555b35a7bdb1825ecc08158e4ee6ce79397ece,Instructions on updating favorited_by table with imported likes,2019-10-17T02:27:24Z,2019-10-17T02:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
619f724a722b3f23f4364f67d3164b93e8ba2a70,"get_profile() now saves user to DB
This ensures we don't accidentally fail to create a user record
for the currently authenticated user.",2019-10-17T05:54:36Z,2019-10-17T05:54:36Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
c9295233f219c446fa2085cace987067488a31b9,"Tweet source extraction and new migration system (#24)
Closes #12 and #23",2019-10-17T15:49:23Z,2019-10-17T15:49:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,206156866,twitter-to-sqlite,9599,simonw,19864447,web-flow
1aad51519b6a7a224565a44c081b136ff3a7d667,"Don't create index/foreign key that already exists, fixes #25",2019-10-17T16:56:28Z,2019-10-17T16:56:42Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
a79fbdf29989d0537a2ebf144119d3994b9e04b5,"Initial implementation of search command, refs #3",2019-10-17T17:56:29Z,2019-10-17T17:56:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
ba709553c5fc264cf055cf37f3ba21a96de48f83,Release 0.12,2019-10-17T17:57:33Z,2019-10-17T17:57:33Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
3e864b1625f3142e6ff084f9b41247f2f9f60f80,"Use --platform=managed for publish cloudrun, closes #587",2019-10-17T21:51:45Z,2019-10-17T21:51:45Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b6ad1fdc7068cb8248787843e7438d1f19fa2e3a,"Fixed bug returning non-ascii characters in CSV, closes #584",2019-10-18T05:23:01Z,2019-10-18T05:23:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
b647b5efc29300f715ba656e41b0591f342938e1,"Fix for /foo v.s. /foo-bar issue, closes #597
Pull request #599",2019-10-18T22:51:07Z,2019-10-18T22:51:07Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
e877b1cb12076946fdbec7ca2fbfbfc75c1c2a28,"Don't auto-format SQL on page load (#601)
Closes #600",2019-10-18T23:56:44Z,2019-10-18T23:56:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
debea4f971c180af64e16b83be98d830e9dee54f,Release 0.30,2019-10-19T01:05:47Z,2019-10-19T01:06:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8050f9e1ece9afd0236ad38c6458c12a4ad917e6,Update news in README,2019-10-19T01:08:04Z,2019-10-19T01:08:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f4c0830529a9513a83437a9e1550bbe27ebc5c64,"Always pop as_format off args dict (#603)
Closes #563. Thanks, @chris48s",2019-10-21T02:03:08Z,2019-10-21T02:03:08Z,5a0a3d8ffa3a5fa7036ede67cc44274222c2f074,chris48s,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,6025893,chris48s,9599,simonw
dd2b02304274a5b44f7dd37cddb61a4978848d1e,Better auth.json explanation,2019-10-28T12:33:41Z,2019-10-28T12:33:41Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,206156866,twitter-to-sqlite,9599,simonw,19864447,web-flow
518f9ae704cf325aad66d945798bcbd6c8cc7f3f,"New mentions-timeline command, refs #26",2019-10-30T02:15:31Z,2019-10-30T02:16:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
7275abb5573f00e1ea60707cfe243346a6e0ece6,"Documentation for mentions-timeline command, refs #26",2019-10-30T02:19:23Z,2019-10-30T02:19:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
dd093b4edd6d2034a2917ff260f1bbaa12e1d285,Release 0.13,2019-10-30T02:20:09Z,2019-10-30T02:20:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
5dd4d2b2d3abcfd507a6df47e7c2fbad3c552fd8,Update to latest black (#609),2019-10-30T18:49:01Z,2019-10-30T18:49:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,107914493,datasette,9599,simonw,19864447,web-flow
e2c390500e6782aa476a7edc05c46cf907875a6e,"Persist _where= in hidden fields, closes #604",2019-10-30T18:49:26Z,2019-10-30T18:49:26Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f5f6cbe03cbf05737d848f44779372b5daa79a25,Release 0.30.1,2019-10-30T18:56:04Z,2019-10-30T18:56:04Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
3ca290e0db03bb4747e24203c445873f74512107,Fixed dumb error,2019-10-30T19:00:21Z,2019-10-30T19:00:21Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
937828f946238c28e77ba50e0b2e649c874560f7,"Use distinfo.project_name for plugin name if available, closes #606",2019-11-01T05:39:59Z,2019-11-01T05:39:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
50287e7c6bb0987536e5515f05945721c4515e9a,Only suggest array facet for arrays of strings - closes #562,2019-11-01T19:37:46Z,2019-11-01T19:37:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ba5414f16b49781261d0f41a16f2210d5fa3976f,Only inspect first 100 records for #562,2019-11-01T19:38:15Z,2019-11-01T19:38:15Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
7152e76eda9049574643261e7a471958cc16d0b9,"Don't suggest array facet if column is only [], closes #610",2019-11-01T21:45:59Z,2019-11-01T21:45:59Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ffae2f0ecde1ca92e78d097665df820d3b7861e6,"Better documentation of --host, closes #574",2019-11-01T21:57:49Z,2019-11-01T21:57:49Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ed57e4f99018c1d520858f55f6eee4eb1cc2af3d,"Plugin static assets support both hyphens and underscores in names
Closes #611",2019-11-01T22:15:10Z,2019-11-01T22:15:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
14da70525b35e1a44cd45c19101385467057f041,"Don't show 'None' as label for nullable foreign key, closes #406",2019-11-02T22:29:40Z,2019-11-02T22:29:40Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
c3181d9a840dff7be8c990b21f5749db393a4ea0,Release notes for 0.30.2,2019-11-02T22:47:20Z,2019-11-02T22:47:20Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
2bf7ce5f517d772a16d7855a35a8a75d4456aad7,"Fix CSV export for nullable foreign keys, closes #612",2019-11-02T23:12:46Z,2019-11-02T23:12:46Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
ee330222f4c3ee66c2fe41ebc76fed56b9cb9a00,"Offer to format readonly SQL (#602)
Following discussion in #601, this PR adds a ""Format SQL"" button to
read-only SQL (if the SQL actually differs from the formatting result).
It also removes a console error on readonly SQL queries.
Thanks, @rixx!",2019-11-04T02:39:55Z,2019-11-04T02:39:55Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw
9db22cdf1809fb78a7b183cd2f617cd5e26efc68,"pk__notin= filter, closes #614",2019-11-04T04:11:55Z,2019-11-04T04:11:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
4f86a46b1e6ef4d02d72fd2241850039f41fd8a8,"Added --since and --since_id to search, refs #3",2019-11-04T05:30:58Z,2019-11-04T05:30:58Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
801c0c2daf17d8abce9dcb5d8d610410e7e25dbe,"Documentation for search command, closes #3",2019-11-04T05:31:10Z,2019-11-04T05:31:10Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
31ec6e4badb77cf3a0c7a6e82bd3c992c5e1ec30,Release 0.14,2019-11-04T05:32:37Z,2019-11-04T05:32:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,206156866,twitter-to-sqlite,9599,simonw,9599,simonw
19073d6d972fad9d68dd74c28544cd29083f1c12,"Added table.delete(pk) method, refs #62",2019-11-04T16:07:44Z,2019-11-04T16:08:01Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
169ea455fc1f1d5e5b6e44cb339ba7ffa9d49c31,"Added table.delete_where(), closes #62",2019-11-04T16:18:06Z,2019-11-04T16:18:06Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
a0a65f9a6405079b01aefdbf4b5f507bc758567a,Release 1.12,2019-11-04T16:28:52Z,2019-11-04T16:28:52Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,140912432,sqlite-utils,9599,simonw,9599,simonw
52fa79c6075f0830ff635b81d957c64d877a05aa,"Use select colnames, not select * for table view - refs #615",2019-11-04T23:03:48Z,2019-11-04T23:03:48Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
931bfc66613aa3e22f8314df5c0d0758baf31f38,"Handle spaces in DB names (#590)
Closes #503 - thanks, @rixx",2019-11-04T23:16:30Z,2019-11-04T23:16:30Z,b90d9715d7c0881515e9d6aa98923ed89d445945,Tobias Kunze,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,2657547,rixx,9599,simonw
c30f07c58e410ee296b28aeabe4dc461dd40b435,"Removed _group_count=col feature, closes #504",2019-11-06T05:12:55Z,2019-11-06T05:12:55Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
f9c146b893856a48afa810ebcce1714f30d0d3a2,Removed unused special_args_lists variable,2019-11-07T00:55:44Z,2019-11-07T00:55:44Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,107914493,datasette,9599,simonw,9599,simonw
8dab9fd1ccf571e188eec9ccf606a0c50fccf200,"insert_all() / .upsert_all() work with empty list (#64)
Closes #52",2019-11-07T04:32:37Z,2019-11-07T04:32:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
0a0cec3cf27861455e8cd1c4d84937825a18bb30,Release 1.12.1,2019-11-07T04:58:47Z,2019-11-07T04:58:47Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,140912432,sqlite-utils,9599,simonw,19864447,web-flow
d16f45f06fbae6ec8a78cc9ca7b5b7db0413f139,"sqlite-utils~=1.12.1
To get the bugfix for insert_all([])",2019-11-07T05:42:28Z,2019-11-07T05:42:28Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,197882382,healthkit-to-sqlite,9599,simonw,19864447,web-flow
2972bb001ab5f675eced62f7ba5adef2d3eba2ad,Added pinboard-to-sqlite,2019-11-07T20:44:09Z,2019-11-07T20:44:09Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,cd792325681cbad9f663f2879d8b69f1edbb678f,GitHub,214746582,dogsheep.github.io,9599,simonw,19864447,web-flow
e488c6addd4b647c2e4917b94e3e320cb7df5456,"Fixed workout points import for iOS 13
Workout lat/lon tracks are now stored in .gpx files.
Closes #10",2019-11-08T01:17:50Z,2019-11-08T01:17:50Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
1c0afa0895427a074b4c1db9b7b9b9a3c4a39bb5,Release 0.4,2019-11-08T01:19:23Z,2019-11-08T01:19:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,13ae486343ea6454a93114c6f558ffea2f2c6874,Simon Willison,197882382,healthkit-to-sqlite,9599,simonw,9599,simonw
|