{"html_url": "https://github.com/simonw/datasette/releases/tag/0.61.1", "id": 62620866, "node_id": "RE_kwDOBm6k_c4Du4TC", "tag_name": "0.61.1", "target_commitish": "main", "name": "0.61.1", "draft": 0, "author": {"value": 9599, "label": "simonw"}, "prerelease": 0, "created_at": "2022-03-23T18:54:10Z", "published_at": "2022-03-23T20:31:09Z", "body": "- Fixed a bug where databases with a different route from their name (as used by the [datasette-hashed-urls plugin](https://datasette.io/plugins/datasette-hashed-urls)) returned errors when executing custom SQL queries. ([#1682](https://github.com/simonw/datasette/issues/1682))", "repo": {"value": 107914493, "label": "datasette"}, "reactions": null} {"html_url": "https://github.com/simonw/datasette/releases/tag/0.61", "id": 62608891, "node_id": "RE_kwDOBm6k_c4Du1X7", "tag_name": "0.61", "target_commitish": "main", "name": "0.61", "draft": 0, "author": {"value": 9599, "label": "simonw"}, "prerelease": 0, "created_at": "2022-03-23T18:12:26Z", "published_at": "2022-03-23T18:14:36Z", "body": "In preparation for Datasette 1.0, this release includes two potentially backwards-incompatible changes. Hashed URL mode has been moved to a separate plugin, and the way Datasette generates URLs to databases and tables with special characters in their name such as `/` and `.` has changed.\r\n\r\nDatasette also now requires Python 3.7 or higher.\r\n\r\nSee also the [annotated release notes](https://simonwillison.net/2022/Mar/24/datasette-061/).\r\n\r\n- URLs within Datasette now use a different encoding scheme for tables or databases that include \"special\" characters outside of the range of `a-zA-Z0-9_-`. This scheme is explained here: [Tilde encoding](https://docs.datasette.io/en/stable/internals.html#internals-tilde-encoding). ([#1657](https://github.com/simonw/datasette/issues/1657))\r\n- Removed hashed URL mode from Datasette. The new `datasette-hashed-urls` plugin can be used to achieve the same result, see [datasette-hashed-urls](https://docs.datasette.io/en/stable/performance.html#performance-hashed-urls) for details. ([#1661](https://github.com/simonw/datasette/issues/1661))\r\n- Databases can now have a custom path within the Datasette instance that is independent of the database name, using the `db.route` property. ([#1668](https://github.com/simonw/datasette/issues/1668))\r\n- Datasette is now covered by a [Code of Conduct](https://github.com/simonw/datasette/blob/main/CODE_OF_CONDUCT.md). ([#1654](https://github.com/simonw/datasette/issues/1654))\r\n- Python 3.6 is no longer supported. ([#1577](https://github.com/simonw/datasette/issues/1577))\r\n- Tests now run against Python 3.11-dev. ([#1621](https://github.com/simonw/datasette/issues/1621))\r\n- New [datasette.ensure_permissions(actor, permissions)](https://docs.datasette.io/en/stable/internals.html#datasette-ensure-permissions) internal method for checking multiple permissions at once. ([#1675](https://github.com/simonw/datasette/issues/1675))\r\n- New [datasette.check_visibility(actor, action, resource=None)](https://docs.datasette.io/en/stable/internals.html#datasette-check-visibilty) internal method for checking if a user can see a resource that would otherwise be invisible to unauthenticated users. ([#1678](https://github.com/simonw/datasette/issues/1678))\r\n- Table and row HTML pages now include a `` element and return a `Link: URL; rel=\"alternate\"; type=\"application/json+datasette\"` HTTP header pointing to the JSON version of those pages. ([#1533](https://github.com/simonw/datasette/issues/1533))\r\n- `Access-Control-Expose-Headers: Link` is now added to the CORS headers, allowing remote JavaScript to access that header.\r\n- Canned queries are now shown at the top of the database page, directly below the SQL editor. Previously they were shown at the bottom, below the list of tables. ([#1612](https://github.com/simonw/datasette/issues/1612))\r\n- Datasette now has a default favicon. ([#1603](https://github.com/simonw/datasette/issues/1603))\r\n- `sqlite_stat` tables are now hidden by default. ([#1587](https://github.com/simonw/datasette/issues/1587))\r\n- SpatiaLite tables `data_licenses`, `KNN` and `KNN2` are now hidden by default. ([#1601](https://github.com/simonw/datasette/issues/1601))\r\n- SQL query tracing mechanism now works for queries executed in `asyncio` sub-tasks, such as those created by `asyncio.gather()`. ([#1576](https://github.com/simonw/datasette/issues/1576))\r\n- [datasette.tracer](https://docs.datasette.io/en/stable/internals.html#internals-tracer) mechanism is now documented.\r\n- Common Datasette symbols can now be imported directly from the top-level `datasette` package, see [Import shortcuts](https://docs.datasette.io/en/stable/internals.html#internals-shortcuts). Those symbols are `Response`, `Forbidden`, `NotFound`, `hookimpl`, `actor_matches_allow`. ([#957](https://github.com/simonw/datasette/issues/957))\r\n- `/-/versions` page now returns additional details for libraries used by SpatiaLite. ([#1607](https://github.com/simonw/datasette/issues/1607))\r\n- Documentation now links to the [Datasette Tutorials](https://datasette.io/tutorials).\r\n- Datasette will now also look for SpatiaLite in `/opt/homebrew` - thanks, Dan Peterson. ([#1649](https://github.com/simonw/datasette/pull/1649))\r\n- Fixed bug where [custom pages](https://docs.datasette.io/en/stable/custom_templates.html#custom-pages) did not work on Windows. Thanks, Robert Christie. ([#1545](https://github.com/simonw/datasette/issues/1545))\r\n- Fixed error caused when a table had a column named `n`. ([#1228](https://github.com/simonw/datasette/issues/1228))", "repo": {"value": 107914493, "label": "datasette"}, "reactions": null}