{"sha": "baf986c871708c01ca183be760995cf306ba21bf", "message": "New get_metadata() plugin hook for dynamic metadata\n\nThe following hook is added:\r\n\r\n get_metadata(\r\n datasette=self, key=key, database=database, table=table,\r\n fallback=fallback\r\n )\r\n\r\nThis gets called when we're building our metdata for the rest\r\nof the system to use. We merge whatever the plugins return\r\nwith any local metadata (from metadata.yml/yaml/json) allowing\r\nfor a live-editable dynamic Datasette.\r\n\r\nAs a security precation, local meta is *not* overwritable by\r\nplugin hooks. The workflow for transitioning to live-meta would\r\nbe to load the plugin with the full metadata.yaml and save.\r\nThen remove the parts of the metadata that you want to be able\r\nto change from the file.\r\n\r\n* Avoid race condition: don't mutate databases list\r\n\r\nThis avoids the nasty \"RuntimeError: OrderedDict mutated during\r\niteration\" error that randomly happens when a plugin adds a\r\nnew database to Datasette, using `add_database`. This change\r\nmakes the add and remove database functions more expensive, but\r\nit prevents the random explosion race conditions that make for\r\nconfusing user experience when importing live databases.\r\n\r\nThanks, @brandonrobertz", "author_date": "2021-06-26T22:24:54Z", "committer_date": "2021-06-26T22:24:54Z", "raw_author": {"value": "121af5c26cc703f7b3d7219091a8e71dc39db899", "label": "Brandon Roberts"}, "raw_committer": {"value": "cd792325681cbad9f663f2879d8b69f1edbb678f", "label": "GitHub"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 2670795, "label": "brandonrobertz"}, "committer": {"value": 19864447, "label": "web-flow"}} {"sha": "0d339a4897c808903e34fa6be228cdaaa5a29c55", "message": "Removed text about executing SQL, refs #1384", "author_date": "2021-06-26T23:04:39Z", "committer_date": "2021-06-26T23:04:39Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "089278b8dbe0cb3d41f27666d97b0096b750fbe2", "message": "rST fix, refs #1384", "author_date": "2021-06-26T22:49:07Z", "committer_date": "2021-06-26T22:49:07Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "05a312caf3debb51aa1069939923a49e21cd2bd1", "message": "Applied Black, refs #1368", "author_date": "2021-06-26T22:25:28Z", "committer_date": "2021-06-26T22:25:28Z", "raw_author": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "raw_committer": {"value": "13ae486343ea6454a93114c6f558ffea2f2c6874", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}}