{"database": "docs", "table": "sections", "rows": [["changelog:id22", "changelog", "id22", "0.61 (2022-03-23)", "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. \n             Datasette also now requires Python 3.7 or higher. \n             \n                 \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 . ( #1657 ) \n                 \n                 \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  for details. ( #1661 ) \n                 \n                 \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 ) \n                 \n                 \n                     Datasette is now covered by a  Code of Conduct . ( #1654 ) \n                 \n                 \n                     Python 3.6 is no longer supported. ( #1577 ) \n                 \n                 \n                     Tests now run against Python 3.11-dev. ( #1621 ) \n                 \n                 \n                     New  datasette.ensure_permissions(actor, permissions)  internal method for checking multiple permissions at once. ( #1675 ) \n                 \n                 \n                     New  datasette.check_visibility(actor, action, resource=None)  internal method for checking if a user can see a resource that would otherwise be invisible to unauthenticated users. ( #1678 ) \n                 \n                 \n                     Table and row HTML pages now include a  <link rel=\"alternate\" type=\"application/json+datasette\" href=\"...\">  element and return a  Link: URL; rel=\"alternate\"; type=\"application/json+datasette\"  HTTP header pointing to the JSON version of those pages. ( #1533 ) \n                 \n                 \n                     Access-Control-Expose-Headers: Link  is now added to the CORS headers, allowing remote JavaScript to access that header. \n                 \n                 \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 ) \n                 \n                 \n                     Datasette now has a default favicon. ( #1603 ) \n                 \n                 \n                     sqlite_stat  tables are now hidden by default. ( #1587 ) \n                 \n                 \n                     SpatiaLite tables  data_licenses ,  KNN  and  KNN2  are now hidden by default. ( #1601 ) \n                 \n                 \n                     SQL query tracing mechanism now works for queries executed in  asyncio  sub-tasks, such as those created by  asyncio.gather() . ( #1576 ) \n                 \n                 \n                     datasette.tracer  mechanism is now documented. \n                 \n                 \n                     Common Datasette symbols can now be imported directly from the top-level  datasette  package, see  Import shortcuts . Those symbols are  Response ,  Forbidden ,  NotFound ,  hookimpl ,  actor_matches_allow . ( #957 ) \n                 \n                 \n                     /-/versions  page now returns additional details for libraries used by SpatiaLite. ( #1607 ) \n                 \n                 \n                     Documentation now links to the  Datasette Tutorials . \n                 \n                 \n                     Datasette will now also look for SpatiaLite in  /opt/homebrew  - thanks, Dan Peterson. ( #1649 ) \n                 \n                 \n                     Fixed bug where  custom pages  did not work on Windows. Thanks, Robert Christie. ( #1545 ) \n                 \n                 \n                     Fixed error caused when a table had a column named  n . ( #1228 )", "[\"Changelog\"]", "[{\"href\": \"https://github.com/simonw/datasette/issues/1657\", \"label\": \"#1657\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1661\", \"label\": \"#1661\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1668\", \"label\": \"#1668\"}, {\"href\": \"https://github.com/simonw/datasette/blob/main/CODE_OF_CONDUCT.md\", \"label\": \"Code of Conduct\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1654\", \"label\": \"#1654\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1577\", \"label\": \"#1577\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1621\", \"label\": \"#1621\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1675\", \"label\": \"#1675\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1678\", \"label\": \"#1678\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1533\", \"label\": \"#1533\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1612\", \"label\": \"#1612\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1603\", \"label\": \"#1603\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1587\", \"label\": \"#1587\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1601\", \"label\": \"#1601\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1576\", \"label\": \"#1576\"}, {\"href\": \"https://github.com/simonw/datasette/issues/957\", \"label\": \"#957\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1607\", \"label\": \"#1607\"}, {\"href\": \"https://datasette.io/tutorials\", \"label\": \"Datasette Tutorials\"}, {\"href\": \"https://github.com/simonw/datasette/pull/1649\", \"label\": \"#1649\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1545\", \"label\": \"#1545\"}, {\"href\": \"https://github.com/simonw/datasette/issues/1228\", \"label\": \"#1228\"}]"]], "columns": ["id", "page", "ref", "title", "content", "breadcrumbs", "references"], "primary_keys": ["id"], "primary_key_values": ["changelog:id22"], "units": {}, "query_ms": 2.0092930062673986}