rowid,repo,release,date,body_markdown,published_at,topics 107914493,https://github.com/simonw/datasette,https://github.com/simonw/datasette/releases/tag/0.55,2021-02-19,"Support for cross-database SQL queries and built-in support for serving via HTTPS. - The new `--crossdb` command-line option causes Datasette to attach up to ten database files to the same `/_memory` database connection. This enables cross-database SQL queries, including the ability to use joins and unions to combine data from tables that exist in different database files. See [Cross-database queries](https://docs.datasette.io/en/stable/sql_queries.html#cross-database-queries) for details. ([#283](https://github.com/simonw/datasette/issues/283)) - `--ssl-keyfile` and `--ssl-certfile` options can be used to specify a TLS certificate, allowing Datasette to serve traffic over `https://` without needing to run it behind a separate proxy. ([#1221](https://github.com/simonw/datasette/issues/1221)) - The `/:memory:` page has been renamed (and redirected) to `/_memory` for consistency with the new `/_internal` database introduced in Datasette 0.54. ([#1205](https://github.com/simonw/datasette/issues/1205)) - Added plugin testing documentation on [Using pdb for errors thrown inside Datasette](https://docs.datasette.io/en/stable//testing_plugins.html#testing-plugins-pdb). ([#1207](https://github.com/simonw/datasette/issues/1207)) - The [official Datasette Docker image](https://hub.docker.com/r/datasetteproject/datasette) now uses Python 3.7.10, applying [the latest security fix](https://www.python.org/downloads/release/python-3710/) for that Python version. ([#1235](https://github.com/simonw/datasette/issues/1235))",2021-02-19T02:02:29Z,"[""asgi"", ""automatic-api"", ""csv"", ""datasets"", ""datasette"", ""datasette-io"", ""docker"", ""json"", ""python"", ""sql"", ""sqlite""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.5,2021-02-14,"- `sqlite-utils insert --sniff` option for detecting the delimiter and quote character used by a CSV file, see [Alternative delimiters and quote characters](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-csv-tsv-delimiter). ([#230](https://github.com/simonw/sqlite-utils/issues/230)) - The `table.rows_where()`, `table.search()` and `table.search_sql()` methods all now take optional `offset=` and `limit=` arguments. ([#231](https://github.com/simonw/sqlite-utils/issues/231)) - New `--no-headers` option for `sqlite-utils insert --csv` to handle CSV files that are missing the header row, see [CSV files without a header row](https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-csv-tsv-no-header). ([#228](https://github.com/simonw/sqlite-utils/issues/228)) - Fixed bug where inserting data with extra columns in subsequent chunks would throw an error. Thanks [@nieuwenhoven](https://github.com/nieuwenhoven) for the fix. ([#234](https://github.com/simonw/sqlite-utils/issues/234)) - Fixed bug importing CSV files with columns containing more than 128KB of data. ([#229](https://github.com/simonw/sqlite-utils/issues/229)) - Test suite now runs in CI against Ubuntu, macOS and Windows. Thanks [@nieuwenhoven](https://github.com/nieuwenhoven) for the Windows test fixes. ([#232](https://github.com/simonw/sqlite-utils/issues/232))",2021-02-14T22:44:21Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 303218369,https://github.com/dogsheep/evernote-to-sqlite,https://github.com/dogsheep/evernote-to-sqlite/releases/tag/0.3.1,2021-02-11,"- 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) ",2021-02-11T22:40:40Z,"[""datasette-io"", ""datasette-tool"", ""dogsheep"", ""evernote"", ""sqlite""]" 303218369,https://github.com/dogsheep/evernote-to-sqlite,https://github.com/dogsheep/evernote-to-sqlite/releases/tag/0.3,2021-02-11,"- 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) ",2021-02-11T22:16:20Z,"[""datasette-io"", ""datasette-tool"", ""dogsheep"", ""evernote"", ""sqlite""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.4.1,2021-02-06,- Fixed a code import bug that slipped in to 3.4. ([#226](https://github.com/simonw/sqlite-utils/issues/226)),2021-02-06T02:11:15Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 140912432,https://github.com/simonw/sqlite-utils,https://github.com/simonw/sqlite-utils/releases/tag/3.4,2021-02-06,- `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)),2021-02-06T01:38:26Z,"[""cli"", ""click"", ""datasette"", ""datasette-io"", ""datasette-tool"", ""python"", ""sqlite"", ""sqlite-database""]" 107914493,https://github.com/simonw/datasette,https://github.com/simonw/datasette/releases/tag/0.54.1,2021-02-02,- 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)),2021-02-02T21:30:12Z,"[""asgi"", ""automatic-api"", ""csv"", ""datasets"", ""datasette"", ""datasette-io"", ""docker"", ""json"", ""python"", ""sql"", ""sqlite""]" 107914493,https://github.com/simonw/datasette,https://github.com/simonw/datasette/releases/tag/0.54,2021-01-25,"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.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules) were introduced in ECMAScript 2015 and provide native browser support for the `import` and `export` keywords. To use modules, JavaScript needs to be included in `