github
html_url | id | node_id | tag_name | target_commitish | name | draft | author | prerelease | created_at | published_at | body | repo | reactions |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/datasette/releases/tag/0.42 | 26320774 | MDc6UmVsZWFzZTI2MzIwNzc0 | 0.42 | master | 0.42 | 0 | 9599 | 0 | 2020-05-08T17:38:27Z | 2020-05-08T17:56:36Z | A small release which provides improved internal methods for use in plugins, along with documentation. See #685. * Added documentation for `db.execute()`, see [await db.execute(sql, ...)](https://datasette.readthedocs.io/en/stable/internals.html#database-execute). * Renamed `db.execute_against_connection_in_thread()` to `db.execute_fn()` and made it a documented method, see [await db.execute_fn(fn)](https://datasette.readthedocs.io/en/stable/internals.html#database-execute-fn). * New `results.first()` and `results.single_value()` methods, plus documentation for the `Results` class - see [Results](https://datasette.readthedocs.io/en/stable/internals.html#database-results). | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.9 | 26362623 | MDc6UmVsZWFzZTI2MzYyNjIz | 2.9 | master | 2.9 | 0 | 9599 | 0 | 2020-05-11T01:54:56Z | 2020-05-11T01:57:11Z | - New `sqlite-utils drop-table` command, see [Dropping tables](https://sqlite-utils.readthedocs.io/en/2.9/cli.html#cli-drop-table). ([#111](https://github.com/simonw/sqlite-utils/issues/111)) - New `sqlite-utils drop-view` command, see [Dropping views](https://sqlite-utils.readthedocs.io/en/2.9/cli.html#cli-drop-view). - Python `decimal.Decimal` objects are now stored as `FLOAT`. ([#110](https://github.com/simonw/sqlite-utils/issues/110)) | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.9.1 | 26395903 | MDc6UmVsZWFzZTI2Mzk1OTAz | 2.9.1 | master | 2.9.1 | 0 | 9599 | 0 | 2020-05-11T19:20:29Z | 2020-05-11T19:21:24Z | * Added custom project links to the [PyPI listing](https://pypi.org/project/sqlite-utils/). | 140912432 | |
https://github.com/dogsheep/dogsheep-photos/releases/tag/0.4 | 26698662 | MDc6UmVsZWFzZTI2Njk4NjYy | 0.4 | master | 0.4 | 0 | 9599 | 0 | 2020-05-20T04:22:26Z | 2020-05-20T04:24:28Z | - Renamed this project to `dogsheep-photos`. #26 - `apple-photos` command now works even if you haven't yet run `upload`. #19 - `--image-url-prefix` and `--image-url-suffix` options to `apple-photos`. #24 - New `create-subset` command. #23 | 256834907 | |
https://github.com/dogsheep/dogsheep-photos/releases/tag/0.4.1 | 26873698 | MDc6UmVsZWFzZTI2ODczNjk4 | 0.4.1 | master | 0.4.1 | 0 | 9599 | 0 | 2020-05-25T20:11:20Z | 2020-05-25T20:13:23Z | - Documentation now explains how to use this with the [datasette-media](https://github.com/simonw/datasette-media), [datasette-json-html](https://github.com/simonw/datasette-json-html) and [datasette-template-sql](https://github.com/simonw/datasette-template-sql) plugins. #20 | 256834907 | |
https://github.com/simonw/datasette/releases/tag/0.43 | 26994005 | MDc6UmVsZWFzZTI2OTk0MDA1 | 0.43 | master | 0.43 | 0 | 9599 | 0 | 2020-05-28T14:11:06Z | 2020-05-28T14:39:18Z | The main focus of this release is a major upgrade to the [register_output_renderer(datasette)](https://datasette.readthedocs.io/en/stable/plugins.html#plugin-register-output-renderer) plugin hook, which allows plugins to provide new output formats for Datasette such as [datasette-atom](https://github.com/simonw/datasette-atom) and [datasette-ics](https://github.com/simonw/datasette-ics). - Redesign of [register_output_renderer(datasette)](https://datasette.readthedocs.io/en/stable/plugins.html#plugin-register-output-renderer) to provide more context to the render callback and support an optional `"can_render"` callback that controls if a suggested link to the output format is provided. ([#581](https://github.com/simonw/datasette/issues/581), [#770](https://github.com/simonw/datasette/issues/770)) - Visually distinguish float and integer columns - useful for figuring out why order-by-column might be returning unexpected results. ([#729](https://github.com/simonw/datasette/issues/729)) - The [Request object](https://datasette.readthedocs.io/en/stable/internals.html#internals-request), which is passed to several plugin hooks, is now documented. ([#706](https://github.com/simonw/datasette/issues/706)) - New `metadata.json` option for setting a custom default page size for specific tables and views, see [Setting a custom page size](https://datasette.readthedocs.io/en/stable/metadata.html#metadata-page-size). ([#751](https://github.com/simonw/datasette/issues/751)) - Canned queries can now be configured with a default URL fragment hash, useful when working with plugins such as [datasette-vega](https://github.com/simonw/datasette-vega), see [Setting a default fragment](https://datasette.readthedocs.io/en/stable/sql_queries.html#canned-queries-default-fragment). ([#706](https://github.com/simonw/datasette/issues/706)) - Fixed a bug in `datasette publish` when running on operating systems where the `/tmp` directory lives in a different volume, using a backport of the Python 3.8 `shutil.copytree()` func… | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.44 | 27483276 | MDc6UmVsZWFzZTI3NDgzMjc2 | 0.44 | master | 0.44 | 0 | 9599 | 0 | 2020-06-12T01:19:30Z | 2020-06-12T07:10:38Z | Authentication and permissions, writable canned queries, flash messages, new plugin hooks and more. [Full release notes](https://datasette.readthedocs.io/en/stable/changelog.html#v0-44). See also [Datasette 0.44: the annotated release notes](https://simonwillison.net/2020/Jun/12/annotated-release-notes/). | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.10 | 27504516 | MDc6UmVsZWFzZTI3NTA0NTE2 | 2.10 | master | 2.10 | 0 | 9599 | 0 | 2020-06-12T17:43:45Z | 2020-06-12T17:44:32Z | - The `sqlite-utils` command now supports UPDATE/INSERT/DELETE in addition to SELECT. #115 | 140912432 | |
https://github.com/simonw/datasette/releases/tag/0.45a1 | 27707079 | MDc6UmVsZWFzZTI3NzA3MDc5 | 0.45a1 | master | 0.45a1 | 0 | 9599 | 1 | 2020-06-18T23:52:16Z | 2020-06-19T00:02:29Z | 107914493 | ||
https://github.com/simonw/datasette/releases/tag/0.45a0 | 27703093 | MDc6UmVsZWFzZTI3NzAzMDkz | 0.45a0 | master | 0.45a0 | 0 | 9599 | 1 | 2020-06-18T20:58:09Z | 2020-06-18T21:14:00Z | 107914493 | ||
https://github.com/simonw/sqlite-utils/releases/tag/2.10.1 | 27847716 | MDc6UmVsZWFzZTI3ODQ3NzE2 | 2.10.1 | master | 2.10.1 | 0 | 9599 | 0 | 2020-06-23T21:04:07Z | 2020-06-23T21:04:50Z | * Added documentation for the `table.pks` introspection property. #116 | 140912432 | |
https://github.com/simonw/datasette/releases/tag/0.45a2 | 27856779 | MDc6UmVsZWFzZTI3ODU2Nzc5 | 0.45a2 | master | 0.45a2 | 0 | 9599 | 1 | 2020-06-24T04:17:30Z | 2020-06-24T04:32:12Z | 107914493 | ||
https://github.com/simonw/datasette/releases/tag/0.45a3 | 27994774 | MDc6UmVsZWFzZTI3OTk0Nzc0 | 0.45a3 | master | 0.45a3 | 0 | 9599 | 1 | 2020-06-28T03:22:49Z | 2020-06-28T03:27:12Z | 107914493 | ||
https://github.com/simonw/datasette/releases/tag/0.45a4 | 28008549 | MDc6UmVsZWFzZTI4MDA4NTQ5 | 0.45a4 | master | 0.45a4 | 0 | 9599 | 1 | 2020-06-29T02:31:16Z | 2020-06-29T02:33:02Z | 107914493 | ||
https://github.com/simonw/datasette/releases/tag/0.45a5 | 28097766 | MDc6UmVsZWFzZTI4MDk3NzY2 | 0.45a5 | master | 0.45a5 | 0 | 9599 | 1 | 2020-07-01T04:25:35Z | 2020-07-01T04:27:08Z | 107914493 | ||
https://github.com/simonw/datasette/releases/tag/0.45 | 28134124 | MDc6UmVsZWFzZTI4MTM0MTI0 | 0.45 | master | 0.45 | 0 | 9599 | 0 | 2020-07-01T21:43:07Z | 2020-07-01T21:46:07Z | Magic parameters for canned queries, a log out feature, improved plugin documentation and four new plugin hooks. ### Magic parameters for canned queries Canned queries now support [Magic parameters](https://docs.datasette.io/en/stable/sql_queries.html#canned-queries-magic-parameters), which can be used to insert or select automatically generated values. For example: ```sql insert into logs (user_id, timestamp) values (:_actor_id, :_now_datetime_utc) ``` This inserts the currently authenticated actor ID and the current datetime. ([#842](https://github.com/simonw/datasette/issues/842)) ### Log out The [ds_actor cookie](https://docs.datasette.io/en/stable/authentication.html#authentication-ds-actor) can be used by plugins (or by Datasette's [--root mechanism](https://docs.datasette.io/en/stable/authentication.html#authentication-root)) to authenticate users. The new `/-/logout` page provides a way to clear that cookie. A "Log out" button now shows in the global navigation provided the user is authenticated using the `ds_actor` cookie. ([#840](https://github.com/simonw/datasette/issues/840)) ### Better plugin documentation The plugin documentation has been re-arranged into four sections, including a brand new section on testing plugins. ([#687](https://github.com/simonw/datasette/issues/687)) - [Plugins](https://docs.datasette.io/en/stable/plugins.html#plugins) introduces Datasette's plugin system and describes how to install and configure plugins. - [Writing plugins](https://docs.datasette.io/en/stable/writing_plugins.html#writing-plugins) describes how to author plugins, from simple one-off plugins to packaged plugins that can be published to PyPI. It also describes how to start a plugin using the new [datasette-plugin](https://github.com/simonw/datasette-plugin) cookiecutter template. - [Plugin hooks](https://docs.datasette.io/en/stable/plugin_hooks.html#plugin-hooks) is a full list of detailed documentation for every Datasette plugin hook. - [Testing plugins](https://… | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.11 | 28369250 | MDc6UmVsZWFzZTI4MzY5MjUw | 2.11 | master | 2.11 | 0 | 9599 | 0 | 2020-07-08T17:36:07Z | 2020-07-08T17:36:45Z | - New `--truncate` option to `sqlite-utils insert`, and `truncate=True` argument to `.insert_all()`. Thanks, Thomas Sibley. ([#118](https://github.com/simonw/sqlite-utils/pull/118)) - The `sqlite-utils query` command now runs updates in a transaction. Thanks, Thomas Sibley. ([#120](https://github.com/simonw/sqlite-utils/pull/120)) | 140912432 | |
https://github.com/dogsheep/github-to-sqlite/releases/tag/2.3 | 28422716 | MDc6UmVsZWFzZTI4NDIyNzE2 | 2.3 | master | 2.3 | 0 | 9599 | 0 | 2020-07-09T23:26:34Z | 2020-07-09T23:28:07Z | - New `github-to-sqlite repos my.db -r simonw/datasette` option for importing just specific repositories. #42 | 207052882 | |
https://github.com/dogsheep/github-to-sqlite/releases/tag/2.4 | 28705938 | MDc6UmVsZWFzZTI4NzA1OTM4 | 2.4 | master | 2.4 | 0 | 9599 | 0 | 2020-07-18T22:34:15Z | 2020-07-18T22:35:27Z | - New `github-to-sqlite tags github.db simonw/datasette` command for importing all tags for a repository. #43 | 207052882 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.21.2 | 28705982 | MDc6UmVsZWFzZTI4NzA1OTgy | 0.21.2 | master | 0.21.2 | 0 | 9599 | 0 | 2020-07-18T22:42:54Z | 2020-07-18T22:43:20Z | - Added changelog badge | 206156866 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.21.3 | 28876263 | MDc6UmVsZWFzZTI4ODc2MjYz | 0.21.3 | master | 0.21.3 | 0 | 9599 | 0 | 2020-07-23T14:56:02Z | 2020-07-23T14:57:11Z | * Added table of contents to the documentation | 206156866 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.12 | 28975119 | MDc6UmVsZWFzZTI4OTc1MTE5 | 2.12 | master | 2.12 | 0 | 9599 | 0 | 2020-07-27T07:21:26Z | 2020-07-27T07:24:10Z | The theme of this release is better tools for working with binary data. The new `insert-files` command can be used to insert binary files directly into a database table, and other commands have been improved with better support for BLOB columns. - `sqlite-utils insert-files my.db gifs *.gif` can now insert the contents of files into a specified table. The columns in the table can be customized to include different pieces of metadata derived from the files. See [Inserting binary data from files](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-insert-files). ([#122](https://github.com/simonw/sqlite-utils/issues/122)) - `--raw` option to `sqlite-utils query` - for outputting just a single raw column value - see [Returning raw data from a query, such as binary content](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-query-raw). ([#123](https://github.com/simonw/sqlite-utils/issues/123)) - JSON output now encodes BLOB values as special base64 obects - see [Running queries and returning JSON](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-query-json). ([#125](https://github.com/simonw/sqlite-utils/issues/125)) - The same format of JSON base64 objects can now be used to insert binary data - see [Inserting JSON data](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-inserting-data). ([#126](https://github.com/simonw/sqlite-utils/issues/126)) - The `sqlite-utils query` command can now accept named parameters, e.g. `sqlite-utils :memory: "select :num * :num2" -p num 5 -p num2 6` - see [Running queries and returning JSON](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-query-json). ([#124](https://github.com/simonw/sqlite-utils/issues/124)) | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.13 | 29096810 | MDc6UmVsZWFzZTI5MDk2ODEw | 2.13 | master | 2.13 | 0 | 9599 | 0 | 2020-07-30T01:13:53Z | 2020-07-30T01:15:55Z | - `memoryview` and `uuid.UUID` objects are now supported. `memoryview` objects will be stored using `BLOB` and `uuid.UUID` objects will be stored using `TEXT`. (#128) | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.14 | 29196241 | MDc6UmVsZWFzZTI5MTk2MjQx | 2.14 | master | 2.14 | 0 | 9599 | 0 | 2020-08-01T20:58:47Z | 2020-08-01T21:00:31Z | - The [insert-files command](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-insert-files) can now read from standard input: `cat dog.jpg | sqlite-utils insert-files dogs.db pics - --name=dog.jpg`. ([#127](https://github.com/simonw/sqlite-utils/issues/127)) - You can now specify a full-text search tokenizer using the new `tokenize=` parameter to [enable_fts()](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-fts). This means you can enable Porter stemming on a table by running `db["articles"].enable_fts(["headline", "body"], tokenize="porter")`. ([#130](https://github.com/simonw/sqlite-utils/issues/130)) - You can also set a custom tokenizer using the [sqlite-utils enable-fts](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-fts) CLI command, via the new `--tokenize` option. | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.14.1 | 29394982 | MDc6UmVsZWFzZTI5Mzk0OTgy | 2.14.1 | master | 2.14.1 | 0 | 9599 | 0 | 2020-08-06T06:31:11Z | 2020-08-06T06:31:48Z | - Documentation improvements | 140912432 | |
https://github.com/simonw/datasette/releases/tag/0.46 | 29489364 | MDc6UmVsZWFzZTI5NDg5MzY0 | 0.46 | main | 0.46 | 0 | 9599 | 0 | 2020-08-09T16:09:07Z | 2020-08-09T16:10:47Z | **Warning:** This release contains a security fix related to authenticated writable canned queries. If you are using this feature you should upgrade as soon as possible. - **Security fix:** CSRF tokens were incorrectly included in read-only canned query forms, which could allow them to be leaked to a sophisticated attacker. See [issue 918](https://github.com/simonw/datasette/issues/918) for details. - Datasette now supports GraphQL via the new [datasette-graphql](https://github.com/simonw/datasette-graphql) plugin - see [GraphQL in Datasette with the new datasette-graphql plugin](https://simonwillison.net/2020/Aug/7/datasette-graphql/). - Principle git branch has been renamed from `master` to `main`. ([#849](https://github.com/simonw/datasette/issues/849)) - New debugging tool: `/-/allow-debug tool` ([demo here](https://latest.datasette.io/-/allow-debug)) helps test allow blocks against actors, as described in [Defining permissions with "allow" blocks](https://datasette.readthedocs.io/en/stable/authentication.html#authentication-permissions-allow). ([#908](https://github.com/simonw/datasette/issues/908)) - New logo for the documentation, and a new project tagline: "An open source multi-tool for exploring and publishing data". - Whitespace in column values is now respected on display, using `white-space: pre-wrap`. ([#896](https://github.com/simonw/datasette/issues/896)) - New `await request.post_body()` method for accessing the raw POST body, see [Request object](https://datasette.readthedocs.io/en/stable/internals.html#internals-request). ([#897](https://github.com/simonw/datasette/issues/897)) - Database file downloads now include a `content-length` HTTP header, enabling download progress bars. ([#905](https://github.com/simonw/datasette/issues/905)) - File downloads now also correctly set the suggested file name using a `content-disposition` HTTP header. ([#909](https://github.com/simonw/datasette/issues/909)) - `tests` are now excluded from the Datasette package properly - than… | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.15 | 29529316 | MDc6UmVsZWFzZTI5NTI5MzE2 | 2.15 | master | 2.15 | 0 | 9599 | 0 | 2020-08-10T19:06:02Z | 2020-08-10T19:07:27Z | - New `db.enable_wal()` and `db.disable_wal()` methods for enabling and disabling [Write-Ahead Logging](https://www.sqlite.org/wal.html) for a database file - see [WAL mode](https://sqlite-utils.readthedocs.io/en/stable//python-api.html#python-api-wal) in the Python API documentation. - Also `sqlite-utils enable-wal file.db` and `sqlite-utils disable-wal file.db` commands for doing the same thing on the command-line, see [WAL mode (CLI)](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-wal). ([#132](https://github.com/simonw/sqlite-utils/issues/132)) | 140912432 | |
https://github.com/simonw/datasette/releases/tag/0.47 | 29585154 | MDc6UmVsZWFzZTI5NTg1MTU0 | 0.47 | main | 0.47 | 0 | 9599 | 0 | 2020-08-12T00:42:47Z | 2020-08-12T00:44:52Z | - Datasette now has [a GitHub discussions forum](https://github.com/simonw/datasette/discussions) for conversations about the project that go beyond just bug reports and issues. - Datasette can now be installed on macOS using Homebrew! Run `brew install simonw/datasette/datasette`. See [Using Homebrew](https://datasette.readthedocs.io/en/stable/installation.html#installation-homebrew). ([#335](https://github.com/simonw/datasette/issues/335)) - Two new commands: `datasette install name-of-plugin` and `datasette uninstall name-of-plugin`. These are equivalent to `pip install` and `pip uninstall` but automatically run in the same virtual environment as Datasette, so users don't have to figure out where that virtual environment is - useful for installations created using Homebrew or `pipx`. See [Installing plugins](https://datasette.readthedocs.io/en/stable/plugins.html#plugins-installing). ([#925](https://github.com/simonw/datasette/issues/925)) - A new command-line option, `datasette --get`, accepts a path to a URL within the Datasette instance. It will run that request through Datasette (without starting a web server) and print out the repsonse. See [datasette --get](https://datasette.readthedocs.io/en/stable/getting_started.html#getting-started-datasette-get) for an example. ([#926](https://github.com/simonw/datasette/issues/926)) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.47.1 | 29587652 | MDc6UmVsZWFzZTI5NTg3NjUy | 0.47.1 | main | 0.47.1 | 0 | 9599 | 0 | 2020-08-12T02:37:24Z | 2020-08-12T02:38:00Z | - Fixed a bug where the `sdist` distribution of Datasette was not correctly including the template files. ([#930](https://github.com/simonw/datasette/issues/930)) | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.15.1 | 29616454 | MDc6UmVsZWFzZTI5NjE2NDU0 | 2.15.1 | main | 2.15.1 | 0 | 9599 | 0 | 2020-08-12T16:59:48Z | 2020-08-12T17:00:27Z | - Now available as a `sdist` package on PyPI in addition to a wheel. ([#133](https://github.com/simonw/sqlite-utils/issues/133)) | 140912432 | |
https://github.com/simonw/datasette/releases/tag/0.47.2 | 29625082 | MDc6UmVsZWFzZTI5NjI1MDgy | 0.47.2 | main | 0.47.2 | 0 | 9599 | 0 | 2020-08-12T20:54:33Z | 2020-08-12T20:55:28Z | - Fixed an issue with the Docker image [published to Docker Hub](https://hub.docker.com/r/datasetteproject/datasette). ([#931](https://github.com/simonw/datasette/issues/931)) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.47.3 | 29738457 | MDc6UmVsZWFzZTI5NzM4NDU3 | 0.47.3 | main | 0.47.3 | 0 | 9599 | 0 | 2020-08-15T20:56:08Z | 2020-08-15T21:03:58Z | - The `datasette --get` command-line mechanism now ensures any plugins using the `startup()` hook are correctly executed. ([#934](https://github.com/simonw/datasette/issues/934)) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.48 | 29749566 | MDc6UmVsZWFzZTI5NzQ5NTY2 | 0.48 | main | 0.48 | 0 | 9599 | 0 | 2020-08-16T18:56:31Z | 2020-08-16T18:58:34Z | - Datasette documentation now lives at [docs.datasette.io](https://docs.datasette.io/). - `db.is_mutable` property is now documented and tested, see [Database introspection](https://docs.datasette.io/en/stable/internals.html#internals-database-introspection). - The `extra_template_vars`, `extra_css_urls`, `extra_js_urls` and `extra_body_script` plugin hooks now all accept the same arguments. See [extra_template_vars(template, database, table, columns, view_name, request, datasette)](https://docs.datasette.io/en/stable/plugin_hooks.html#plugin-hook-extra-template-vars) for details. ([#939](https://github.com/simonw/datasette/issues/939)) - Those hooks now accept a new `columns` argument detailing the table columns that will be rendered on that page. ([#938](https://github.com/simonw/datasette/issues/938)) - Fixed bug where plugins calling `db.execute_write_fn()` could hang Datasette if the connection failed. ([#935](https://github.com/simonw/datasette/issues/935)) - Fixed bug with the `?_nl=on` output option and binary data. ([#914](https://github.com/simonw/datasette/issues/914)) | 107914493 | |
https://github.com/dogsheep/github-to-sqlite/releases/tag/2.5 | 29822005 | MDc6UmVsZWFzZTI5ODIyMDA1 | 2.5 | main | 2.5 | 0 | 9599 | 0 | 2020-08-18T15:05:50Z | 2020-08-18T15:08:20Z | - New `github-to-sqlite emojis` command for fetching emoji supported by GitHub. [Demo](https://github-to-sqlite.dogsheep.net/github/emojis). #47 - Added table of contents to README. - Switched to GitHub Actions for CI. - Switched default branch to `main` | 207052882 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.16 | 29999731 | MDc6UmVsZWFzZTI5OTk5NzMx | 2.16 | main | 2.16 | 0 | 9599 | 0 | 2020-08-21T21:02:29Z | 2020-08-21T21:05:51Z | - `--load-extension` option for `sqlite-utils query` for loading SQLite extensions. ([#134](https://github.com/simonw/sqlite-utils/issues/134)) - New `sqlite_utils.utils.find_spatialite()` function for finding SpatiaLite in common locations. ([#135](https://github.com/simonw/sqlite-utils/issues/135)) | 140912432 | |
https://github.com/dogsheep/github-to-sqlite/releases/tag/0.4 | 20031553 | MDc6UmVsZWFzZTIwMDMxNTUz | 0.4 | master | 0.4 | 0 | 9599 | 0 | 2019-09-17T00:18:37Z | 2019-09-17T00:19:42Z | * Added `github-to-sqlite repos` command, #3 | 207052882 | |
https://github.com/dogsheep/genome-to-sqlite/releases/tag/0.1 | 20114205 | MDc6UmVsZWFzZTIwMTE0MjA1 | 0.1 | master | 0.1 | 0 | 9599 | 0 | 2019-09-19T15:38:10Z | 2019-09-19T15:41:17Z | First release | 209590345 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.6 | 20497186 | MDc6UmVsZWFzZTIwNDk3MTg2 | 0.6 | master | 0.6 | 0 | 9599 | 0 | 2019-10-06T04:49:17Z | 2019-10-06T04:52:18Z | * New experimental `track` and `follow` commands for subscribing to the Twitter real-time API #11. [Documentation](https://github.com/dogsheep/twitter-to-sqlite#capturing-tweets-in-real-time-with-track-and-follow) for track and follow. * Documentation for `--sql` and `--attach`, refs #8 | 206156866 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.7 | 20504543 | MDc6UmVsZWFzZTIwNTA0NTQz | 0.7 | master | 0.7 | 0 | 9599 | 0 | 2019-10-07T00:32:08Z | 2019-10-07T00:33:28Z | * New `statuses-lookup` command for bulk fetching tweets by their IDs - #13 | 206156866 | |
https://github.com/dogsheep/pocket-to-sqlite/releases/tag/0.1 | 20506896 | MDc6UmVsZWFzZTIwNTA2ODk2 | 0.1 | master | 0.1 | 0 | 9599 | 0 | 2019-10-07T05:07:37Z | 2019-10-07T05:18:20Z | Initial release | 213286752 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.8 | 20631452 | MDc6UmVsZWFzZTIwNjMxNDUy | 0.8 | master | 0.8 | 0 | 9599 | 0 | 2019-10-11T06:45:21Z | 2019-10-11T06:46:52Z | * New `twitter-to-sqlite import twitter.db archive.zip` command for importing data from a Twitter export file. #4 - [documentation here](https://github.com/dogsheep/twitter-to-sqlite/blob/master/README.md#importing-data-from-your-twitter-archive). | 206156866 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.9 | 20646519 | MDc6UmVsZWFzZTIwNjQ2NTE5 | 0.9 | master | 0.9 | 0 | 9599 | 0 | 2019-10-11T16:55:10Z | 2019-10-11T16:57:25Z | * New `twitter-to-sqlite home-timeline` command, for retrieving your timeline of tweets from people you follow - #18 * `twitter-to-sqlite import` created tables now use the `archive_` prefix instead of `archive-`, for easier querying * Running `twitter-to-sqlite import` now deletes existing `archive_` tables and recreates them - #17 | 206156866 | |
https://github.com/dogsheep/github-to-sqlite/releases/tag/0.5 | 20663605 | MDc6UmVsZWFzZTIwNjYzNjA1 | 0.5 | master | 0.5 | 0 | 9599 | 0 | 2019-10-13T05:28:24Z | 2019-10-13T05:30:05Z | * New command: `github-to-sqlite issue-comments` for importing comments on issues - #7 * `github-to-sqlite issues` now accepts optional `--issue=1` argument * Fixed bug inserting users into already-created table with wrong columns - #6 | 207052882 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.10 | 20721291 | MDc6UmVsZWFzZTIwNzIxMjkx | 0.10 | master | 0.10 | 0 | 9599 | 0 | 2019-10-15T18:53:53Z | 2019-10-15T18:56:09Z | * favorites command now populates `favorited_by` table - #14 * favorites `--stop_after` option - #20 * Store unescaped `full_text` of Tweet - #21 | 206156866 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.11 | 20754277 | MDc6UmVsZWFzZTIwNzU0Mjc3 | 0.11 | master | 0.11 | 0 | 9599 | 0 | 2019-10-16T19:37:10Z | 2019-10-16T19:38:42Z | * Added `--since_id` and `--since` to `user-timeline` command, refs #20 * `--since` and `--since_id` options for `home-timeline`, closes #19 * `import` command now works on files and directories, closes #22 | 206156866 | |
https://github.com/dogsheep/swarm-to-sqlite/releases/tag/0.2 | 20755954 | MDc6UmVsZWFzZTIwNzU1OTU0 | 0.2 | master | 0.2 | 0 | 9599 | 0 | 2019-10-16T20:40:25Z | 2019-10-16T20:40:55Z | * Added --since option, closes #3 | 205429375 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.11.1 | 20758324 | MDc6UmVsZWFzZTIwNzU4MzI0 | 0.11.1 | master | 0.11.1 | 0 | 9599 | 0 | 2019-10-16T19:46:35Z | 2019-10-16T22:31:51Z | * Fix bugs running `home-timeline --since` from scratch. If tables were missing, script would throw an error. | 206156866 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.12 | 20783590 | MDc6UmVsZWFzZTIwNzgzNTkw | 0.12 | master | 0.12 | 0 | 9599 | 0 | 2019-10-17T17:57:33Z | 2019-10-17T18:00:28Z | * The `source` column for a tweet is now a foreign key to a new `sources` table - #12 * New migrations system to upgrade existing databases to handle the new `source` column extraction - #23 * Experimental implementation of new `twitter-to-sqlite search tweets.db search-term` command, which runs a search and saves the tweets from that search - #3 * Fixed bug where sometimes a user record for the authenticated user was not persisted to the `users` table | 206156866 | |
https://github.com/simonw/datasette/releases/tag/0.29.3 | 20795250 | MDc6UmVsZWFzZTIwNzk1MjUw | 0.29.3 | master | 0.29.3 | 0 | 9599 | 0 | 2019-09-03T00:40:53Z | 2019-10-18T05:24:54Z | https://datasette.readthedocs.io/en/stable/changelog.html#v0-29-3 | 107914493 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.13 | 21073645 | MDc6UmVsZWFzZTIxMDczNjQ1 | 0.13 | master | 0.13 | 0 | 9599 | 0 | 2019-10-30T02:20:09Z | 2019-10-30T02:22:30Z | - New `mentions-timeline` command (#26) | 206156866 | |
https://github.com/simonw/datasette/releases/tag/0.30 | 21098052 | MDc6UmVsZWFzZTIxMDk4MDUy | 0.30 | master | 0.30 | 0 | 9599 | 0 | 2019-10-19T01:08:04Z | 2019-10-30T18:51:30Z | https://datasette.readthedocs.io/en/stable/changelog.html#v0-30 | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.30.2 | 21169835 | MDc6UmVsZWFzZTIxMTY5ODM1 | 0.30.2 | master | 0.30.2 | 0 | 9599 | 0 | 2019-11-02T23:12:46Z | 2019-11-02T23:33:13Z | https://datasette.readthedocs.io/en/latest/changelog.html#v0-30-2 | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.30.1 | 21162064 | MDc6UmVsZWFzZTIxMTYyMDY0 | 0.30.1 | master | 0.30.1 | 0 | 9599 | 0 | 2019-10-30T19:00:21Z | 2019-11-02T00:06:02Z | https://datasette.readthedocs.io/en/stable/changelog.html#v0-30-1 | 107914493 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.14 | 21180989 | MDc6UmVsZWFzZTIxMTgwOTg5 | 0.14 | master | 0.14 | 0 | 9599 | 0 | 2019-11-04T05:32:37Z | 2019-11-04T05:33:56Z | * `search` command gained `--since_id` and `--since` options, for retrieving tweets since the last time the search was run * `search` command is [now documented](https://github.com/dogsheep/twitter-to-sqlite/blob/0.14/README.md#running-searches). Closes #3. | 206156866 | |
https://github.com/simonw/sqlite-utils/releases/tag/1.12 | 21276745 | MDc6UmVsZWFzZTIxMjc2NzQ1 | 1.12 | master | 1.12 | 0 | 9599 | 0 | 2019-11-04T16:28:52Z | 2019-11-07T05:00:24Z | https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-12 | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/1.12.1 | 21276749 | MDc6UmVsZWFzZTIxMjc2NzQ5 | 1.12.1 | master | 1.12.1 | 0 | 9599 | 0 | 2019-11-07T04:58:47Z | 2019-11-07T05:00:55Z | https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-12-1 | 140912432 | |
https://github.com/dogsheep/healthkit-to-sqlite/releases/tag/0.4 | 21306693 | MDc6UmVsZWFzZTIxMzA2Njkz | 0.4 | master | 0.4 | 0 | 9599 | 0 | 2019-11-08T01:19:23Z | 2019-11-08T01:19:51Z | * Fixed workout latitude/longitude points import for iOS 13 - #10 | 197882382 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.15 | 21342008 | MDc6UmVsZWFzZTIxMzQyMDA4 | 0.15 | master | 0.15 | 0 | 9599 | 0 | 2019-11-09T20:12:32Z | 2019-11-09T20:13:07Z | - Import command no longer fails on empty files - #29 - Fixed bug in `followers` command - #30 - `following` table now has indexes - #28 | 206156866 | |
https://github.com/dogsheep/github-to-sqlite/releases/tag/0.6 | 21354706 | MDc6UmVsZWFzZTIxMzU0NzA2 | 0.6 | master | 0.6 | 0 | 9599 | 0 | 2019-11-11T05:31:46Z | 2019-11-11T05:34:06Z | - New `releases` command for fetching releases for a repo, #11 - Repository topics are now fetched by the `repos` command - `github-to-sqlite repos` now accepts multiple usernames - Command now works without `--auth` file (using anonymous API calls), #9 | 207052882 | |
https://github.com/simonw/datasette/releases/tag/0.31 | 21426008 | MDc6UmVsZWFzZTIxNDI2MDA4 | 0.31 | master | Datasette 0.31 | 0 | 9599 | 0 | 2019-11-12T05:33:51Z | 2019-11-13T02:16:15Z | This version adds compatibility with Python 3.8 and breaks compatibility with Python 3.5. Full release notes: https://datasette.readthedocs.io/en/stable/changelog.html#v0-31 | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.31.1 | 21426299 | MDc6UmVsZWFzZTIxNDI2Mjk5 | 0.31.1 | master | 0.31.1 | 0 | 9599 | 0 | 2019-11-13T02:18:39Z | 2019-11-13T02:40:53Z | - Deployments created using `datasette publish` now use `python:3.8` base Docker image (#629) https://datasette.readthedocs.io/en/latest/changelog.html#v0-31-1 | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.31.2 | 21449006 | MDc6UmVsZWFzZTIxNDQ5MDA2 | 0.31.2 | master | 0.31.2 | 0 | 9599 | 0 | 2019-11-13T16:48:36Z | 2019-11-13T17:38:59Z | - Fixed a bug where datasette publish heroku applications failed to start (#633) - Fix for datasette publish with just --source_url - thanks, Stanley Zheng (#572) - Deployments to Heroku now use Python 3.8.0 (#632) https://datasette.readthedocs.io/en/latest/changelog.html#v0-31-2 | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.32 | 21492068 | MDc6UmVsZWFzZTIxNDkyMDY4 | 0.32 | master | Datasette 0.32 | 0 | 9599 | 0 | 2019-11-14T23:20:21Z | 2019-11-14T23:42:14Z | Datasette now renders templates using [Jinja async mode](https://jinja.palletsprojects.com/en/2.10.x/api/#async-support). This makes it easy for plugins to provide custom template functions that perform asynchronous actions, for example the new [datasette-template-sql](https://github.com/simonw/datasette-template-sql) plugin which allows custom templates to directly execute SQL queries and render their results. (#628) https://datasette.readthedocs.io/en/latest/changelog.html#v0-32 | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.33 | 22415542 | MDc6UmVsZWFzZTIyNDE1NTQy | 0.33 | master | Datasette 0.33 | 0 | 9599 | 0 | 2019-12-22T16:27:04Z | 2019-12-22T16:43:31Z | * `rowid` is now included in dropdown menus for filtering tables (#636) * Columns are now only suggested for faceting if they have at least one value with more than one record (#638) * Queries with no results now display “0 results” (#637) * Improved documentation for the `--static` option (#641) * asyncio task information is now included on the `/-/threads` debug page * Bumped Uvicorn dependency 0.11 * You can now use `--port 0` to listen on an available port * New `template_debug` setting for debugging templates, e.g. https://latest.datasette.io/fixtures/roadside_attractions?_context=1 (#654) https://datasette.readthedocs.io/en/latest/changelog.html#v0-33 | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.0 | 22509033 | MDc6UmVsZWFzZTIyNTA5MDMz | 2.0 | master | 2.0 | 0 | 9599 | 0 | 2019-12-30T06:18:58Z | 2019-12-30T06:26:09Z | This release changes the behaviour of `upsert`. It’s a breaking change, hence 2.0. The `upsert` command-line utility and the `.upsert()` and `.upsert_all()` Python API methods have had their behaviour altered. They used to completely replace the affected records: now, they update the specified values on existing records but leave other columns unaffected. See [Upserting data using the Python API](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-upsert) and [Upserting data using the CLI](https://sqlite-utils.readthedocs.io/en/stable/cli.html#upserting-data) for full details. If you want the old behaviour - where records were completely replaced - you can use `$ sqlite-utils insert ... --replace` on the command-line and `.insert(..., replace=True)` and `.insert_all(..., replace=True)` in the Python API. See [Insert-replacing data using the Python API](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-insert-replace) and [Insert-replacing data using the CLI](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-insert-replace) for more. For full background on this change, see issue #66. | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.0.1 | 22603380 | MDc6UmVsZWFzZTIyNjAzMzgw | 2.0.1 | master | 2.0.1 | 0 | 9599 | 0 | 2020-01-05T17:23:02Z | 2020-01-05T17:33:15Z | The `.upsert()` and `.upsert_all()` methods now raise a `sqlite_utils.db.PrimaryKeyRequired` exception if you call them without specifying the primary key column using `pk=` (#73). | 140912432 | |
https://github.com/simonw/datasette/releases/tag/0.34 | 23239304 | MDc6UmVsZWFzZTIzMjM5MzA0 | 0.34 | master | Datasette 0.34 | 0 | 9599 | 0 | 2020-01-30T00:09:01Z | 2020-01-30T00:29:21Z | - `_search=` queries are now correctly escaped using a new `escape_fts()` custom SQL function. This means you can now run searches for strings like `park.` without seeing errors. (#651) - Google Cloud Run is no longer in beta, so `datasette publish cloudrun` has been updated to work even if the user has not installed the `gcloud` beta components package. Thanks, Katie McLaughlin (#660) - `datasette package` now accepts a `--port` option for specifying which port the resulting Docker container should listen on. (#661) https://datasette.readthedocs.io/en/stable/changelog.html#v0-34 | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.1 | 23274412 | MDc6UmVsZWFzZTIzMjc0NDEy | 2.1 | master | 2.1 | 0 | 9599 | 0 | 2020-01-31T00:25:20Z | 2020-01-31T00:30:40Z | New feature: `conversions={...}` can be passed to the `.insert()` family of functions to specify SQL conversions that should be applied to values that are being inserted or updated. See [Converting column values using SQL functions](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-conversions). (#77). | 140912432 | |
https://github.com/simonw/datasette/releases/tag/0.35 | 23395622 | MDc6UmVsZWFzZTIzMzk1NjIy | 0.35 | master | Datasette 0.35 | 0 | 9599 | 0 | 2020-02-05T02:17:47Z | 2020-02-05T02:32:34Z | * Added five new plugins and one new conversion tool to the [The Datasette Ecosystem](https://datasette.readthedocs.io/en/latest/ecosystem.html#ecosystem). * The `Datasette` class has a new `render_template()` method which can be used by plugins to render templates using Datasette’s pre-configured [Jinja](https://jinja.palletsprojects.com/) templating library. * You can now execute SQL queries that start with a `-- comment` - thanks, Jay Graves (#653) https://datasette.readthedocs.io/en/latest/changelog.html#v0-35 | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.2 | 23471014 | MDc6UmVsZWFzZTIzNDcxMDE0 | 2.2 | master | 2.2 | 0 | 9599 | 0 | 2020-02-01T21:59:08Z | 2020-02-07T07:18:12Z | New feature: `sqlite_utils.suggest_column_types([records])` returns the suggested column types for a list of records. See [Suggesting column types](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-suggest-column-types). (#81). This replaces the undocumented `table.detect_column_types()` method. | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.2.1 | 23471112 | MDc6UmVsZWFzZTIzNDcxMTEy | 2.2.1 | master | 2.2.1 | 0 | 9599 | 0 | 2020-02-07T07:20:03Z | 2020-02-07T07:24:54Z | Fixed a bug where `.upsert(..., hash_id="pk")` threw an error (#84). | 140912432 | |
https://github.com/dogsheep/twitter-to-sqlite/releases/tag/0.16 | 23471420 | MDc6UmVsZWFzZTIzNDcxNDIw | 0.16 | master | 0.16 | 0 | 9599 | 0 | 2020-02-07T07:42:45Z | 2020-02-07T07:44:53Z | New `friends` command for importing accounts that a specific user follows. | 206156866 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.3 | 23508352 | MDc6UmVsZWFzZTIzNTA4MzUy | 2.3 | master | 2.3 | 0 | 9599 | 0 | 2020-02-08T23:56:16Z | 2020-02-08T23:59:20Z | `table.exists()` is now a method, not a property. This was not a documented part of the API before so I’m considering this a non-breaking change. (#83) | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/2.3.1 | 23556494 | MDc6UmVsZWFzZTIzNTU2NDk0 | 2.3.1 | master | 2.3.1 | 0 | 9599 | 0 | 2020-02-11T05:52:23Z | 2020-02-11T05:59:43Z | `table.create_index()` now works for columns that contain spaces. (#85) | 140912432 | |
https://github.com/simonw/datasette/releases/tag/0.36 | 23896184 | MDc6UmVsZWFzZTIzODk2MTg0 | 0.36 | master | Datasette 0.36 | 0 | 9599 | 0 | 2020-02-22T03:04:46Z | 2020-02-22T03:24:50Z | * The `datasette` object passed to plugins now has API documentation: [Datasette class](https://datasette.readthedocs.io/en/latest/datasette.html#datasette). (#576) * New methods on `datasette`: `.add_database()` and `.remove_database()` - [documentation](https://datasette.readthedocs.io/en/latest/datasette.html#datasette-add-database). (#671) * `prepare_connection()` plugin hook now takes optional `datasette` and `database` arguments - [prepare_connection(conn, database, datasette)](https://datasette.readthedocs.io/en/latest/plugins.html#plugin-hook-prepare-connection). (#678) * Added three new plugins and one new conversion tool to the [The Datasette Ecosystem](https://datasette.readthedocs.io/en/latest/ecosystem.html#ecosystem). https://datasette.readthedocs.io/en/latest/changelog.html#v0-36 | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.37 | 23986460 | MDc6UmVsZWFzZTIzOTg2NDYw | 0.37 | master | Datasette 0.37 | 0 | 9599 | 0 | 2020-02-26T01:22:02Z | 2020-02-26T03:44:07Z | * Plugins now have a supported mechanism for writing to a database, using the new `.execute_write()` and `.execute_write_fn()` methods. [Documentation](https://datasette.readthedocs.io/en/stable/internals.html#database-execute-write). (#682) * Immutable databases that have had their rows counted using the `inspect` command now use the calculated count more effectively - thanks, Kevin Keogh. (#666) * `--reload` no longer restarts the server if a database file is modified, unless that database was opened immutable mode with `-i`. (#494) * New `?_searchmode=raw` option turns off escaping for FTS queries in `?_search=` allowing full use of SQLite’s [FTS5 query syntax](https://www.sqlite.org/fts5.html#full_text_query_syntax). (#676) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.52 | 34539374 | MDc6UmVsZWFzZTM0NTM5Mzc0 | 0.52 | main | 0.52 | 0 | 9599 | 0 | 2020-11-28T23:54:35Z | 2020-11-28T23:57:12Z | This release includes a number of changes relating to an internal rebranding effort: Datasette's **configuration** mechanism (things like `datasette --config default_page_size:10`) has been renamed to **settings**. - New `--setting default_page_size 10` option as a replacement for `--config default_page_size:10` (note the lack of a colon). The `--config` option is deprecated but will continue working until Datasette 1.0. ([#992](https://github.com/simonw/datasette/issues/992)) - The `/-/config` introspection page is now `/-/settings`, and the previous page redirects to the new one. ([#1103](https://github.com/simonw/datasette/issues/1103)) - The `config.json` file in [Configuration directory mode](https://docs.datasette.io/en/stable/settings.html#config-dir) is now called `settings.json`. ([#1104](https://github.com/simonw/datasette/issues/1104)) - The undocumented `datasette.config()` internal method has been replaced by a documented [.setting(key)](https://docs.datasette.io/en/stable/internals.html#datasette-setting) method. ([#1107](https://github.com/simonw/datasette/issues/1107)) Also in this release: - New plugin hook: [database_actions(datasette, actor, database)](https://docs.datasette.io/en/stable/plugin_hooks.html#plugin-hook-database-actions), which adds menu items to a new cog menu shown at the top of the database page. ([#1077](https://github.com/simonw/datasette/issues/1077)) - `datasette publish cloudrun` has a new `--apt-get-install` option that can be used to install additional Ubuntu packages as part of the deployment. This is useful for deploying the new [datasette-ripgrep plugin](https://github.com/simonw/datasette-ripgrep). ([#1110](https://github.com/simonw/datasette/issues/1110)) - Swept the documentation to remove words that minimize involved difficulty. ([#1089](https://github.com/simonw/datasette/issues/1089)) And some bug fixes: - Foreign keys linking to rows with blank label columns now display as a hyphen, allowing those links to be clicked. ([#1086… | 107914493 | |
https://github.com/dogsheep/github-to-sqlite/releases/tag/2.8 | 34556308 | MDc6UmVsZWFzZTM0NTU2MzA4 | 2.8 | main | 2.8 | 0 | 9599 | 0 | 2020-11-30T01:40:37Z | 2020-11-30T01:41:38Z | - New command: `github-to-sqlite workflows`, for fetching the YAML configuration used by [GitHub Actions](https://github.com/features/actions) workflows and using it to populate new `workflows`, `jobs` and `steps` tables. #54 - New command: `github-to-sqlite pull-requests` - thanks, @adamjonas! #48 - `github-to-sqlite issues --issue` option can now be used multiple times. | 207052882 | |
https://github.com/dogsheep/github-to-sqlite/releases/tag/2.8.1 | 34558928 | MDc6UmVsZWFzZTM0NTU4OTI4 | 2.8.1 | main | 2.8.1 | 0 | 9599 | 0 | 2020-11-30T04:16:41Z | 2020-11-30T04:18:21Z | - README now links to example database tables for each command. #56 - Added documentation for `github-to-sqlite releases`. | 207052882 | |
https://github.com/simonw/datasette/releases/tag/0.52.1 | 34551688 | MDc6UmVsZWFzZTM0NTUxNjg4 | 0.52.1 | main | 0.52.1 | 0 | 9599 | 0 | 2020-11-29T19:38:29Z | 2020-11-29T19:39:52Z | - Documentation on [Testing plugins](https://docs.datasette.io/en/stable/testing_plugins.html#testing-plugins) now recommends using [datasette.client](https://docs.datasette.io/en/stable/internals.html#internals-datasette-client). ([#1102](https://github.com/simonw/datasette/issues/1102)) - Fix bug where compound foreign keys produced broken links. ([#1098](https://github.com/simonw/datasette/issues/1098)) - `datasette --load-module=spatialite` now also checks for `/usr/local/lib/mod_spatialite.so`. Thanks, Dan Peterson. ([#1114](https://github.com/simonw/datasette/issues/1114)) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.52.2 | 34725716 | MDc6UmVsZWFzZTM0NzI1NzE2 | 0.52.2 | main | 0.52.2 | 0 | 9599 | 0 | 2020-12-03T00:57:40Z | 2020-12-03T00:58:43Z | - Generated columns from SQLite 3.31.0 or higher are now correctly displayed. ([#1116](https://github.com/simonw/datasette/issues/1116)) - Error message if you attempt to open a SpatiaLite database now suggests using `--load-extension=spatialite` if it detects that the extension is available in a common location. ([#1115](https://github.com/simonw/datasette/issues/1115)) - `OPTIONS` requests against the `/database` page no longer raise a 500 error. ([#1100](https://github.com/simonw/datasette/issues/1100)) - Databases larger than 32MB that are published to Cloud Run can now be downloaded. ([#749](https://github.com/simonw/datasette/issues/749)) - Fix for misaligned cog icon on table and database pages. Thanks, Abdussamet Koçak. ([#1121](https://github.com/simonw/datasette/issues/1121)) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.52.3 | 34782337 | MDc6UmVsZWFzZTM0NzgyMzM3 | 0.52.3 | main | 0.52.3 | 0 | 9599 | 0 | 2020-12-03T19:07:05Z | 2020-12-03T19:08:29Z | - Fixed bug where static assets would 404 for Datasette installed on ARM Amazon Linux. ([#1124](https://github.com/simonw/datasette/issues/1124>)) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.52.4 | 34882011 | MDc6UmVsZWFzZTM0ODgyMDEx | 0.52.4 | main | 0.52.4 | 0 | 9599 | 0 | 2020-12-05T19:42:42Z | 2020-12-05T19:42:57Z | - Show [pysqlite3](https://github.com/coleifer/pysqlite3) version on `/-/versions`, if installed. ([#1125](https://github.com/simonw/datasette/issues/1125)) - Errors output by Datasette (e.g. for invalid SQL queries) now go to `stderr`, not `stdout`. ([#1131](https://github.com/simonw/datasette/issues/1131)) - Fix for a startup error on windows caused by unnecessary `from os import EX_CANTCREAT` - thanks, Abdussamet Koçak. ([#1094](https://github.com/simonw/datasette/issues/1094)) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.52.5 | 35063580 | MDc6UmVsZWFzZTM1MDYzNTgw | 0.52.5 | 0.52.x | 0.52.5 | 0 | 9599 | 0 | 2020-12-09T20:03:44Z | 2020-12-09T20:10:23Z | - Fix for error caused by combining the `_searchmode=raw` and `?_search_COLUMN` parameters. ([#1134](https://github.com/simonw/datasette/issues/1134)) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.53 | 35131848 | MDc6UmVsZWFzZTM1MTMxODQ4 | 0.53 | main | 0.53 | 0 | 9599 | 0 | 2020-12-11T01:44:36Z | 2020-12-11T01:46:44Z | Datasette has an official project website now, at <https://datasette.io/>. This release mainly updates the documentation to reflect the new site. - New `?column__arraynotcontains=` table filter. ([#1132](https://github.com/simonw/datasette/issues/1132)) - `datasette serve` has a new `--create` option, which will create blank database files if they do not already exist rather than exiting with an error. ([#1135](https://github.com/simonw/datasette/issues/1135)) - New `?_header=off` option for CSV export which omits the CSV header row, [documented here](https://docs.datasette.io/en/stable/csv_export.html#csv-export-url-parameters). ([#1133](https://github.com/simonw/datasette/issues/1133)) - "Powered by Datasette" link in the footer now links to <https://datasette.io/>. ([#1138](https://github.com/simonw/datasette/issues/1138)) - Project news no longer lives in the README - it can now be found at <https://datasette.io/news>. ([#1137](https://github.com/simonw/datasette/issues/1137)) | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/3.1 | 35200016 | MDc6UmVsZWFzZTM1MjAwMDE2 | 3.1 | main | 3.1 | 0 | 9599 | 0 | 2020-12-13T07:30:59Z | 2020-12-13T07:31:40Z | - New command: `sqlite-utils analyze-tables my.db` outputs useful information about the table columns in the database, such as the number of distinct values and how many rows are null. See [Analyzing tables](https://sqlite-utils.readthedocs.io/en/stable/cli.html#cli-analyze-tables) for documentation. ([#207](https://github.com/simonw/sqlite-utils/issues/207)) - New `table.analyze_column(column)` Python method used by the `analyze-tables` command - see [Analyzing a column](https://sqlite-utils.readthedocs.io/en/stable/python-api.html#python-api-analyze-column). - The `table.update()` method now correctly handles values that should be stored as JSON. Thanks, Andreas Madsack. ([#204](https://github.com/simonw/sqlite-utils/pull/204)) | 140912432 | |
https://github.com/dogsheep/github-to-sqlite/releases/tag/2.8.2 | 35374715 | MDc6UmVsZWFzZTM1Mzc0NzE1 | 2.8.2 | main | 2.8.2 | 0 | 9599 | 0 | 2020-12-16T19:20:36Z | 2020-12-16T19:21:58Z | - `--readme` now stores `null` if the README file does not exist, rather than throwing an error. #57 - README HTML is rewritten to fix broken internal links, e.g. for a table of contents. #58 | 207052882 | |
https://github.com/dogsheep/dogsheep-beta/releases/tag/0.10 | 35382391 | MDc6UmVsZWFzZTM1MzgyMzkx | 0.10 | main | 0.10 | 0 | 9599 | 0 | 2020-12-16T21:27:04Z | 2020-12-16T21:28:13Z | - Now depends on [sqlite-utils](https://github.com/simonw/sqlite-utils) >= 3.0. #30 - The user's original search term is now passed to the `display_sql` SQL query as the `:q` parameter. #29 | 197431109 | |
https://github.com/dogsheep/dogsheep-beta/releases/tag/0.10.1 | 35520026 | MDc6UmVsZWFzZTM1NTIwMDI2 | 0.10.1 | main | 0.10.1 | 0 | 9599 | 0 | 2020-12-19T06:18:01Z | 2020-12-19T06:19:13Z | - Fix for error if search query contains hyphens such as `github-to-sqlite`. #31 | 197431109 | |
https://github.com/simonw/sqlite-utils/releases/tag/3.1.1 | 35902315 | MDc6UmVsZWFzZTM1OTAyMzE1 | 3.1.1 | main | 3.1.1 | 0 | 9599 | 0 | 2021-01-01T23:56:20Z | 2021-01-01T23:57:07Z | - Fixed failing test caused by `optimize` sometimes creating larger database files. ([#209](https://github.com/simonw/sqlite-utils/issues/209)) - Documentation now lives on <https://sqlite-utils.datasette.io/> - README now includes `brew install sqlite-utils` installation method. | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/3.2 | 35930040 | MDc6UmVsZWFzZTM1OTMwMDQw | 3.2 | main | 3.2 | 0 | 9599 | 0 | 2021-01-03T21:15:26Z | 2021-01-03T21:17:37Z | This release introduces a new mechanism for speeding up `count(*)` queries using cached table counts, stored in a `_counts` table and updated by triggers. This mechanism is described in [Cached table counts using triggers](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-cached-table-counts), and can be enabled using Python API methods or the new `enable-counts` CLI command. ([#212](https://github.com/simonw/sqlite-utils/issues/212)) - `table.enable_counts()` method for enabling these triggers on a specific table. - `db.enable_counts()` method for enabling triggers on every table in the database. ([#213](https://github.com/simonw/sqlite-utils/issues/213)) - New `sqlite-utils enable-counts my.db` command for enabling counts on all or specific tables, see [Enabling cached counts](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-enable-counts). ([#214](https://github.com/simonw/sqlite-utils/issues/214)) - New `sqlite-utils triggers` command for listing the triggers defined for a database or specific tables, see [Listing triggers](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-triggers). ([#218](https://github.com/simonw/sqlite-utils/issues/218)) - New `db.use_counts_table` property which, if `True`, causes `table.count` to read from the `_counts` table. ([#215](https://github.com/simonw/sqlite-utils/issues/215)) - `table.has_counts_triggers` property revealing if a table has been configured with the new `_counts` database triggers. - `db.reset_counts()` method and `sqlite-utils reset-counts` command for resetting the values in the `_counts` table. ([#219](https://github.com/simonw/sqlite-utils/issues/219)) - The previously undocumented `db.escape()` method has been renamed to `db.quote()` and is now covered by the documentation: [Quoting strings for use in SQL](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-quote). ([#217](https://github.com/simonw/sqlite-utils/issues/217)) - New `table.triggers_dict` and `db.triggers_dict` introspection prop… | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/3.2.1 | 36307444 | MDc6UmVsZWFzZTM2MzA3NDQ0 | 3.2.1 | main | 3.2.1 | 0 | 9599 | 0 | 2021-01-12T23:22:53Z | 2021-01-12T23:23:25Z | - Fixed a bug where `.add_missing_columns()` failed to take case insensitive column names into account. ([#221](https://github.com/simonw/sqlite-utils/issues/221)) | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/3.3 | 36530216 | MDc6UmVsZWFzZTM2NTMwMjE2 | 3.3 | main | 3.3 | 0 | 9599 | 0 | 2021-01-18T04:28:24Z | 2021-01-18T04:29:48Z | - The `table.m2m()` method now accepts an optional `alter=True` argument to specify that any missing columns should be added to the referenced table. See [Working with many-to-many relationships](https://sqlite-utils.datasette.io/en/stable/python-api.html#python-api-m2m). ([#222](https://github.com/simonw/sqlite-utils/issues/222)) | 140912432 | |
https://github.com/dogsheep/swarm-to-sqlite/releases/tag/0.3.3 | 36530359 | MDc6UmVsZWFzZTM2NTMwMzU5 | 0.3.3 | main | 0.3.3 | 0 | 9599 | 0 | 2021-01-18T04:34:56Z | 2021-01-18T04:36:03Z | - Fixed bug where tool could crash with an error about missing columns. #11 | 205429375 | |
https://github.com/simonw/datasette/releases/tag/0.54a0 | 36623336 | MDc6UmVsZWFzZTM2NjIzMzM2 | 0.54a0 | main | 0.54a0 | 0 | 9599 | 1 | 2021-01-19T20:50:12Z | 2021-01-19T20:51:13Z | **Alpha release**. Release notes in progress. - Improved support for named in-memory databases. ([#1151](https://github.com/simonw/datasette/issues/1151)) - New `_internal` in-memory database tracking attached databases, tables and columns. ([#1150](https://github.com/simonw/datasette/issues/1150)) - Support for JavaScript modules. ([#1186](https://github.com/simonw/datasette/issues/1186), [#1187](https://github.com/simonw/datasette/issues/1187)) | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.54 | 36871901 | MDc6UmVsZWFzZTM2ODcxOTAx | 0.54 | main | 0.54 | 0 | 9599 | 0 | 2021-01-25T17:35:06Z | 2021-01-25T17:36:30Z | The two big new features in this release are the `_internal` SQLite in-memory database storing details of all connected databases and tables, and support for JavaScript modules in plugins and additional scripts. For additional commentary on this release, see [Datasette 0.54, the annotated release notes](https://simonwillison.net/2021/Jan/25/datasette/). ### The _internal database As part of ongoing work to help Datasette handle much larger numbers of connected databases and tables (see [Datasette Library](https://github.com/simonw/datasette/issues/417)) Datasette now maintains an in-memory SQLite database with details of all of the attached databases, tables, columns, indexes and foreign keys. ([#1150](https://github.com/simonw/datasette/issues/1150)) This will support future improvements such as a searchable, paginated homepage of all available tables. You can explore an example of this database by [signing in as root](https://latest.datasette.io/login-as-root) to the `latest.datasette.io` demo instance and then navigating to [latest.datasette.io/_internal](https://latest.datasette.io/_internal). Plugins can use these tables to introspect attached data in an efficient way. Plugin authors should note that this is not yet considered a stable interface, so any plugins that use this may need to make changes prior to Datasette 1.0 if the `_internal` table schemas change. ### Named in-memory database support As part of the work building the `_internal` database, Datasette now supports named in-memory databases that can be shared across multiple connections. This allows plugins to create in-memory databases which will persist data for the lifetime of the Datasette server process. ([#1151](https://github.com/simonw/datasette/issues/1151)) The new `memory_name=` parameter to the [Database class](https://docs.datasette.io/en/stable/internals.html#internals-database) can be used to create named, shared in-memory databases. ### JavaScript modules [JavaScript modules](https://developer.mozill… | 107914493 | |
https://github.com/simonw/datasette/releases/tag/0.54.1 | 37262719 | MDc6UmVsZWFzZTM3MjYyNzE5 | 0.54.1 | 0.54.x | 0.54.1 | 0 | 9599 | 0 | 2021-02-02T21:23:39Z | 2021-02-02T21:30:12Z | - Fixed a bug where `?_search=` and `?_sort=` parameters were incorrectly duplicated when the filter form on the table page was re-submitted. ([#1214](https://github.com/simonw/datasette/issues/1214)) | 107914493 | |
https://github.com/simonw/sqlite-utils/releases/tag/3.4 | 37437744 | MDc6UmVsZWFzZTM3NDM3NzQ0 | 3.4 | main | 3.4 | 0 | 9599 | 0 | 2021-02-06T01:37:27Z | 2021-02-06T01:38:26Z | - `sqlite-utils insert --csv` now accepts optional `--delimiter` and `--quotechar` options. See [Alternative delimiters and quote characters](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-csv-tsv-delimiter). ([#223](https://github.com/simonw/sqlite-utils/issues/223)) | 140912432 | |
https://github.com/simonw/sqlite-utils/releases/tag/3.4.1 | 37438817 | MDc6UmVsZWFzZTM3NDM4ODE3 | 3.4.1 | main | 3.4.1 | 0 | 9599 | 0 | 2021-02-06T02:10:04Z | 2021-02-06T02:11:15Z | - Fixed a code import bug that slipped in to 3.4. ([#226](https://github.com/simonw/sqlite-utils/issues/226)) | 140912432 | |
https://github.com/dogsheep/evernote-to-sqlite/releases/tag/0.3 | 37946829 | MDc6UmVsZWFzZTM3OTQ2ODI5 | 0.3 | main | 0.3 | 0 | 9599 | 0 | 2021-02-11T22:14:01Z | 2021-02-11T22:16:20Z | - Correctly handle entities in XHTML notes. [#9](https://github.com/dogsheep/evernote-to-sqlite/issues/9) - Fixed a bug importing ENEX files on Windows. Thanks, [dskrad](https://github.com/dskrad). [#11](https://github.com/dogsheep/evernote-to-sqlite/issues/11) | 303218369 | |
https://github.com/dogsheep/evernote-to-sqlite/releases/tag/0.3.1 | 37947725 | MDc6UmVsZWFzZTM3OTQ3NzI1 | 0.3.1 | main | 0.3.1 | 0 | 9599 | 0 | 2021-02-11T22:38:21Z | 2021-02-11T22:40:40Z | - Explicitly open file using utf-8 encoding - thanks, RiverZhou. [#10](https://github.com/dogsheep/evernote-to-sqlite/pull/10) - Fix import error if note has no "updated" element - thanks, Matej Korosec. [#8](https://github.com/dogsheep/evernote-to-sqlite/pull/8) | 303218369 |