{"html_url": "https://github.com/simonw/sqlite-utils/issues/567#issuecomment-1646687219", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/567", "id": 1646687219, "node_id": "IC_kwDOCGYnMM5iJnPz", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-07-22T22:59:36Z", "updated_at": "2023-07-22T22:59:36Z", "author_association": "OWNER", "body": "Now that we have two plugin hooks I'm closing this issue (we can open other issues for further hooks).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1801394744, "label": "Plugin system"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/567#issuecomment-1646686424", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/567", "id": 1646686424, "node_id": "IC_kwDOCGYnMM5iJnDY", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-07-22T22:52:34Z", "updated_at": "2023-07-22T22:52:34Z", "author_association": "OWNER", "body": "Splitting off an issue for `prepare_connection()` since Alex got the PR in seconds before I shipped 3.34!", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 1, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1801394744, "label": "Plugin system"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/567#issuecomment-1646654383", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/567", "id": 1646654383, "node_id": "IC_kwDOCGYnMM5iJfOv", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-07-22T19:20:16Z", "updated_at": "2023-07-22T19:20:16Z", "author_association": "OWNER", "body": "Here's documentation for the new plugins mechanism, including a very short tutorial on writing a new plugin (inspired by https://llm.datasette.io/en/stable/plugins/tutorial-model-plugin.html):\r\n\r\nhttps://sqlite-utils.datasette.io/en/latest/plugins.html", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1801394744, "label": "Plugin system"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/567#issuecomment-1646643450", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/567", "id": 1646643450, "node_id": "IC_kwDOCGYnMM5iJcj6", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-07-22T18:17:18Z", "updated_at": "2023-07-22T18:17:18Z", "author_association": "OWNER", "body": "I'm going to start by adding the `register_command` hook using the exact same pattern as Datasette and LLM.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1801394744, "label": "Plugin system"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/567#issuecomment-1646643379", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/567", "id": 1646643379, "node_id": "IC_kwDOCGYnMM5iJciz", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-07-22T18:16:54Z", "updated_at": "2023-07-22T18:16:54Z", "author_association": "OWNER", "body": "> Would this possibly make a bunch of `x-to-sqlite` tools obsolete? Or nudge some to become plugins?\r\n\r\nYeah, it could do! That's not a terrible idea to be honest, those things have really been proliferating.\r\n\r\nAlternatively, they could each register themselves as plugins in addition - so if you install e.g. `pocket-to-sqlite` you could then optionally also run it as `sqlite-utils pocket-to-sqlite ...`\r\n\r\nThe benefit there is for people who install `sqlite-utils` from Homebrew, where it gets its own virtual environment. They could run:\r\n\r\n```bash\r\nbrew install sqlite-utils\r\nsqlite-utils install pocket-to-sqlite\r\n\r\nsqlite-utils pocket-to-sqlite ...\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1801394744, "label": "Plugin system"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/567#issuecomment-1638926655", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/567", "id": 1638926655, "node_id": "IC_kwDOCGYnMM5hsAk_", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-07-17T21:42:37Z", "updated_at": "2023-07-17T21:42:37Z", "author_association": "OWNER", "body": "I really like this. I'm also interested in:\r\n- Plugins that make new custom SQL functions available - similar to this Datasette hook: https://docs.datasette.io/en/stable/plugin_hooks.html#prepare-connection-conn-database-datasette\r\n- Plugins that register functions that can be used as recipes for `sqlite-utils convert` https://sqlite-utils.datasette.io/en/stable/cli.html#sqlite-utils-convert-recipes\r\n\r\nThe upload-data-to-Datasette problem is planned to be solved by a future version of https://github.com/simonw/dclient ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1801394744, "label": "Plugin system"}, "performed_via_github_app": null}