html_url,id,node_id,tag_name,target_commitish,name,draft,author,prerelease,created_at,published_at,assets,body,repo https://github.com/simonw/datasette/releases/tag/0.12,8546575,MDc6UmVsZWFzZTg1NDY1NzU=,0.12,master,Datasette 0.12,0,9599,0,2017-11-16T15:37:46Z,2017-11-16T16:01:35Z,[],"- Added `__version__`, now displayed as tooltip in page footer (#108). - Added initial docs, including a changelog (#99). - Turned on auto-escaping in Jinja. - Added a UI for editing named parameters (#96). You can now construct a custom SQL statement using SQLite named parameters (e.g. `:name`) and datasette will display form fields for editing those parameters. [Here's an example](https://australian-dogs.now.sh/australian-dogs-3ba9628?sql=select+name%2C+count%28*%29+as+n+from+%28%0D%0A%0D%0Aselect+upper%28%22Animal+name%22%29+as+name+from+%5BAdelaide-City-Council-dog-registrations-2013%5D+where+Breed+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28Animal_Name%29+as+name+from+%5BAdelaide-City-Council-dog-registrations-2014%5D+where+Breed_Description+like+%3Abreed%0D%0A%0D%0Aunion+all+%0D%0A%0D%0Aselect+upper%28Animal_Name%29+as+name+from+%5BAdelaide-City-Council-dog-registrations-2015%5D+where+Breed_Description+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22AnimalName%22%29+as+name+from+%5BCity-of-Port-Adelaide-Enfield-Dog_Registrations_2016%5D+where+AnimalBreed+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22Animal+Name%22%29+as+name+from+%5BMitcham-dog-registrations-2015%5D+where+Breed+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22DOG_NAME%22%29+as+name+from+%5Bburnside-dog-registrations-2015%5D+where+DOG_BREED+like+%3Abreed%0D%0A%0D%0Aunion+all+%0D%0A%0D%0Aselect+upper%28%22Animal_Name%22%29+as+name+from+%5Bcity-of-playford-2015-dog-registration%5D+where+Breed_Description+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22Animal+Name%22%29+as+name+from+%5Bcity-of-prospect-dog-registration-details-2016%5D+where%22Breed+Description%22+like+%3Abreed%0D%0A%0D%0A%29+group+by+name+order+by+n+desc%3B&breed=pug) which lets you see the most popular names for dogs of different species registered through various dog registration schemes in Australia. - Pin to specific Jinja version. (#100). - Default to 127.0.0.1 not 0.0.0.0. (#98). - Added extra metadata options to publish and package commands. (#92). You can now run these commands like so: datasette now publish mydb.db \ --title=""My Title"" \ --source=""Source"" \ --source_url=""http://www.example.com/"" \ --license=""CC0"" \ --license_url=""https://creativecommons.org/publicdomain/zero/1.0/"" This will write those values into the metadata.json that is packaged with the app. If you also pass `--metadata=metadata.json` that file will be updated with the extra values before being written into the Docker image. - Added simple production-ready Dockerfile (#94) \[Andrew Cutler\] - New `?_sql_time_limit_ms=10` argument to database and table page (#95) - SQL syntax highlighting with Codemirror (#89) \[Tom Dyson\]",107914493 https://github.com/simonw/csvs-to-sqlite/releases/tag/0.3,8556054,MDc6UmVsZWFzZTg1NTYwNTQ=,0.3,master,csvs-to-sqlite 0.3,0,9599,0,2017-11-17T05:26:07Z,2017-11-17T05:33:39Z,[],"- **Mechanism for converting columns into separate tables** Let's say you have a CSV file that looks like this: county,precinct,office,district,party,candidate,votes Clark,1,President,,REP,John R. Kasich,5 Clark,2,President,,REP,John R. Kasich,0 Clark,3,President,,REP,John R. Kasich,7 (Real example from https://github.com/openelections/openelections-data-sd/blob/ master/2016/20160607__sd__primary__clark__precinct.csv ) You can now convert selected columns into separate lookup tables using the new --extract-column option (shortname: -c) - for example: csvs-to-sqlite openelections-data-*/*.csv \ -c county:County:name \ -c precinct:Precinct:name \ -c office -c district -c party -c candidate \ openelections.db The format is as follows: column_name:optional_table_name:optional_table_value_column_name If you just specify the column name e.g. `-c office`, the following table will be created: CREATE TABLE ""party"" ( ""id"" INTEGER PRIMARY KEY, ""value"" TEXT ); If you specify all three options, e.g. `-c precinct:Precinct:name` the table will look like this: CREATE TABLE ""Precinct"" ( ""id"" INTEGER PRIMARY KEY, ""name"" TEXT ); The original tables will be created like this: CREATE TABLE ""ca__primary__san_francisco__precinct"" ( ""county"" INTEGER, ""precinct"" INTEGER, ""office"" INTEGER, ""district"" INTEGER, ""party"" INTEGER, ""candidate"" INTEGER, ""votes"" INTEGER, FOREIGN KEY (county) REFERENCES County(id), FOREIGN KEY (party) REFERENCES party(id), FOREIGN KEY (precinct) REFERENCES Precinct(id), FOREIGN KEY (office) REFERENCES office(id), FOREIGN KEY (candidate) REFERENCES candidate(id) ); They will be populated with IDs that reference the new derived tables. Closes #2 ",110509816 https://github.com/simonw/csvs-to-sqlite/releases/tag/0.5,8575785,MDc6UmVsZWFzZTg1NzU3ODU=,0.5,master,csvs-to-sqlite 0.5,0,9599,0,2017-11-19T05:11:27Z,2017-11-19T05:53:25Z,[],"## Now handles columns with integers and nulls in correctly Pandas does a good job of figuring out which SQLite column types should be used for a DataFrame - with one exception: due to a limitation of NumPy it treats columns containing a mixture of integers and NaN (blank values) as being of type float64, which means they end up as REAL columns in SQLite. http://pandas.pydata.org/pandas-docs/stable/gotchas.html#support-for-integer-na To fix this, we now check to see if a float64 column actually consists solely of NaN and integer-valued floats (checked using v.is_integer() in Python). If that is the case, we over-ride the column type to be INTEGER instead. See #5 - also a8ab524 and 0997b7b",110509816 https://github.com/simonw/csvs-to-sqlite/releases/tag/0.6,8651869,MDc6UmVsZWFzZTg2NTE4Njk=,0.6,master,csvs-to-sqlite 0.6,0,9599,0,2017-11-24T23:12:10Z,2017-11-24T23:16:45Z,[],"## SQLite full-text search support - Added `--fts` option for setting up SQLite full-text search. The `--fts` option will create a corresponding SQLite FTS virtual table, using the best available version of the FTS module. https://sqlite.org/fts5.html https://www.sqlite.org/fts3.html Usage: csvs-to-sqlite my-csv.csv output.db -f column1 -f column2 Example generated with this option: https://sf-trees-search.now.sh/ Example search: https://sf-trees-search.now.sh/sf-trees-search-a899b92?sql=select+*+from+Street_Tree_List+where+rowid+in+%28select+rowid+from+Street_Tree_List_fts+where+Street_Tree_List_fts+match+%27grove+london+dpw%27%29%0D%0A Will be used in https://github.com/simonw/datasette/issues/131 - `--fts` and `--extract-column` now cooperate. If you extract a column and then specify that same column in the `--fts` list, `csvs-to-sqlite` now uses the original value of that column in the index. Example using CSV from https://data.sfgov.org/City-Infrastructure/Street-Tree-List/tkzw-k3nq csvs-to-sqlite Street_Tree_List.csv trees-fts.db \ -c qLegalStatus -c qSpecies -c qSiteInfo \ -c PlantType -c qCaretaker -c qCareAssistant \ -f qLegalStatus -f qSpecies -f qAddress \ -f qSiteInfo -f PlantType -f qCaretaker \ -f qCareAssistant -f PermitNotes Closes #9 - Handle column names with spaces in them. - Added `csvs-to-sqlite --version` option. Using http://click.pocoo.org/5/api/#click.version_option",110509816 https://github.com/simonw/csvs-to-sqlite/releases/tag/0.6.1,8652417,MDc6UmVsZWFzZTg2NTI0MTc=,0.6.1,master,csvs-to-sqlite 0.6.1,0,9599,0,2017-11-25T02:57:01Z,2017-11-25T02:58:25Z,[],"- `-f and -c` now work for single table multiple columns. Fixes #12 ",110509816 https://github.com/simonw/datasette/releases/tag/0.13,8652546,MDc6UmVsZWFzZTg2NTI1NDY=,0.13,master,"Datasette 0.13: foreign key, search and filters",0,9599,0,2017-11-25T03:33:39Z,2017-11-25T03:44:46Z,[],"# 0.13 (2017-11-24) - Search now applies to current filters. Combined search into the same form as filters. Closes [\#133](https://github.com/simonw/datasette/issues/133) - Much tidier design for table view header. Closes [\#147](https://github.com/simonw/datasette/issues/147) - Added `?column__not=blah` filter. Closes [\#148](https://github.c) - Row page now resolves foreign keys. Closes [\#132]() - Further tweaks to select/input filter styling. Refs [\#86]() - thanks for the help, @natbat\! - Show linked foreign key in table cells. - Added UI for editing table filters. Refs [\#86]() - Hide FTS-created tables on index pages. Closes [\#129]() - Add publish to heroku support \[Jacob Kaplan-Moss\] `datasette publish heroku mydb.db` Pull request [\#104]() - Initial implementation of `?_group_count=column`. URL shortcut for counting rows grouped by one or more columns. `?_group_count=column1&_group_count=column2` works as well. SQL generated looks like this: select ""qSpecies"", count(*) as ""count"" from Street_Tree_List group by ""qSpecies"" order by ""count"" desc limit 100 Or for two columns like this: select ""qSpecies"", ""qSiteInfo"", count(*) as ""count"" from Street_Tree_List group by ""qSpecies"", ""qSiteInfo"" order by ""count"" desc limit 100 Refs [\#44]() - Added `--build=master` option to datasette publish and package. The `datasette publish` and `datasette package` commands both now accept an optional `--build` argument. If provided, this can be used to specify a branch published to GitHub that should be built into the container. This makes it easier to test code that has not yet been officially released to PyPI, e.g.: datasette publish now mydb.db --branch=master - Implemented `?_search=XXX` + UI if a FTS table is detected. Closes [\#131]() - Added `datasette --version` support. - Table views now show expanded foreign key references, if possible. If a table has foreign key columns, and those foreign key tables have `label_columns`, the TableView will now query those other tables for the corresponding values and display those values as links in the corresponding table cells. label\_columns are currently detected by the `inspect()` function, which looks for any table that has just two columns - an ID column and one other - and sets the `label_column` to be that second non-ID column. - Don't prevent tabbing to ""Run SQL"" button ([\#117]()) \[Robert Gieseke\] See comment in [\#115]() - Add keyboard shortcut to execute SQL query ([\#115]()) \[Robert Gieseke\] - Allow `--load-extension` to be set via environment variable. - Add support for `?field__isnull=1` ([\#107]()) \[Ray N\] - Add spatialite, switch to debian and local build ([\#114]()) \[Ariel Núñez\] - Added `--load-extension` argument to datasette serve. Allows loading of SQLite extensions. Refs [\#110](). ",107914493 https://github.com/simonw/csvs-to-sqlite/releases/tag/0.7,8656486,MDc6UmVsZWFzZTg2NTY0ODY=,0.7,master,csvs-to-sqlite 0.7,0,9599,0,2017-11-26T03:11:33Z,2017-11-26T03:14:11Z,[],- Add -s option to specify input field separator (#13) [Jani Monoses],110509816 https://github.com/simonw/datasette/releases/tag/0.14,8841695,MDc6UmVsZWFzZTg4NDE2OTU=,0.14,master,Datasette 0.14: customization edition,0,9599,0,2017-12-10T01:33:24Z,2017-12-10T01:41:14Z,[],"The theme of this release is customization: Datasette now allows every aspect of its presentation [to be customized](http://datasette.readthedocs.io/en/latest/custom_templates.html) either using additional CSS or by providing entirely new templates. Datasette's [metadata.json format](http://datasette.readthedocs.io/en/latest/metadata.html) has also been expanded, to allow per-database and per-table metadata. A new `datasette skeleton` command can be used to generate a skeleton JSON file ready to be filled in with per-database and per-table details. The `metadata.json` file can also be used to define [canned queries](http://datasette.readthedocs.io/en/latest/sql_queries.html#canned-queries), as a more powerful alternative to SQL views. - `extra_css_urls`/`extra_js_urls` in metadata 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 stylesheet or JavaScript if the SRI hash matches the content served. You can generate hashes usingThis line renders the original block:
{{ super() }} {% endblock %} - `--static` option for datasette serve ([\#160](https://github.com/simonw/datasette/issues/160)) You can now tell Datasette to serve static files from a specific location at a specific mountpoint. For example: datasette serve mydb.db --static extra-css:/tmp/static/css Now if you visit this URL: http://localhost:8001/extra-css/blah.css The following file will be served: /tmp/static/css/blah.css - Canned query support. Named canned queries can now be defined in `metadata.json` like this: { ""databases"": { ""timezones"": { ""queries"": { ""timezone_for_point"": ""select tzid from timezones ..."" } } } } These will be shown in a new ""Queries"" section beneath ""Views"" on the database page. - New `datasette skeleton` command for generating `metadata.json` ([\#164](https://github.com/simonw/datasette/issues/164)) - `metadata.json` support for per-table/per-database metadata ([\#165](https://github.com/simonw/datasette/issues/165)) Also added support for descriptions and HTML descriptions. Here's an example metadata.json file illustrating custom per-database and per-table metadata: { ""title"": ""Overall datasette title"", ""description_html"": ""This is a description with HTML."", ""databases"": { ""db1"": { ""title"": ""First database"", ""description"": ""This is a string description & has no HTML"", ""license_url"": ""http://example.com/"", ""license"": ""The example license"", ""queries"": { ""canned_query"": ""select * from table1 limit 3;"" }, ""tables"": { ""table1"": { ""title"": ""Custom title for table1"", ""description"": ""Tables can have descriptions too"", ""source"": ""This has a custom source"", ""source_url"": ""http://example.com/"" } } } } } - Renamed `datasette build` command to `datasette inspect` ([\#130](https://github.com/simonw/datasette/issues/130)) - Upgrade to Sanic 0.7.0 ([\#168](https://github.com/simonw/datasette/issues/168))support,0,9599,0,2019-01-02T04:10:17Z,2019-01-02T04:17:15Z,[]," You can use `{""pre"": ""text""}` to render text in a `` HTML tag: { ""pre"": ""This\nhas\nnewlines"" } Produces:This has newlinesIf the value attached to the `""pre""` key is itself a JSON object, that JSON will be pretty-printed: { ""pre"": { ""this"": { ""object"": [""is"", ""nested""] } } } Produces:{ "this": { "object": [ "is", "nested" ] } }",142967347 https://github.com/simonw/datasette/releases/tag/0.26,14914779,MDc6UmVsZWFzZTE0OTE0Nzc5,0.26,master,Datasette 0.26,0,9599,0,2019-01-03T02:53:59Z,2019-01-10T21:41:00Z,[],[Datasette 0.26 release notes](https://datasette.readthedocs.io/en/stable/changelog.html#v0-26),107914493 https://github.com/simonw/csvs-to-sqlite/releases/tag/0.9,15022807,MDc6UmVsZWFzZTE1MDIyODA3,0.9,master,csvs-to-sqlite 0.9,0,9599,0,2019-01-17T05:17:02Z,2019-01-17T05:20:23Z,[],"- Support for loading CSVs directly from URLs, thanks @betatim - #38 - New -pk/--primary-key options, closes #22 - Create FTS index for extracted column values - Added --no-fulltext-fks option, closes #32 - Now using black for code formatting - Bumped versions of dependencies",110509816 https://github.com/simonw/sqlite-utils/releases/tag/0.7,15175633,MDc6UmVsZWFzZTE1MTc1NjMz,0.7,master,0.7,0,9599,0,2019-01-25T07:20:49Z,2019-01-25T07:27:57Z,[],Release notes are here: https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v0-7,140912432 https://github.com/simonw/datasette/releases/tag/0.26.1,15206659,MDc6UmVsZWFzZTE1MjA2NjU5,0.26.1,master,Datasette 0.26.1,0,9599,0,2019-01-11T00:51:38Z,2019-01-28T01:50:45Z,[],Release notes: https://datasette.readthedocs.io/en/stable/changelog.html#v0-26-1,107914493 https://github.com/simonw/sqlite-utils/releases/tag/0.8,15208430,MDc6UmVsZWFzZTE1MjA4NDMw,0.8,master,0.8,0,9599,0,2019-01-26T02:13:29Z,2019-01-28T06:28:12Z,[],"Two new commands: `sqlite-utils csv` and `sqlite-utils json` https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v0-8",140912432 https://github.com/simonw/sqlite-utils/releases/tag/0.9,15243253,MDc6UmVsZWFzZTE1MjQzMjUz,0.9,master,0.9,0,9599,0,2019-01-28T06:34:33Z,2019-01-29T15:30:48Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v0-9,140912432 https://github.com/simonw/datasette/releases/tag/0.27,15389392,MDc6UmVsZWFzZTE1Mzg5Mzky,0.27,master,Datasette 0.27,0,9599,0,2019-02-01T03:47:05Z,2019-02-06T05:10:20Z,[],https://datasette.readthedocs.io/en/stable/changelog.html#v0-27,107914493 https://github.com/simonw/sqlite-utils/releases/tag/0.10,15439849,MDc6UmVsZWFzZTE1NDM5ODQ5,0.10,master,0.10,0,9599,0,2019-02-07T05:17:52Z,2019-02-08T05:19:33Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v0-10,140912432 https://github.com/simonw/db-to-sqlite/releases/tag/0.2,15440165,MDc6UmVsZWFzZTE1NDQwMTY1,0.2,master,0.2,0,9599,0,2019-02-08T06:01:44Z,2019-02-08T06:07:36Z,[],"`--all` option can now be used to duplicate an entire database, including detecting foreign key relationships. `--table` option called without `--sql` will now mirror the specified table.",166159072 https://github.com/simonw/sqlite-utils/releases/tag/0.11,15731282,MDc6UmVsZWFzZTE1NzMxMjgy,0.11,master,0.11,0,9599,0,2019-02-08T05:23:50Z,2019-02-23T02:15:34Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v0-11,140912432 https://github.com/simonw/sqlite-utils/releases/tag/0.12,15731354,MDc6UmVsZWFzZTE1NzMxMzU0,0.12,master,0.12,0,9599,0,2019-02-23T02:22:28Z,2019-02-23T02:31:29Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v0-12,140912432 https://github.com/simonw/sqlite-utils/releases/tag/0.13,15739051,MDc6UmVsZWFzZTE1NzM5MDUx,0.13,master,0.13,0,9599,0,2019-02-24T06:54:43Z,2019-02-24T07:00:14Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v0-13,140912432 https://github.com/simonw/sqlite-utils/releases/tag/0.14,15744513,MDc6UmVsZWFzZTE1NzQ0NTEz,0.14,master,0.14,0,9599,0,2019-02-24T23:11:51Z,2019-02-24T23:15:16Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v0-14,140912432 https://github.com/simonw/datasette-render-html/releases/tag/0.1,17055917,MDc6UmVsZWFzZTE3MDU1OTE3,0.1,master,,0,9599,0,2019-04-30T01:55:11Z,2019-04-30T01:59:32Z,[],,184168864 https://github.com/simonw/datasette/releases/tag/0.28,17450414,MDc6UmVsZWFzZTE3NDUwNDE0,0.28,master,Datasette 0.28,0,9599,0,2019-05-19T21:37:49Z,2019-05-19T21:42:28Z,[],"[Datasette 0.28](https://datasette.readthedocs.io/en/stable/changelog.html#v0-28) - a salmagundi of new features! * No longer immutable! Datasette now supports [databases that change](https://datasette.readthedocs.io/en/stable/changelog.html#supporting-databases-that-change). * [Faceting improvements](https://datasette.readthedocs.io/en/stable/changelog.html#faceting-improvements-and-faceting-plugins) including facet-by-JSON-array and the ability to define custom faceting using plugins. * [datasette publish cloudrun](https://datasette.readthedocs.io/en/stable/changelog.html#datasette-publish-cloudrun) lets you publish databasese to Google's new Cloud Run hosting service. * New [register_output_renderer](https://datasette.readthedocs.io/en/stable/changelog.html#register-output-renderer-plugins) plugin hook for adding custom output extensions to Datasette in addition to the default `.json` and `.csv`. * Dozens of other smaller features and tweaks - see [the release notes](https://datasette.readthedocs.io/en/stable/changelog.html#v0-28) for full details.",107914493 https://github.com/simonw/sqlite-utils/releases/tag/1.0,17583581,MDc6UmVsZWFzZTE3NTgzNTgx,1.0,master,1.0,0,9599,0,2019-05-25T01:06:38Z,2019-05-25T01:19:21Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-0,140912432 https://github.com/simonw/sqlite-utils/releases/tag/1.0.1,17616531,MDc6UmVsZWFzZTE3NjE2NTMx,1.0.1,master,1.0.1,0,9599,0,2019-05-28T00:50:28Z,2019-05-28T00:51:21Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-0-1,140912432 https://github.com/simonw/sqlite-utils/releases/tag/1.1,17645877,MDc6UmVsZWFzZTE3NjQ1ODc3,1.1,master,1.1,0,9599,0,2019-05-29T05:12:03Z,2019-05-29T05:15:22Z,[],"https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-1 * Support for `ignore=True` / `--ignore` for ignoring inserted records if the primary key alread exists (#21) * Ability to add a column that is a foreign key reference using `fk=...` / `--fk` (#16) ",140912432 https://github.com/simonw/datasette-bplist/releases/tag/0.1,17870990,MDc6UmVsZWFzZTE3ODcwOTkw,0.1,master,0.1,0,9599,0,2019-06-09T01:14:22Z,2019-06-09T01:19:55Z,[],Initial release.,190950781 https://github.com/simonw/datasette-render-binary/releases/tag/0.1,17874587,MDc6UmVsZWFzZTE3ODc0NTg3,0.1,master,0.1,0,9599,0,2019-06-09T16:01:27Z,2019-06-09T16:10:36Z,[],,191022928 https://github.com/simonw/sqlite-utils/releases/tag/1.2,17961871,MDc6UmVsZWFzZTE3OTYxODcx,1.2,master,1.2,0,9599,0,2019-06-13T06:39:59Z,2019-06-13T06:42:21Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-2,140912432 https://github.com/simonw/datasette-render-binary/releases/tag/0.2,17976835,MDc6UmVsZWFzZTE3OTc2ODM1,0.2,master,0.2,0,9599,0,2019-06-09T16:20:28Z,2019-06-13T16:14:52Z,[],Added screenshot.,191022928 https://github.com/simonw/datasette-render-binary/releases/tag/0.3,17976887,MDc6UmVsZWFzZTE3OTc2ODg3,0.3,master,0.3,0,9599,0,2019-06-13T16:14:18Z,2019-06-13T16:16:36Z,[],"Now uses the [filetype](https://pypi.org/project/filetype/) module to suggest a possible format. ",191022928 https://github.com/simonw/datasette-json-html/releases/tag/0.5,17987324,MDc6UmVsZWFzZTE3OTg3MzI0,0.5,master,0.5 - tooltips and demos,0,9599,0,2019-06-14T01:29:34Z,2019-06-14T01:33:44Z,[],"Links can now have tooltips (#2): ``` { ""href"": ""https://simonwillison.net/"", ""label"": ""Simon Willison"", ""title"": ""My blog"" } ``` Also added [a live demo](https://datasette-json-html.datasette.io/demo?sql=select+%27%7B%0D%0A++++%22href%22%3A+%22https%3A%2F%2Fsimonwillison.net%2F%22%2C%0D%0A++++%22label%22%3A+%22Simon+Willison%22%2C%0D%0A++++%22title%22%3A+%22My+blog%22%0D%0A%7D%27) and linked to it throughout the README (#3, #1)",142967347 https://github.com/simonw/sqlite-utils/releases/tag/1.2.1,18132566,MDc6UmVsZWFzZTE4MTMyNTY2,1.2.1,master,1.2.1,0,9599,0,2019-06-21T00:01:24Z,2019-06-21T00:06:29Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-2-1,140912432 https://github.com/simonw/yaml-to-sqlite/releases/tag/0.2,18169270,MDc6UmVsZWFzZTE4MTY5Mjcw,0.2,master,0.2,0,9599,0,2019-06-23T22:55:32Z,2019-06-23T22:55:50Z,[],Better README,175550127 https://github.com/simonw/csvs-to-sqlite/releases/tag/0.9.1,18185234,MDc6UmVsZWFzZTE4MTg1MjM0,0.9.1,master,csvs-to-sqlite 0.9.1,0,9599,0,2019-06-24T15:16:54Z,2019-06-24T15:21:12Z,[],* Fixed bug where `-f` option used FTS4 even when FTS5 was available (#41),110509816 https://github.com/simonw/sqlite-utils/releases/tag/1.2.2,18226656,MDc6UmVsZWFzZTE4MjI2NjU2,1.2.2,master,1.2.2,0,9599,0,2019-06-26T04:20:55Z,2019-06-26T04:24:33Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-2-2,140912432 https://github.com/simonw/db-to-sqlite/releases/tag/0.3,18242211,MDc6UmVsZWFzZTE4MjQyMjEx,0.3,master,0.3,0,9599,0,2019-02-24T21:59:42Z,2019-06-26T15:54:56Z,[],Anchor to sqlite-utils==0.13 to pick up a breaking change.,166159072 https://github.com/simonw/db-to-sqlite/releases/tag/0.4,18242248,MDc6UmVsZWFzZTE4MjQyMjQ4,0.4,master,0.4,0,9599,0,2019-02-24T23:44:01Z,2019-06-26T15:55:54Z,[],"* Create `--all` tables in toposort order * Depend on sqlite-utils version 0.14 or higher ",166159072 https://github.com/simonw/db-to-sqlite/releases/tag/0.5,18242294,MDc6UmVsZWFzZTE4MjQyMjk0,0.5,master,0.5,0,9599,0,2019-06-26T15:44:35Z,2019-06-26T15:57:17Z,[],"* Foreign keys are now all added at the end, which means we can support circular foreign key references #1 * Dropped dependency on `toposort` * Added `--all --skip=table` option for skipping one or more tables when running `--all`",166159072 https://github.com/simonw/sqlite-utils/releases/tag/1.3,18307928,MDc6UmVsZWFzZTE4MzA3OTI4,1.3,master,1.3,0,9599,0,2019-06-29T06:32:36Z,2019-06-29T06:39:32Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-3,140912432 https://github.com/simonw/db-to-sqlite/releases/tag/0.6,18310609,MDc6UmVsZWFzZTE4MzEwNjA5,0.6,master,0.6,0,9599,0,2019-06-29T15:18:30Z,2019-06-29T15:27:18Z,[],"- `--all` can now add many foreign key relationships without a `VACUUM` between each one, #8 - Added unit tests against MySQL, refs #5",166159072 https://github.com/simonw/db-to-sqlite/releases/tag/0.7,18312451,MDc6UmVsZWFzZTE4MzEyNDUx,0.7,master,0.7,0,9599,0,2019-06-29T21:27:30Z,2019-06-29T21:31:00Z,[],"- Support `pip install db-to-sqlite[postgresql]` #4 - Documentation for both that and `pip install db-to-sqlite[mysql]`",166159072 https://github.com/simonw/db-to-sqlite/releases/tag/0.8,18312546,MDc6UmVsZWFzZTE4MzEyNTQ2,0.8,master,0.8,0,9599,0,2019-06-29T21:52:48Z,2019-06-29T21:53:58Z,[],* Added `--progress` option to show progress bars during import - #7 ,166159072 https://github.com/simonw/db-to-sqlite/releases/tag/1.0,18320205,MDc6UmVsZWFzZTE4MzIwMjA1,1.0,master,1.0,0,9599,0,2019-07-01T01:23:17Z,2019-07-01T01:32:47Z,[],"See the [README](https://github.com/simonw/db-to-sqlite/blob/1.0/README.md) for full usage instructions. * Instead of using `--connection` the connection string is now a required positional argument, #14 * `--sql` must now be accompanied by `--output` specifying the table the query results should be written to * `--redact tablename columnname` option can be used to redact values, #2 * Foreign keys are now created with indexes, use `--no-index-fks` to disable this, #12 * `--table` can now be used multiple times, #6 * README and `--help` now include example connection strings * README also details how this can be used with Heroku Postgres",166159072 https://github.com/simonw/db-to-sqlite/releases/tag/1.0.1,18321523,MDc6UmVsZWFzZTE4MzIxNTIz,1.0.1,master,1.0.1,0,9599,0,2019-07-01T04:08:01Z,2019-07-01T04:09:04Z,[],* Improvements to README,166159072 https://github.com/simonw/csvs-to-sqlite/releases/tag/0.9.2,18377238,MDc6UmVsZWFzZTE4Mzc3MjM4,0.9.2,master,csvs-to-sqlite 0.9.2,0,9599,0,2019-07-03T04:36:26Z,2019-07-03T04:37:15Z,[],Bumped dependencies and pinned pytest to version 4 (5 is incompatible with Python 2.7).,110509816 https://github.com/simonw/datasette-auth-github/releases/tag/0.1,18441103,MDc6UmVsZWFzZTE4NDQxMTAz,0.1,master,0.1,0,9599,0,2019-07-04T15:05:34Z,2019-07-05T15:58:24Z,[],Initial working release.,195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.1.1,18441133,MDc6UmVsZWFzZTE4NDQxMTMz,0.1.1,master,0.1.1,0,9599,0,2019-07-05T15:58:48Z,2019-07-05T16:00:07Z,[],Outbound calls to the GitHub API are now non-blocking (using [http3](https://github.com/encode/http3)) - #8,195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.2,18451662,MDc6UmVsZWFzZTE4NDUxNjYy,0.2,master,0.2,0,9599,0,2019-07-06T17:11:39Z,2019-07-06T17:14:02Z,[],"* `/-/logout` URL for logging out #7 * Custom navigation showing login state #5 * Restored ASGI lifespan support #10 * `disable_auto_login` setting #9 * `Cache-Control: private` #6",195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.3,18451672,MDc6UmVsZWFzZTE4NDUxNjcy,0.3,master,0.3,0,9599,0,2019-07-06T17:14:58Z,2019-07-06T17:15:29Z,[],* Ability to restrict access to specific users or members of specific GitHub organizations #4,195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.3.1,18451716,MDc6UmVsZWFzZTE4NDUxNzE2,0.3.1,master,0.3.1,0,9599,0,2019-07-06T17:27:03Z,2019-07-06T17:27:46Z,[],* Fixed bug where we were requesting the incorrect OAuth scope when using `allow_orgs` #14 ,195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.3.2,18452996,MDc6UmVsZWFzZTE4NDUyOTk2,0.3.2,master,0.3.2,0,9599,0,2019-07-06T20:18:37Z,2019-07-06T22:01:45Z,[],* Fixed bug where custom template was not correctly included in the package #15,195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.4,18453004,MDc6UmVsZWFzZTE4NDUzMDA0,0.4,master,0.4,0,9599,0,2019-07-06T22:02:38Z,2019-07-06T22:03:41Z,[],"* More compact JSON encoding for authentication cookie value * Support single string values for `allow_users`/`allow_orgs` options, #16 ",195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.5,18453939,MDc6UmVsZWFzZTE4NDUzOTM5,0.5,master,0.5,0,9599,0,2019-07-07T02:35:09Z,2019-07-07T02:37:16Z,[],"* New `allow_teams` configuration option for restricting access to members of a GitHub team - #11 * Signed cookies expire after a TTL (customize with new `cooke_ttl` setting) - #22 * Documentation on using this as ASGI middleware - #19 * Avoid 404 on `/-/auth-callback` if user is logged in - #24 * Added `cookie_version` setting for invalidating all cookies - #18",195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.6,18458558,MDc6UmVsZWFzZTE4NDU4NTU4,0.6,master,0.6,0,9599,0,2019-07-07T19:41:27Z,2019-07-07T19:41:47Z,[],"* Redirects back to where you were after you login, using a new `asgi_auth_redirect` cookie - #26 * Unset asgi_auth_logout cookie when you sign in again - #28 * Fixed bug where API call to GitHub intermittently failed with `ConnectionResetError` - #27 * More robust creation of derived cookie signing secret using `hashlib.pbkdf2_hmac` * HTML pages now served with `charset=UTF-8` - #30 ",195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.6.1,18458837,MDc6UmVsZWFzZTE4NDU4ODM3,0.6.1,master,0.6.1,0,9599,0,2019-07-07T20:38:42Z,2019-07-07T20:39:19Z,[],Minor code clean-up and updated one-line description for PyPI / README.,195087137 https://github.com/simonw/datasette/releases/tag/0.29,18461320,MDc6UmVsZWFzZTE4NDYxMzIw,0.29,master,Datasette 0.29,0,9599,0,2019-07-08T03:14:27Z,2019-07-08T03:43:13Z,[],"ASGI, new plugin hooks, facet by date and much, much more… See [the release notes](https://datasette.readthedocs.io/en/stable/changelog.html#v0-29) for full details.",107914493 https://github.com/simonw/datasette-auth-github/releases/tag/0.6.2,18461352,MDc6UmVsZWFzZTE4NDYxMzUy,0.6.2,master,0.6.2,0,9599,0,2019-07-08T03:47:16Z,2019-07-08T03:47:38Z,[],Updated README for PyPI,195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.6.3,18476766,MDc6UmVsZWFzZTE4NDc2NzY2,0.6.3,master,0.6.3,0,9599,0,2019-07-08T16:51:01Z,2019-07-08T16:51:39Z,[],"Additional documentation on `scope[""auth""]` when using as ASGI middleware.",195087137 https://github.com/simonw/datasette-cors/releases/tag/0.3,18542137,MDc6UmVsZWFzZTE4NTQyMTM3,0.3,master,0.3,0,9599,0,2019-07-11T04:40:37Z,2019-07-11T04:43:24Z,[],Now with unit tests! #1,195696804 https://github.com/simonw/datasette-auth-github/releases/tag/0.7,18555982,MDc6UmVsZWFzZTE4NTU1OTgy,0.7,master,0.7,0,9599,0,2019-07-11T15:05:54Z,2019-07-11T15:07:15Z,[],"* New `require_auth` configuration option. This defaults to `True` (reflecting existing behaviour) when `datasette-auth-github` is used as a Datasette plugin, but it defaults to `False` if you use the wrapper ASGI middleware class directly. #37",195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.8,18596695,MDc6UmVsZWFzZTE4NTk2Njk1,0.8,master,0.8,0,9599,0,2019-07-13T18:39:34Z,2019-07-13T18:43:06Z,[],"Now compatible with Python 3.5, which means it can run on Glitch! https://datasette-auth-github-demo.glitch.me/ #38 This also means we now have no installation dependencies, since the code now uses the standard library to make API calls instead of depending on [http3](https://github.com/encode/http3). #40",195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.9,18598299,MDc6UmVsZWFzZTE4NTk4Mjk5,0.9,master,0.9,0,9599,0,2019-07-14T00:40:16Z,2019-07-14T00:41:33Z,[],"- Explicit log in screen now includes SVG GitHub logo on the button - #42 - Default signed cookie TTL is now 1 hour, not 24 hours - #43",195087137 https://github.com/simonw/datasette-auth-github/releases/tag/0.9.1,18598348,MDc6UmVsZWFzZTE4NTk4MzQ4,0.9.1,master,0.9.1,0,9599,0,2019-07-14T00:58:35Z,2019-07-14T00:59:24Z,[],- Updated documentation to reflect new one hour `cookie_ttl` default - #43,195087137 https://github.com/simonw/datasette/releases/tag/0.29.1,18598489,MDc6UmVsZWFzZTE4NTk4NDg5,0.29.1,master,0.29.1,0,9599,0,2019-07-11T16:17:55Z,2019-07-14T01:43:44Z,[],"- Fixed bug with static mounts using relative paths which could lead to traversal exploits (#555) - thanks Abdussamet Kocak! https://datasette.readthedocs.io/en/stable/changelog.html#v0-29-1",107914493 https://github.com/simonw/sqlite-utils/releases/tag/1.6,18723202,MDc6UmVsZWFzZTE4NzIzMjAy,1.6,master,1.6,0,9599,0,2019-07-19T04:51:21Z,2019-07-19T05:36:48Z,[],"- `sqlite-utils insert` can now accept TSV data via the new `--tsv` option (#41) ",140912432 https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.1,18750551,MDc6UmVsZWFzZTE4NzUwNTUx,0.1,master,Initial release,0,9599,0,2019-07-20T06:22:57Z,2019-07-20T16:43:09Z,[],,197882382 https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.2,18750559,MDc6UmVsZWFzZTE4NzUwNTU5,0.2,master,0.2,0,9599,0,2019-07-20T16:44:05Z,2019-07-20T16:44:41Z,[],Fixed a bug where duplicate records could crash the import.,197882382 https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.3,18762495,MDc6UmVsZWFzZTE4NzYyNDk1,0.3,master,0.3,0,9599,0,2019-07-22T03:31:54Z,2019-07-22T03:33:32Z,[],"- Tool now displays a progress bar during import - you can disable it with `--silent` #5 - You can pass a path to a decompressed XML file instead of a zip file, using `--xml` - Records table is now broken up into different tables for each type of recorded data #6",197882382 https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.3.1,18823859,MDc6UmVsZWFzZTE4ODIzODU5,0.3.1,master,0.3.1,0,9599,0,2019-07-24T06:33:22Z,2019-07-24T06:38:36Z,[],Uses less RAM - see #7 ,197882382 https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.3.2,18881253,MDc6UmVsZWFzZTE4ODgxMjUz,0.3.2,master,0.3.2,0,9599,0,2019-07-26T06:02:30Z,2019-07-26T06:12:12Z,[],Fix for #9 - Too many SQL variables bug,197882382 https://github.com/simonw/sqlite-utils/releases/tag/1.7,18911392,MDc6UmVsZWFzZTE4OTExMzky,1.7,master,1.7,0,9599,0,2019-07-24T06:50:41Z,2019-07-28T12:03:21Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-7,140912432 https://github.com/simonw/sqlite-utils/releases/tag/1.7.1,18911404,MDc6UmVsZWFzZTE4OTExNDA0,1.7.1,master,1.7.1,0,9599,0,2019-07-28T12:00:51Z,2019-07-28T12:05:36Z,[],https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-7-1,140912432 https://github.com/simonw/db-to-sqlite/releases/tag/1.0.2,19054897,MDc6UmVsZWFzZTE5MDU0ODk3,1.0.2,master,1.0.2,0,9599,0,2019-08-03T04:01:00Z,2019-08-03T04:09:41Z,[],Fix for #18 - no longer throws error on empty tables,166159072 https://github.com/simonw/csvs-to-sqlite/releases/tag/1.0,19056866,MDc6UmVsZWFzZTE5MDU2ODY2,1.0,master,csvs-to-sqlite 1.0,0,9599,0,2019-08-03T10:50:48Z,2019-08-03T10:58:15Z,[],This release drops support for Python 2.x #55,110509816 https://github.com/dogsheep/swarm-to-sqlite/releases/tag/0.1,19669553,MDc6UmVsZWFzZTE5NjY5NTUz,0.1,master,0.1,0,9599,0,2019-08-31T02:46:58Z,2019-08-31T02:58:32Z,[],First usable release.,205429375 https://github.com/simonw/datasette/releases/tag/0.29.2,19704661,MDc6UmVsZWFzZTE5NzA0NjYx,0.29.2,master,0.29.2,0,9599,0,2019-07-14T03:04:05Z,2019-09-03T00:33:35Z,[],"* Bumped Uvicorn to 0.8.4, fixing a bug where the querystring was not included in the server logs. (#559) * Fixed bug where the navigation breadcrumbs were not displayed correctly on the page for a custom query. (#558) * Fixed bug where custom query names containing unicode characters caused errors. https://datasette.readthedocs.io/en/stable/changelog.html#v0-29-2",107914493 https://github.com/simonw/sqlite-utils/releases/tag/1.8,19704736,MDc6UmVsZWFzZTE5NzA0NzM2,1.8,master,1.8,0,9599,0,2019-07-28T15:41:42Z,2019-09-03T00:45:42Z,[],https://sqlite-utils.readthedocs.io/en/stable/changelog.html#v1-8,140912432 https://github.com/simonw/sqlite-utils/releases/tag/1.9,19704739,MDc6UmVsZWFzZTE5NzA0NzM5,1.9,master,1.9,0,9599,0,2019-08-04T03:35:30Z,2019-09-03T00:46:02Z,[],https://sqlite-utils.readthedocs.io/en/stable/changelog.html#v1-9,140912432 https://github.com/simonw/sqlite-utils/releases/tag/1.10,19704743,MDc6UmVsZWFzZTE5NzA0NzQz,1.10,master,1.10,0,9599,0,2019-08-23T12:24:04Z,2019-09-03T00:46:27Z,[],https://sqlite-utils.readthedocs.io/en/stable/changelog.html#v1-10,140912432 https://github.com/simonw/sqlite-utils/releases/tag/1.11,19704889,MDc6UmVsZWFzZTE5NzA0ODg5,1.11,master,1.11,0,9599,0,2019-09-03T00:58:41Z,2019-09-03T01:03:27Z,[],https://sqlite-utils.readthedocs.io/en/stable/changelog.html#v1-11,140912432