{"html_url": "https://github.com/dogsheep/github-to-sqlite/issues/79#issuecomment-1847317568", "issue_url": "https://api.github.com/repos/dogsheep/github-to-sqlite/issues/79", "id": 1847317568, "node_id": "IC_kwDODFdgUs5uG9RA", "user": {"value": 23789, "label": "nedbat"}, "created_at": "2023-12-08T14:50:13Z", "updated_at": "2023-12-08T14:50:13Z", "author_association": "NONE", "body": "Adding `&per_page=100` would reduce the number of API requests by 3x.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1570375808, "label": "Deploy demo job is failing due to rate limit"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1846560096", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604", "id": 1846560096, "node_id": "IC_kwDOCGYnMM5uEEVg", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-12-08T05:16:44Z", "updated_at": "2023-12-08T05:17:20Z", "author_association": "OWNER", "body": "Also tested this manually like so:\r\n\r\n```bash\r\nsqlite-utils create-table strict.db strictint id integer size integer --strict\r\nsqlite-utils create-table strict.db notstrictint id integer size integer \r\nsqlite-utils install sqlite-utils-shell\r\nsqlite-utils shell strict.db \r\n```\r\n```\r\nAttached to strict.db\r\nType 'exit' to exit.\r\nsqlite-utils> insert into strictint (size) values (4);\r\n1 row affected\r\nsqlite-utils> insert into strictint (size) values ('four');\r\nAn error occurred: cannot store TEXT value in INTEGER column strictint.size\r\nsqlite-utils> insert into notstrictint (size) values ('four');\r\n1 row affected\r\nsqlite-utils> commit;\r\nDone\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2001006157, "label": "Add more STRICT table support"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/603#issuecomment-1846555822", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/603", "id": 1846555822, "node_id": "IC_kwDOCGYnMM5uEDSu", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-12-08T05:09:55Z", "updated_at": "2023-12-08T05:10:31Z", "author_association": "OWNER", "body": "I'm unable to replicate this issue. This is with a fresh install of `sqlite-utils==3.35.2`:\r\n```\r\n(base) ~ python3.12\r\nPython 3.12.0 (v3.12.0:0fb18b02c8, Oct 2 2023, 09:45:56) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin\r\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\r\n>>> import sqlite_utils\r\n>>> db = sqlite_utils.Database(memory=True)\r\n>>> db[\"foo\"].insert({\"bar\": 1})\r\n\r\n>>> import sys\r\n>>> sys.version\r\n'3.12.0 (v3.12.0:0fb18b02c8, Oct 2 2023, 09:45:56) [Clang 13.0.0 (clang-1300.0.29.30)]'\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1988525411, "label": "Pyhton 3.12 Bug report"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/605#issuecomment-1846554637", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/605", "id": 1846554637, "node_id": "IC_kwDOCGYnMM5uEDAN", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-12-08T05:07:54Z", "updated_at": "2023-12-08T05:07:54Z", "author_association": "OWNER", "body": "Thanks for opening an issue - this should help future Google searchers figure out what's going on here.\r\n\r\nAnother approach here could be to store large integers as `TEXT` in SQLite (or even as `BLOB`).\r\n\r\nBoth storing as `REAL` and storing as `TEXT/BLOB` feel nasty to me, but it looks like SQLite has a hard upper limit of 9223372036854775807 for integers.", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2007893839, "label": "Insert fails with `Error: Python int too large to convert to SQLite INTEGER`; can we use `NUMERIC` here?"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843585454", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604", "id": 1843585454, "node_id": "IC_kwDOCGYnMM5t4uGu", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-12-06T19:48:26Z", "updated_at": "2023-12-08T05:05:03Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/604?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`9286c1b`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/9286c1ba432e890b1bb4b2a1f847b15364c1fa18?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.77% compared to head [(`1698a9d`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/604?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.72%.\n> Report is 1 commits behind head on main.\n\n> :exclamation: Current head 1698a9d differs from pull request most recent head 61c6e26. Consider uploading reports for the commit 61c6e26 to get more accurate results\n\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #604 +/- ##\n==========================================\n- Coverage 95.77% 95.72% -0.06% \n==========================================\n Files 8 8 \n Lines 2842 2852 +10 \n==========================================\n+ Hits 2722 2730 +8 \n- Misses 120 122 +2 \n```\n\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/604?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2001006157, "label": "Add more STRICT table support"}, "performed_via_github_app": "{\"id\": 254, \"slug\": \"codecov\", \"node_id\": \"MDM6QXBwMjU0\", \"owner\": {\"login\": \"codecov\", \"id\": 8226205, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjgyMjYyMDU=\", \"avatar_url\": \"https://avatars.githubusercontent.com/u/8226205?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/codecov\", \"html_url\": \"https://github.com/codecov\", \"followers_url\": \"https://api.github.com/users/codecov/followers\", \"following_url\": \"https://api.github.com/users/codecov/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/codecov/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/codecov/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/codecov/subscriptions\", \"organizations_url\": \"https://api.github.com/users/codecov/orgs\", \"repos_url\": \"https://api.github.com/users/codecov/repos\", \"events_url\": \"https://api.github.com/users/codecov/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/codecov/received_events\", \"type\": \"Organization\", \"site_admin\": false}, \"name\": \"Codecov\", \"description\": \"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.\\r\\n\\r\\n## Code coverage done right.\u00ae\\r\\n\\r\\n1. Upload coverage reports from your CI builds.\\r\\n2. Codecov merges all builds and languages into one beautiful coherent report.\\r\\n3. Get commit statuses, pull request comments and coverage overlay via our browser extension.\\r\\n\\r\\nWhen Codecov merges your uploads it keeps track of the CI provider (inc. build details) and user specified context, e.g. `#unittest` ~ `#smoketest` or `#oldcode` ~ `#newcode`. You can track the `#unittest` coverage independently of other groups. [Learn more here](\\r\\nhttp://docs.codecov.io/docs/flags)\\r\\n\\r\\nThrough **Codecov's Browser Extension** reports overlay directly in GitHub UI to assist in code review in [Chrome](https://chrome.google.com/webstore/detail/codecov/gedikamndpbemklijjkncpnolildpbgo) or Firefox (https://addons.mozilla.org/en-US/firefox/addon/codecov/)\\r\\n\\r\\n*Highly detailed* **pull request comments** and *customizable* **commit statuses** will improve your team's workflow and code coverage incrementally.\\r\\n\\r\\n**File backed configuration** all through the `codecov.yml`. \\r\\n\\r\\n## FAQ\\r\\n- Do you **merge multiple uploads** to the same commit? **Yes**\\r\\n- Do you **support multiple languages** in the same project? **Yes**\\r\\n- Can you **group coverage reports** by project and/or test type? **Yes**\\r\\n- How does **pricing** work? Only paid users can view reports and post statuses/comments. \", \"external_url\": \"https://codecov.io\", \"html_url\": \"https://github.com/apps/codecov\", \"created_at\": \"2016-09-25T14:18:27Z\", \"updated_at\": \"2023-09-08T15:29:16Z\", \"permissions\": {\"administration\": \"read\", \"checks\": \"write\", \"contents\": \"read\", \"emails\": \"read\", \"issues\": \"read\", \"members\": \"read\", \"metadata\": \"read\", \"pull_requests\": \"write\", \"statuses\": \"write\"}, \"events\": [\"check_run\", \"check_suite\", \"create\", \"delete\", \"fork\", \"member\", \"membership\", \"organization\", \"public\", \"pull_request\", \"push\", \"release\", \"repository\", \"status\", \"team_add\"]}"} {"html_url": "https://github.com/simonw/datasette/issues/2214#issuecomment-1844819002", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2214", "id": 1844819002, "node_id": "IC_kwDOBm6k_c5t9bQ6", "user": {"value": 2874, "label": "precipice"}, "created_at": "2023-12-07T07:36:33Z", "updated_at": "2023-12-07T07:36:33Z", "author_association": "NONE", "body": "If I uncheck `expand labels` in the Advanced CSV export dialog, the error does not occur. Re-checking that box and re-running the export does cause the error to occur.\r\n\r\n![CleanShot 2023-12-06 at 23 34 58@2x](https://github.com/simonw/datasette/assets/2874/12c6c241-35ce-4ded-8dc7-fc250d809ed9)\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2029908157, "label": "CSV export fails for some `text` foreign key references"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843975536", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604", "id": 1843975536, "node_id": "IC_kwDOCGYnMM5t6NVw", "user": {"value": 16437338, "label": "tkhattra"}, "created_at": "2023-12-07T01:17:05Z", "updated_at": "2023-12-07T01:17:05Z", "author_association": "CONTRIBUTOR", "body": "Apologies - I pushed a fix that addresses the mypy failures.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2001006157, "label": "Add more STRICT table support"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/604#issuecomment-1843586503", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/604", "id": 1843586503, "node_id": "IC_kwDOCGYnMM5t4uXH", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-12-06T19:49:10Z", "updated_at": "2023-12-06T19:49:29Z", "author_association": "OWNER", "body": "This looks really great on first glance - design is good, implementation is solid, tests and documentation look great.\r\n\r\nLooks like a couple of `mypy` failures in the tests at the moment:\r\n\r\n```\r\n mypy sqlite_utils tests\r\n\r\nsqlite_utils/db.py:543: error: Incompatible types in assignment (expression has type \"type[Table]\", variable has type \"type[View]\") [assignment]\r\ntests/test_lookup.py:156: error: Name \"test_lookup_new_table\" already defined on line 5 [no-redef]\r\nFound 2 errors in 2 files (checked 54 source files)\r\nError: Process completed with exit code 1.\r\n```\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2001006157, "label": "Add more STRICT table support"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/606#issuecomment-1843579184", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/606", "id": 1843579184, "node_id": "IC_kwDOCGYnMM5t4skw", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-12-06T19:43:55Z", "updated_at": "2023-12-06T19:43:55Z", "author_association": "OWNER", "body": "Updated documentation:\r\n- https://sqlite-utils.datasette.io/en/latest/cli.html#cli-add-column\r\n- https://sqlite-utils.datasette.io/en/latest/cli-reference.html#add-column", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2029161033, "label": "str and int as aliases for text and integer"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/606#issuecomment-1843465748", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/606", "id": 1843465748, "node_id": "IC_kwDOCGYnMM5t4Q4U", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-12-06T18:36:51Z", "updated_at": "2023-12-06T18:36:51Z", "author_association": "OWNER", "body": "I'll add `bytes` too - `float` already works. This makes sense because when you are working with the Python API you use `str` and `float` and `bytes` and `int` to specify column types.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2029161033, "label": "str and int as aliases for text and integer"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2213#issuecomment-1843072926", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2213", "id": 1843072926, "node_id": "IC_kwDOBm6k_c5t2w-e", "user": {"value": 536941, "label": "fgregg"}, "created_at": "2023-12-06T15:05:44Z", "updated_at": "2023-12-06T15:05:44Z", "author_association": "CONTRIBUTOR", "body": "it probably does not make sense to gzip large sqlite database files on the fly. it can take many seconds to gzip a large file and you either have to have this big thing in memory, or write it to disk, which some deployment environments will not like.\r\n\r\ni wonder if it would make sense to gzip the databases as part of the datasette publish process. it would be very cool to statically serve those as if they dynamically zipped (i.e. serve the filename example.db, not example.db.zip, and rely on the browser to expand).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 2028698018, "label": "feature request: gzip compression of database downloads"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/670#issuecomment-1816642044", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/670", "id": 1816642044, "node_id": "IC_kwDOBm6k_c5sR8H8", "user": {"value": 16142258, "label": "tf13"}, "created_at": "2023-11-17T15:32:20Z", "updated_at": "2023-11-17T15:32:20Z", "author_association": "NONE", "body": "Any progress on this? It would be very helpful on my end as well. Thanks!", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 564833696, "label": "Prototoype for Datasette on PostgreSQL"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/344#issuecomment-1815825863", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/344", "id": 1815825863, "node_id": "IC_kwDOCGYnMM5sO03H", "user": {"value": 16437338, "label": "tkhattra"}, "created_at": "2023-11-17T06:44:49Z", "updated_at": "2023-11-17T06:44:49Z", "author_association": "CONTRIBUTOR", "body": "hello Simon,\r\n\r\nI've added more STRICT table support per https://github.com/simonw/sqlite-utils/issues/344#issuecomment-982014776 in changeset https://github.com/simonw/sqlite-utils/commit/e4b9b582cdb4e48430865f8739f341bc8017c1e4.\r\nIt also fixes table.transform() to preserve STRICT mode.\r\nPlease pull if you deem appropriate. Thanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1066474200, "label": "Support STRICT tables"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2209#issuecomment-1812753347", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2209", "id": 1812753347, "node_id": "IC_kwDOBm6k_c5sDGvD", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-11-15T15:31:12Z", "updated_at": "2023-11-15T15:31:12Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/datasette/pull/2209?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`452a587`)](https://app.codecov.io/gh/simonw/datasette/commit/452a587e236ef642cbc6ae345b58767ea8420cb5?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.69% compared to head [(`c88414b`)](https://app.codecov.io/gh/simonw/datasette/pull/2209?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.69%.\n\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #2209 +/- ##\n=======================================\n Coverage 92.69% 92.69% \n=======================================\n Files 40 40 \n Lines 6047 6047 \n=======================================\n Hits 5605 5605 \n Misses 442 442 \n```\n\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/datasette/pull/2209?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1994861266, "label": "Fix query for suggested facets with column named value"}, "performed_via_github_app": "{\"id\": 254, \"slug\": \"codecov\", \"node_id\": \"MDM6QXBwMjU0\", \"owner\": {\"login\": \"codecov\", \"id\": 8226205, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjgyMjYyMDU=\", \"avatar_url\": \"https://avatars.githubusercontent.com/u/8226205?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/codecov\", \"html_url\": \"https://github.com/codecov\", \"followers_url\": \"https://api.github.com/users/codecov/followers\", \"following_url\": \"https://api.github.com/users/codecov/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/codecov/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/codecov/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/codecov/subscriptions\", \"organizations_url\": \"https://api.github.com/users/codecov/orgs\", \"repos_url\": \"https://api.github.com/users/codecov/repos\", \"events_url\": \"https://api.github.com/users/codecov/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/codecov/received_events\", \"type\": \"Organization\", \"site_admin\": false}, \"name\": \"Codecov\", \"description\": \"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.\\r\\n\\r\\n## Code coverage done right.\u00ae\\r\\n\\r\\n1. Upload coverage reports from your CI builds.\\r\\n2. Codecov merges all builds and languages into one beautiful coherent report.\\r\\n3. Get commit statuses, pull request comments and coverage overlay via our browser extension.\\r\\n\\r\\nWhen Codecov merges your uploads it keeps track of the CI provider (inc. build details) and user specified context, e.g. `#unittest` ~ `#smoketest` or `#oldcode` ~ `#newcode`. You can track the `#unittest` coverage independently of other groups. [Learn more here](\\r\\nhttp://docs.codecov.io/docs/flags)\\r\\n\\r\\nThrough **Codecov's Browser Extension** reports overlay directly in GitHub UI to assist in code review in [Chrome](https://chrome.google.com/webstore/detail/codecov/gedikamndpbemklijjkncpnolildpbgo) or Firefox (https://addons.mozilla.org/en-US/firefox/addon/codecov/)\\r\\n\\r\\n*Highly detailed* **pull request comments** and *customizable* **commit statuses** will improve your team's workflow and code coverage incrementally.\\r\\n\\r\\n**File backed configuration** all through the `codecov.yml`. \\r\\n\\r\\n## FAQ\\r\\n- Do you **merge multiple uploads** to the same commit? **Yes**\\r\\n- Do you **support multiple languages** in the same project? **Yes**\\r\\n- Can you **group coverage reports** by project and/or test type? **Yes**\\r\\n- How does **pricing** work? Only paid users can view reports and post statuses/comments. \", \"external_url\": \"https://codecov.io\", \"html_url\": \"https://github.com/apps/codecov\", \"created_at\": \"2016-09-25T14:18:27Z\", \"updated_at\": \"2023-09-08T15:29:16Z\", \"permissions\": {\"administration\": \"read\", \"checks\": \"write\", \"contents\": \"read\", \"emails\": \"read\", \"issues\": \"read\", \"members\": \"read\", \"metadata\": \"read\", \"pull_requests\": \"write\", \"statuses\": \"write\"}, \"events\": [\"check_run\", \"check_suite\", \"create\", \"delete\", \"fork\", \"member\", \"membership\", \"organization\", \"public\", \"pull_request\", \"push\", \"release\", \"repository\", \"status\", \"team_add\"]}"} {"html_url": "https://github.com/simonw/datasette/pull/2209#issuecomment-1812750369", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2209", "id": 1812750369, "node_id": "IC_kwDOBm6k_c5sDGAh", "user": {"value": 198537, "label": "rgieseke"}, "created_at": "2023-11-15T15:29:37Z", "updated_at": "2023-11-15T15:29:37Z", "author_association": "CONTRIBUTOR", "body": "Looks like tests are passing now but there is an issue with yaml loading and/or cog.\r\n\r\nhttps://github.com/simonw/datasette/actions/runs/6879299298/job/18710911166?pr=2209", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1994861266, "label": "Fix query for suggested facets with column named value"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2209#issuecomment-1812623778", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2209", "id": 1812623778, "node_id": "IC_kwDOBm6k_c5sCnGi", "user": {"value": 198537, "label": "rgieseke"}, "created_at": "2023-11-15T14:22:42Z", "updated_at": "2023-11-15T15:24:09Z", "author_association": "CONTRIBUTOR", "body": "Whoops, looks like I forgot to check for other places where the 'facetable' table is used in the tests.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1994861266, "label": "Fix query for suggested facets with column named value"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2208#issuecomment-1812617851", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2208", "id": 1812617851, "node_id": "IC_kwDOBm6k_c5sClp7", "user": {"value": 198537, "label": "rgieseke"}, "created_at": "2023-11-15T14:18:58Z", "updated_at": "2023-11-15T14:18:58Z", "author_association": "CONTRIBUTOR", "body": "Without aliases:\r\n\r\n![image](https://github.com/simonw/datasette/assets/198537/d9703d3b-9733-4e87-9954-4fc60a07784a)\r\n\r\nThe proposed fix in #2209 also works when the 'value' column is actually facetable (just added another value in the 'value' column).\r\n\r\n![image](https://github.com/simonw/datasette/assets/198537/a37a0a1a-c36a-4c78-bdce-01b582637cc6)\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1994857251, "label": "No suggested facets when a column named 'value' is included"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2206#issuecomment-1801888957", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2206", "id": 1801888957, "node_id": "IC_kwDOBm6k_c5rZqS9", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-11-08T13:26:13Z", "updated_at": "2023-11-08T13:26:13Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/datasette/pull/2206?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`452a587`)](https://app.codecov.io/gh/simonw/datasette/commit/452a587e236ef642cbc6ae345b58767ea8420cb5?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.69% compared to head [(`eec10df`)](https://app.codecov.io/gh/simonw/datasette/pull/2206?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.69%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #2206 +/- ##\n=======================================\n Coverage 92.69% 92.69% \n=======================================\n Files 40 40 \n Lines 6047 6047 \n=======================================\n Hits 5605 5605 \n Misses 442 442 \n```\n\n\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/datasette/pull/2206?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1983600865, "label": "Bump the python-packages group with 1 update"}, "performed_via_github_app": "{\"id\": 254, \"slug\": \"codecov\", \"node_id\": \"MDM6QXBwMjU0\", \"owner\": {\"login\": \"codecov\", \"id\": 8226205, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjgyMjYyMDU=\", \"avatar_url\": \"https://avatars.githubusercontent.com/u/8226205?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/codecov\", \"html_url\": \"https://github.com/codecov\", \"followers_url\": \"https://api.github.com/users/codecov/followers\", \"following_url\": \"https://api.github.com/users/codecov/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/codecov/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/codecov/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/codecov/subscriptions\", \"organizations_url\": \"https://api.github.com/users/codecov/orgs\", \"repos_url\": \"https://api.github.com/users/codecov/repos\", \"events_url\": \"https://api.github.com/users/codecov/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/codecov/received_events\", \"type\": \"Organization\", \"site_admin\": false}, \"name\": \"Codecov\", \"description\": \"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.\\r\\n\\r\\n## Code coverage done right.\u00ae\\r\\n\\r\\n1. Upload coverage reports from your CI builds.\\r\\n2. Codecov merges all builds and languages into one beautiful coherent report.\\r\\n3. Get commit statuses, pull request comments and coverage overlay via our browser extension.\\r\\n\\r\\nWhen Codecov merges your uploads it keeps track of the CI provider (inc. build details) and user specified context, e.g. `#unittest` ~ `#smoketest` or `#oldcode` ~ `#newcode`. You can track the `#unittest` coverage independently of other groups. [Learn more here](\\r\\nhttp://docs.codecov.io/docs/flags)\\r\\n\\r\\nThrough **Codecov's Browser Extension** reports overlay directly in GitHub UI to assist in code review in [Chrome](https://chrome.google.com/webstore/detail/codecov/gedikamndpbemklijjkncpnolildpbgo) or Firefox (https://addons.mozilla.org/en-US/firefox/addon/codecov/)\\r\\n\\r\\n*Highly detailed* **pull request comments** and *customizable* **commit statuses** will improve your team's workflow and code coverage incrementally.\\r\\n\\r\\n**File backed configuration** all through the `codecov.yml`. \\r\\n\\r\\n## FAQ\\r\\n- Do you **merge multiple uploads** to the same commit? **Yes**\\r\\n- Do you **support multiple languages** in the same project? **Yes**\\r\\n- Can you **group coverage reports** by project and/or test type? **Yes**\\r\\n- How does **pricing** work? Only paid users can view reports and post statuses/comments. \", \"external_url\": \"https://codecov.io\", \"html_url\": \"https://github.com/apps/codecov\", \"created_at\": \"2016-09-25T14:18:27Z\", \"updated_at\": \"2023-09-08T15:29:16Z\", \"permissions\": {\"administration\": \"read\", \"checks\": \"write\", \"contents\": \"read\", \"emails\": \"read\", \"issues\": \"read\", \"members\": \"read\", \"metadata\": \"read\", \"pull_requests\": \"write\", \"statuses\": \"write\"}, \"events\": [\"check_run\", \"check_suite\", \"create\", \"delete\", \"fork\", \"member\", \"membership\", \"organization\", \"public\", \"pull_request\", \"push\", \"release\", \"repository\", \"status\", \"team_add\"]}"} {"html_url": "https://github.com/simonw/datasette/pull/2202#issuecomment-1801876943", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2202", "id": 1801876943, "node_id": "IC_kwDOBm6k_c5rZnXP", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-11-08T13:19:00Z", "updated_at": "2023-11-08T13:19:00Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2206.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1959278971, "label": "Bump the python-packages group with 1 update"}, "performed_via_github_app": "{\"id\": 29110, \"slug\": \"dependabot\", \"node_id\": \"MDM6QXBwMjkxMTA=\", \"owner\": {\"login\": \"github\", \"id\": 9919, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjk5MTk=\", \"avatar_url\": \"https://avatars.githubusercontent.com/u/9919?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/github\", \"html_url\": \"https://github.com/github\", \"followers_url\": \"https://api.github.com/users/github/followers\", \"following_url\": \"https://api.github.com/users/github/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/github/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/github/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/github/subscriptions\", \"organizations_url\": \"https://api.github.com/users/github/orgs\", \"repos_url\": \"https://api.github.com/users/github/repos\", \"events_url\": \"https://api.github.com/users/github/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/github/received_events\", \"type\": \"Organization\", \"site_admin\": false}, \"name\": \"Dependabot\", \"description\": \"\", \"external_url\": \"https://dependabot-api.githubapp.com\", \"html_url\": \"https://github.com/apps/dependabot\", \"created_at\": \"2019-04-16T22:34:25Z\", \"updated_at\": \"2023-10-12T13:35:09Z\", \"permissions\": {\"checks\": \"write\", \"contents\": \"write\", \"issues\": \"write\", \"members\": \"read\", \"metadata\": \"read\", \"pull_requests\": \"write\", \"statuses\": \"read\", \"vulnerability_alerts\": \"read\", \"workflows\": \"write\"}, \"events\": [\"check_suite\", \"issues\", \"issue_comment\", \"label\", \"pull_request\", \"pull_request_review\", \"pull_request_review_comment\", \"repository\"]}"} {"html_url": "https://github.com/simonw/datasette/issues/2205#issuecomment-1794054390", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2205", "id": 1794054390, "node_id": "IC_kwDOBm6k_c5q7xj2", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-06T04:09:43Z", "updated_at": "2023-11-06T04:10:34Z", "author_association": "OWNER", "body": "That `keep_blank_values=True` is from https://github.com/simonw/datasette/commit/0934844c0b6d124163d0185fb6a41ba5a71433da\r\n\r\nCommit message:\r\n> request.post_vars() no longer discards empty values \r\n\r\nRelevant test:\r\n\r\nhttps://github.com/simonw/datasette/blob/452a587e236ef642cbc6ae345b58767ea8420cb5/tests/test_internals_request.py#L19-L27", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1978023780, "label": "request.post_vars() method obliterates form keys with multiple values"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2205#issuecomment-1794052079", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2205", "id": 1794052079, "node_id": "IC_kwDOBm6k_c5q7w_v", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-06T04:06:05Z", "updated_at": "2023-11-06T04:08:50Z", "author_association": "OWNER", "body": "It should return a `MultiParams`:\r\n\r\nhttps://github.com/simonw/datasette/blob/452a587e236ef642cbc6ae345b58767ea8420cb5/datasette/utils/__init__.py#L900-L917\r\n\r\nChange needs to be made before 1.0.\r\n\r\n```python\r\nreturn MultiParams(urllib.parse.parse_qs(body.decode(\"utf-8\")))\r\n```\r\nNeed to remember why I was using `keep_blank_values=True` there and check that using `MultiParams` doesn't conflict with that reason.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1978023780, "label": "request.post_vars() method obliterates form keys with multiple values"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2205#issuecomment-1793880738", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2205", "id": 1793880738, "node_id": "IC_kwDOBm6k_c5q7HKi", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-05T23:26:14Z", "updated_at": "2023-11-05T23:26:14Z", "author_association": "OWNER", "body": "I found this problem while trying to use WTForms with this pattern:\r\n\r\n```python\r\nchoices = [(col, col) for col in await db.table_columns(table)]\r\n\r\nclass ConfigForm(Form):\r\n template = TextAreaField(\"Template\")\r\n api_token = PasswordField(\"OpenAI API token\")\r\n columns = MultiCheckboxField('Columns', choices=choices)\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1978023780, "label": "request.post_vars() method obliterates form keys with multiple values"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1415#issuecomment-1793787454", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1415", "id": 1793787454, "node_id": "IC_kwDOBm6k_c5q6wY-", "user": {"value": 45269373, "label": "jimmybutton"}, "created_at": "2023-11-05T16:44:49Z", "updated_at": "2023-11-05T16:46:59Z", "author_association": "NONE", "body": "thanks for documenting this @bendnorman! got stuck at exactly the same point `gcloud builds submit ... returned non-zero exit status 1`, without a clue why this was happening. i now managed to get the github action to deploy datasette by assigning the following roles to the service account: `roles/run.admin`, `roles/storage.admin`, `roles/cloudbuild.builds.builder`, `roles/viewer`, `roles/iam.serviceAccountUser`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 959137143, "label": "feature request: document minimum permissions for service account for cloudrun"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/591#issuecomment-1793278279", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/591", "id": 1793278279, "node_id": "IC_kwDOCGYnMM5q40FH", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:58:03Z", "updated_at": "2023-11-04T00:58:03Z", "author_association": "OWNER", "body": "I'm going to abandon this PR and ship the 3.12 testing change directly to `main`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1884335789, "label": "Test against Python 3.12 preview"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/591#issuecomment-1708693020", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/591", "id": 1708693020, "node_id": "IC_kwDOCGYnMM5l2JYc", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-09-06T16:14:03Z", "updated_at": "2023-11-04T00:54:25Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/591?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`347fdc8`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/347fdc865e91b8d3410f49a5c9d5b499fbb594c1?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.74% compared to head [(`1f14df1`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/591?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.74%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #591 +/- ##\n=======================================\n Coverage 95.74% 95.74% \n=======================================\n Files 8 8 \n Lines 2842 2842 \n=======================================\n Hits 2721 2721 \n Misses 121 121 \n```\n\n\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/591?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1884335789, "label": "Test against Python 3.12 preview"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/596#issuecomment-1793274869", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/596", "id": 1793274869, "node_id": "IC_kwDOCGYnMM5q4zP1", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:47:55Z", "updated_at": "2023-11-04T00:47:55Z", "author_association": "OWNER", "body": "Thanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1919296686, "label": "Fixes mapping for time fields related to mysql, closes #522"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/598#issuecomment-1793274485", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/598", "id": 1793274485, "node_id": "IC_kwDOCGYnMM5q4zJ1", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:46:55Z", "updated_at": "2023-11-04T00:46:55Z", "author_association": "OWNER", "body": "Manually tested. Before:\r\n\r\n![cursor-bug](https://github.com/simonw/sqlite-utils/assets/9599/3bdd30ea-1a54-4fec-b42d-793130a17bc1)\r\n\r\nAfter:\r\n\r\n![cursor-fix](https://github.com/simonw/sqlite-utils/assets/9599/015d4e4e-b40c-4a93-81f5-1a4adef69b11)\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1926729132, "label": "Fixed issue #433 - CLI eats cursor"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/433#issuecomment-1793274350", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/433", "id": 1793274350, "node_id": "IC_kwDOCGYnMM5q4zHu", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:46:30Z", "updated_at": "2023-11-04T00:46:30Z", "author_association": "OWNER", "body": "And a GIF of the fix after applying:\r\n- #598\r\n\r\n![cursor-fix](https://github.com/simonw/sqlite-utils/assets/9599/35829aec-c9ac-4925-a8e6-ffe7c2ab0d96)\r\n", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1239034903, "label": "CLI eats my cursor"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/433#issuecomment-1793273968", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/433", "id": 1793273968, "node_id": "IC_kwDOCGYnMM5q4zBw", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:45:19Z", "updated_at": "2023-11-04T00:45:19Z", "author_association": "OWNER", "body": "Here's an animated GIF that demonstrates the bug:\r\n\r\n![cursor-bug](https://github.com/simonw/sqlite-utils/assets/9599/18e54b38-a466-4384-9162-114eb01526a2)\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1239034903, "label": "CLI eats my cursor"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/598#issuecomment-1793272429", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/598", "id": 1793272429, "node_id": "IC_kwDOCGYnMM5q4ypt", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:40:34Z", "updated_at": "2023-11-04T00:40:34Z", "author_association": "OWNER", "body": "Thanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1926729132, "label": "Fixed issue #433 - CLI eats cursor"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793269219", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793269219, "node_id": "IC_kwDOCGYnMM5q4x3j", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:34:33Z", "updated_at": "2023-11-04T00:34:33Z", "author_association": "OWNER", "body": "The GIS tests now pass in that container too:\r\n```bash\r\npytest tests/test_gis.py\r\n```\r\n```\r\n======================== test session starts =========================\r\nplatform linux -- Python 3.10.12, pytest-7.4.3, pluggy-1.3.0\r\nrootdir: /tmp/sqlite-utils\r\nplugins: hypothesis-6.88.1\r\ncollected 12 items \r\n\r\ntests/test_gis.py ............ [100%]\r\n\r\n========================= 12 passed in 0.48s =========================\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/599#issuecomment-1793268750", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/599", "id": 1793268750, "node_id": "IC_kwDOCGYnMM5q4xwO", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:33:25Z", "updated_at": "2023-11-04T00:33:25Z", "author_association": "OWNER", "body": "See details of how I tested this here:\r\n- https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793268126\r\n\r\nShort version: having applied this fix, the following command (on simulated `aarch64`):\r\n```bash\r\nsqlite-utils memory \"select spatialite_version()\" --load-extension=spatialite\r\n```\r\nOutputs:\r\n```json\r\n[{\"spatialite_version()\": \"5.0.1\"}]\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1976986318, "label": "Cannot find spatialite on arm64 linux"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793268126", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793268126, "node_id": "IC_kwDOCGYnMM5q4xme", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:31:34Z", "updated_at": "2023-11-04T00:31:34Z", "author_association": "OWNER", "body": "Testing this manually on macOS using Docker Desk top like this:\r\n```bash\r\ndocker run -it --rm arm64v8/ubuntu /bin/bash\r\n```\r\nThen inside the container:\r\n```bash\r\nuname -m\r\n```\r\nOutputs: `aarch64`\r\n\r\nThen:\r\n```bash\r\napt install spatialite-bin libsqlite3-mod-spatialite git python3 python3-venv -y\r\ncd /tmp\r\ngit clone https://github.com/simonw/sqlite-utils\r\ncd sqlite-utils\r\npython3 -m venv venv\r\nsource venv/bin/activate\r\npip install -e '.[test]'\r\nsqlite-utils memory \"select spatialite_version()\" --load-extension=spatialite\r\n```\r\nWhich output:\r\n```\r\nTraceback (most recent call last):\r\n File \"/tmp/sqlite-utils/venv/bin/sqlite-utils\", line 33, in \r\n sys.exit(load_entry_point('sqlite-utils', 'console_scripts', 'sqlite-utils')())\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 1157, in __call__\r\n return self.main(*args, **kwargs)\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 1078, in main\r\n rv = self.invoke(ctx)\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 1688, in invoke\r\n return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 1434, in invoke\r\n return ctx.invoke(self.callback, **ctx.params)\r\n File \"/tmp/sqlite-utils/venv/lib/python3.10/site-packages/click/core.py\", line 783, in invoke\r\n return __callback(*args, **kwargs)\r\n File \"/tmp/sqlite-utils/sqlite_utils/cli.py\", line 1959, in memory\r\n _load_extensions(db, load_extension)\r\n File \"/tmp/sqlite-utils/sqlite_utils/cli.py\", line 3232, in _load_extensions\r\n if \":\" in ext:\r\nTypeError: argument of type 'NoneType' is not iterable\r\n```\r\nThen I ran this:\r\n```bash\r\ngit checkout -b MikeCoats-spatialite-paths-linux-arm main\r\ngit pull https://github.com/MikeCoats/sqlite-utils.git spatialite-paths-linux-arm\r\n```\r\nAnd now:\r\n```bash\r\nsqlite-utils memory \"select spatialite_version()\" --load-extension=spatialite\r\n```\r\nOutputs:\r\n```json\r\n[{\"spatialite_version()\": \"5.0.1\"}]\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793264654", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793264654, "node_id": "IC_kwDOCGYnMM5q4wwO", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-11-04T00:22:07Z", "updated_at": "2023-11-04T00:27:29Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`622c3a5`)](https://app.codecov.io/gh/simonw/sqlite-utils/commit/622c3a5a7dd53a09c029e2af40c2643fe7579340?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.77% compared to head [(`b1a6076`)](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 95.77%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #600 +/- ##\n=======================================\n Coverage 95.77% 95.77% \n=======================================\n Files 8 8 \n Lines 2840 2840 \n=======================================\n Hits 2720 2720 \n Misses 120 120 \n```\n\n\n| [Files](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [sqlite\\_utils/db.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.22% <\u00f8> (\u00f8)` | |\n| [sqlite\\_utils/utils.py](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL3V0aWxzLnB5) | `94.56% <\u00f8> (\u00f8)` | |\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/sqlite-utils/pull/600?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": "{\"id\": 254, \"slug\": \"codecov\", \"node_id\": \"MDM6QXBwMjU0\", \"owner\": {\"login\": \"codecov\", \"id\": 8226205, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjgyMjYyMDU=\", \"avatar_url\": \"https://avatars.githubusercontent.com/u/8226205?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/codecov\", \"html_url\": \"https://github.com/codecov\", \"followers_url\": \"https://api.github.com/users/codecov/followers\", \"following_url\": \"https://api.github.com/users/codecov/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/codecov/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/codecov/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/codecov/subscriptions\", \"organizations_url\": \"https://api.github.com/users/codecov/orgs\", \"repos_url\": \"https://api.github.com/users/codecov/repos\", \"events_url\": \"https://api.github.com/users/codecov/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/codecov/received_events\", \"type\": \"Organization\", \"site_admin\": false}, \"name\": \"Codecov\", \"description\": \"Codecov provides highly integrated tools to group, merge, archive and compare coverage reports. Whether your team is comparing changes in a pull request or reviewing a single commit, Codecov will improve the code review workflow and quality.\\r\\n\\r\\n## Code coverage done right.\u00ae\\r\\n\\r\\n1. Upload coverage reports from your CI builds.\\r\\n2. Codecov merges all builds and languages into one beautiful coherent report.\\r\\n3. Get commit statuses, pull request comments and coverage overlay via our browser extension.\\r\\n\\r\\nWhen Codecov merges your uploads it keeps track of the CI provider (inc. build details) and user specified context, e.g. `#unittest` ~ `#smoketest` or `#oldcode` ~ `#newcode`. You can track the `#unittest` coverage independently of other groups. [Learn more here](\\r\\nhttp://docs.codecov.io/docs/flags)\\r\\n\\r\\nThrough **Codecov's Browser Extension** reports overlay directly in GitHub UI to assist in code review in [Chrome](https://chrome.google.com/webstore/detail/codecov/gedikamndpbemklijjkncpnolildpbgo) or Firefox (https://addons.mozilla.org/en-US/firefox/addon/codecov/)\\r\\n\\r\\n*Highly detailed* **pull request comments** and *customizable* **commit statuses** will improve your team's workflow and code coverage incrementally.\\r\\n\\r\\n**File backed configuration** all through the `codecov.yml`. \\r\\n\\r\\n## FAQ\\r\\n- Do you **merge multiple uploads** to the same commit? **Yes**\\r\\n- Do you **support multiple languages** in the same project? **Yes**\\r\\n- Can you **group coverage reports** by project and/or test type? **Yes**\\r\\n- How does **pricing** work? Only paid users can view reports and post statuses/comments. \", \"external_url\": \"https://codecov.io\", \"html_url\": \"https://github.com/apps/codecov\", \"created_at\": \"2016-09-25T14:18:27Z\", \"updated_at\": \"2023-09-08T15:29:16Z\", \"permissions\": {\"administration\": \"read\", \"checks\": \"write\", \"contents\": \"read\", \"emails\": \"read\", \"issues\": \"read\", \"members\": \"read\", \"metadata\": \"read\", \"pull_requests\": \"write\", \"statuses\": \"write\"}, \"events\": [\"check_run\", \"check_suite\", \"create\", \"delete\", \"fork\", \"member\", \"membership\", \"organization\", \"public\", \"pull_request\", \"push\", \"release\", \"repository\", \"status\", \"team_add\"]}"} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793265952", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793265952, "node_id": "IC_kwDOCGYnMM5q4xEg", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:25:34Z", "updated_at": "2023-11-04T00:25:34Z", "author_association": "OWNER", "body": "The tests failed because they found a spelling mistake in a completely unrelated area of the code - not sure why that had not been caught before.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/600#issuecomment-1793263638", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/600", "id": 1793263638, "node_id": "IC_kwDOCGYnMM5q4wgW", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-04T00:19:58Z", "updated_at": "2023-11-04T00:19:58Z", "author_association": "OWNER", "body": "Thanks for this!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1977004379, "label": "Add spatialite arm64 linux path"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/949#issuecomment-1791911093", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/949", "id": 1791911093, "node_id": "IC_kwDOBm6k_c5qzmS1", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-11-03T05:28:09Z", "updated_at": "2023-11-03T05:28:58Z", "author_association": "OWNER", "body": "Datasette is using that now, see:\r\n- #1893", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 684961449, "label": "Try out CodeMirror SQL hints"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/949#issuecomment-1791571572", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/949", "id": 1791571572, "node_id": "IC_kwDOBm6k_c5qyTZ0", "user": {"value": 498744, "label": "mhkeller"}, "created_at": "2023-11-02T21:36:24Z", "updated_at": "2023-11-02T21:36:24Z", "author_association": "NONE", "body": "FWIW, code mirror 6 now has this standard although if you want table-specific suggestions, you'd have to handle parsing out which table the user is querying yourself.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 684961449, "label": "Try out CodeMirror SQL hints"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/411#issuecomment-1779267468", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/411", "id": 1779267468, "node_id": "IC_kwDOBm6k_c5qDXeM", "user": {"value": 363004, "label": "hcarter333"}, "created_at": "2023-10-25T13:23:04Z", "updated_at": "2023-10-25T13:23:04Z", "author_association": "NONE", "body": "Using the [Counties example](https://us-counties.datasette.io/counties/county_for_latitude_longitude?longitude=-122&latitude=37), I was able to pull out the MakePoint method as \r\n\r\nMakePoint(cast(rm_rnb_history_pres.rx_lng as float), cast(rm_rnb_history_pres.rx_lat as float)) as geometry\r\n\r\nwhich worked, giving me a geometry column.\r\n\r\n![image](https://github.com/simonw/datasette/assets/363004/6393b712-9e3d-416d-ba37-202934d5f604)\r\n\r\n\r\ngave\r\n\r\n![image](https://github.com/simonw/datasette/assets/363004/219db7b2-8107-41b3-a049-ef4d6bd7ac7a)\r\n\r\nI believe it's the cast to float that does the trick. Prior to using the cast, I also received a 'wrong number of arguments' eror.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 410384988, "label": "How to pass named parameter into spatialite MakePoint() function"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2202#issuecomment-1777247375", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2202", "id": 1777247375, "node_id": "IC_kwDOBm6k_c5p7qSP", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-10-24T13:49:27Z", "updated_at": "2023-10-24T13:49:27Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/datasette/pull/2202?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified and coverable lines are covered by tests :white_check_mark:\n> Comparison is base [(`452a587`)](https://app.codecov.io/gh/simonw/datasette/commit/452a587e236ef642cbc6ae345b58767ea8420cb5?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.69% compared to head [(`be4d0f0`)](https://app.codecov.io/gh/simonw/datasette/pull/2202?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.69%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #2202 +/- ##\n=======================================\n Coverage 92.69% 92.69% \n=======================================\n Files 40 40 \n Lines 6047 6047 \n=======================================\n Hits 5605 5605 \n Misses 442 442 \n```\n\n\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/datasette/pull/2202?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1959278971, "label": "Bump the python-packages group with 1 update"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2200#issuecomment-1777228352", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2200", "id": 1777228352, "node_id": "IC_kwDOBm6k_c5p7lpA", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-10-24T13:40:25Z", "updated_at": "2023-10-24T13:40:25Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2202.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1949756141, "label": "Bump the python-packages group with 1 update"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1655#issuecomment-1767248394", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1655", "id": 1767248394, "node_id": "IC_kwDOBm6k_c5pVhIK", "user": {"value": 6262071, "label": "yejiyang"}, "created_at": "2023-10-17T21:53:17Z", "updated_at": "2023-10-17T21:53:17Z", "author_association": "NONE", "body": "@fgregg, I am happy to do that and just could not find a way to create issues at your fork repo. ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1163369515, "label": "query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1655#issuecomment-1767219901", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1655", "id": 1767219901, "node_id": "IC_kwDOBm6k_c5pVaK9", "user": {"value": 536941, "label": "fgregg"}, "created_at": "2023-10-17T21:29:03Z", "updated_at": "2023-10-17T21:29:03Z", "author_association": "CONTRIBUTOR", "body": "@yejiyang why don\u2019t you move this discussion to my fork to spare simon\u2019s notifications ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1163369515, "label": "query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1655#issuecomment-1767133832", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1655", "id": 1767133832, "node_id": "IC_kwDOBm6k_c5pVFKI", "user": {"value": 6262071, "label": "yejiyang"}, "created_at": "2023-10-17T20:37:18Z", "updated_at": "2023-10-17T21:12:48Z", "author_association": "NONE", "body": "@fgregg Thanks for your reply. I tried to use your fork branch `datasette = {url = \"https://github.com/fgregg/datasette/archive/refs/heads/no_limit_csv_publish.zip\"}` and got error - TypeError: 'str' object is not callable. I used the same templates as in your branch [here ](https://github.com/labordata/warehouse/tree/main/templates).\r\n\r\n```\r\nINFO: 127.0.0.1:47232 - \"GET /-/static/sql-formatter-2.3.3.min.js HTTP/1.1\" 200 OK\r\nTraceback (most recent call last):\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/datasette/app.py\", line 1632, in route_path\r\n response = await view(request, send)\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/datasette/app.py\", line 1814, in async_view_fn\r\n response = await async_call_with_supported_arguments(\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/datasette/utils/__init__.py\", line 1016, in async_call_with_supported_arguments\r\n return await fn(*call_with)\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/datasette/views/table.py\", line 673, in table_view\r\n response = await table_view_traced(datasette, request)\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/datasette/views/table.py\", line 822, in table_view_traced\r\n await datasette.render_template(\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/datasette/app.py\", line 1307, in render_template\r\n return await template.render_async(template_context)\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/jinja2/environment.py\", line 1324, in render_async\r\n return self.environment.handle_exception()\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/jinja2/environment.py\", line 936, in handle_exception\r\n raise rewrite_traceback_stack(source=source)\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/jinja2/environment.py\", line 1321, in \r\n [n async for n in self.root_render_func(ctx)] # type: ignore\r\n File \"templates/table.html\", line 1, in top-level template code\r\n {% extends \"base.html\" %}\r\n File \"/home/jiyang/github/global-chemical-inventory-database/.venv/lib/python3.10/site-packages/datasette/templates/base.html\", line 62, in top-level template code\r\n {% block content %}\r\n File \"templates/table.html\", line 24, in block 'content'\r\n
\r\nTypeError: 'str' object is not callable\r\nINFO: 127.0.0.1:47228 - \"GET /zeropm-v0-0-3/api_ready_query HTTP/1.1\" 500 Internal Server Error\r\n```\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1163369515, "label": "query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1655#issuecomment-1766994810", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1655", "id": 1766994810, "node_id": "IC_kwDOBm6k_c5pUjN6", "user": {"value": 536941, "label": "fgregg"}, "created_at": "2023-10-17T19:01:59Z", "updated_at": "2023-10-17T19:01:59Z", "author_association": "CONTRIBUTOR", "body": "hi @yejiyang, have your tried using my fork of datasette: https://github.com/fgregg/datasette/tree/no_limit_csv_publish\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1163369515, "label": "query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1655#issuecomment-1761630595", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1655", "id": 1761630595, "node_id": "IC_kwDOBm6k_c5pAFmD", "user": {"value": 6262071, "label": "yejiyang"}, "created_at": "2023-10-13T14:37:48Z", "updated_at": "2023-10-13T14:37:48Z", "author_association": "NONE", "body": "Hi @fgregg, I came across this issue and found your setup at labordata.bunkum.us can help me with a research project at https://database.zeropm.eu/. \r\nI really like the approach [here](https://labordata.bunkum.us/f7-06c761c?sql=select+*+from+f7) when dealing with a custom SQL query returning more than 1000 rows:\r\n1) At the table in HTML page, only first 1000 rows displayed;\r\n2) When click the \"Download this data as a CSV Spreadsheet(All Rows)\" button, a csv with ALL ROWS (could be > 100 Mb) get downloaded.\r\n\r\nI am trying to repeat the setup but have yet to be successful so far. \r\nWhat I tried:\r\n1) copy the query.html & table.html templates from this [github repo](https://github.com/labordata/warehouse/tree/main/templates) and use it my project\r\n2) use the same datasette version 1.0a2.\r\n\r\nDo you know what else I should try to set it correctly? I appreciate your help.\r\n\r\n@simonw I would like to use this opportunity to thank you for developing & maintaining such an amazing project. \r\nI introduce your datasette to several projects in my institute. I am also interested in your cloud version.\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1163369515, "label": "query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2196#issuecomment-1760560526", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2196", "id": 1760560526, "node_id": "IC_kwDOBm6k_c5o8AWO", "user": {"value": 1892194, "label": "Olshansk"}, "created_at": "2023-10-13T00:07:07Z", "updated_at": "2023-10-13T00:07:07Z", "author_association": "NONE", "body": "That worked!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1910269679, "label": "Discord invite link returns 401"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2052#issuecomment-1760552652", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2052", "id": 1760552652, "node_id": "IC_kwDOBm6k_c5o7-bM", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T23:59:21Z", "updated_at": "2023-10-12T23:59:21Z", "author_association": "OWNER", "body": "I'm landing this despite the cog failures. I'll fix them on main if I have to.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 1, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1651082214, "label": "feat: Javascript Plugin API (Custom panels, column menu items with JS actions)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2052#issuecomment-1632867333", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2052", "id": 1632867333, "node_id": "IC_kwDOBm6k_c5hU5QF", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-07-12T16:38:27Z", "updated_at": "2023-10-12T23:52:24Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/datasette/pull/2052?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified lines are covered by tests :white_check_mark:\n> Comparison is base [(`3feed1f`)](https://app.codecov.io/gh/simonw/datasette/commit/3feed1f66e2b746f349ee56970a62246a18bb164?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.46% compared to head [(`8ae479c`)](https://app.codecov.io/gh/simonw/datasette/pull/2052?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.69%.\n> Report is 112 commits behind head on main.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #2052 +/- ##\n==========================================\n+ Coverage 92.46% 92.69% +0.22% \n==========================================\n Files 38 40 +2 \n Lines 5750 6047 +297 \n==========================================\n+ Hits 5317 5605 +288 \n- Misses 433 442 +9 \n```\n\n\n[see 19 files with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2052/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/datasette/pull/2052?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1651082214, "label": "feat: Javascript Plugin API (Custom panels, column menu items with JS actions)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2052#issuecomment-1760545012", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2052", "id": 1760545012, "node_id": "IC_kwDOBm6k_c5o78j0", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T23:48:16Z", "updated_at": "2023-10-12T23:48:16Z", "author_association": "OWNER", "body": "Oh! I think I broke Cog on `main` and these tests are running against this branch rebased against main.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1651082214, "label": "feat: Javascript Plugin API (Custom panels, column menu items with JS actions)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2052#issuecomment-1760542865", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2052", "id": 1760542865, "node_id": "IC_kwDOBm6k_c5o78CR", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T23:44:53Z", "updated_at": "2023-10-12T23:45:15Z", "author_association": "OWNER", "body": "Weird, the `cog` check is failing in CI.\r\n\r\n```\r\nRun cog --check docs/*.rst\r\n cog --check docs/*.rst\r\n shell: /usr/bin/bash -e {0}\r\n env:\r\n pythonLocation: /opt/hostedtoolcache/Python/3.9.18/x64\r\n PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.9.18/x64/lib/pkgconfig\r\n Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64\r\n Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64\r\n Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64\r\n LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.9.18/x64/lib\r\nCheck failed\r\nChecking docs/authentication.rst\r\nChecking docs/binary_data.rst\r\nChecking docs/changelog.rst\r\nChecking docs/cli-reference.rst\r\nChecking docs/configuration.rst (changed)\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1651082214, "label": "feat: Javascript Plugin API (Custom panels, column menu items with JS actions)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2199#issuecomment-1760441535", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2199", "id": 1760441535, "node_id": "IC_kwDOBm6k_c5o7jS_", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T22:08:42Z", "updated_at": "2023-10-12T22:08:42Z", "author_association": "OWNER", "body": "Pushed that incomplete code here: https://github.com/datasette/datasette-upgrade", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1940346034, "label": "Detailed upgrade instructions for metadata.yaml -> datasette.yaml"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2196#issuecomment-1760417555", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2196", "id": 1760417555, "node_id": "IC_kwDOBm6k_c5o7dcT", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T21:54:52Z", "updated_at": "2023-10-12T21:54:52Z", "author_association": "OWNER", "body": "I can't replicate this bug. Closing, but please re-open if it's still happening.\r\n\r\nAs an aside, the link I promote is https://datasette.io/discord which redirects:\r\n\r\n```\r\ncurl -i 'https://datasette.io/discord'\r\nHTTP/2 301 \r\nlocation: https://discord.gg/ktd74dm5mw\r\ncontent-type: text/plain\r\nx-cloud-trace-context: 8dcfd08d3d1fa44f7ee78568e0f5305e;o=1\r\ndate: Thu, 12 Oct 2023 21:54:17 GMT\r\nserver: Google Frontend\r\ncontent-length: 0\r\n```\r\n```\r\ncurl -i 'https://discord.gg/ktd74dm5mw'\r\nHTTP/2 301 \r\ndate: Thu, 12 Oct 2023 21:54:28 GMT\r\ncontent-type: text/plain;charset=UTF-8\r\ncontent-length: 0\r\nlocation: https://discord.com/invite/ktd74dm5mw\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\npermissions-policy: interest-cohort=()\r\nx-content-type-options: nosniff\r\nx-frame-options: DENY\r\nx-robots-tag: noindex, nofollow, noarchive, nocache, noimageindex, noodp\r\nx-xss-protection: 1; mode=block\r\nreport-to: {\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=Dzzrf%2FgGkfFxtzSAQ46slMVDLcFjsH9fsvVkzHtgUUiZ891rXAa6LvTRpHK%2BdSMSQ54F57hS9z1mZXXklIbONZW1bfBuFjSK9J4XmjjLjsFUulMXvpjfCLkB6PI%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}\r\nnel: {\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}\r\nserver: cloudflare\r\ncf-ray: 815294ddff282511-SJC\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1910269679, "label": "Discord invite link returns 401"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2199#issuecomment-1760413191", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2199", "id": 1760413191, "node_id": "IC_kwDOBm6k_c5o7cYH", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T21:52:25Z", "updated_at": "2023-10-12T21:52:25Z", "author_association": "OWNER", "body": "Demo of that logic:\r\n```\r\n$ datasette upgrade metadata-to-config ../datasette/metadata.json\r\nUpgrading ../datasette/metadata.json to new metadata.yaml format\r\nNew metadata.yaml file will be written to metadata-new-1.yaml\r\nNew datasette.yaml file will be written to datasette.yaml\r\n$ touch metadata-new-1.yaml\r\n$ datasette upgrade metadata-to-config ../datasette/metadata.json\r\nUpgrading ../datasette/metadata.json to new metadata.yaml format\r\nNew metadata.yaml file will be written to metadata-new-2.yaml\r\nNew datasette.yaml file will be written to datasette.yaml\r\n$ touch datasette.yaml\r\n$ datasette upgrade metadata-to-config ../datasette/metadata.json\r\nUpgrading ../datasette/metadata.json to new metadata.yaml format\r\nNew metadata.yaml file will be written to metadata-new-2.yaml\r\nNew datasette.yaml file will be written to datasette-new.yaml\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1940346034, "label": "Detailed upgrade instructions for metadata.yaml -> datasette.yaml"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2199#issuecomment-1760412424", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2199", "id": 1760412424, "node_id": "IC_kwDOBm6k_c5o7cMI", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T21:51:44Z", "updated_at": "2023-10-12T21:51:44Z", "author_association": "OWNER", "body": "Started playing with this plugin idea, now tearing myself away to work on something more important:\r\n```python\r\nfrom datasette import hookimpl\r\nimport click\r\nimport pathlib\r\n\r\n\r\n@hookimpl\r\ndef register_commands(cli):\r\n @cli.group()\r\n def upgrade():\r\n \"\"\"\r\n Apply configuration upgrades to an existing Datasette instance\r\n \"\"\"\r\n pass\r\n\r\n\r\n @upgrade.command()\r\n @click.argument(\r\n \"metadata\", type=click.Path(exists=True)\r\n )\r\n @click.option(\r\n \"new_metadata\", \"-m\", \"--new-metadata\", help=\"Path to new metadata.yaml file\", type=click.Path(exists=False)\r\n )\r\n @click.option(\r\n \"new_datasette\", \"-c\", \"--new-datasette\", help=\"Path to new datasette.yaml file\", type=click.Path(exists=False)\r\n )\r\n @click.option(\r\n \"output_dir\", \"-e\", \"--output-dir\", help=\"Directory to write new files to\", type=click.Path(), default=\".\"\r\n )\r\n def metadata_to_config(metadata, new_metadata, new_datasette, output_dir):\r\n \"\"\"\r\n Upgrade an existing metadata.json/yaml file to the new metadata.yaml and\r\n datasette.yaml split introduced prior to Datasette 1.0.\r\n \"\"\"\r\n print(\"Upgrading {} to new metadata.yaml format\".format(metadata))\r\n output_dir = pathlib.Path(output_dir)\r\n if not new_metadata:\r\n # Pick a filename for the new metadata.yaml file that does not yet exist\r\n new_metadata = pick_filename(\"metadata\", output_dir)\r\n if not new_datasette:\r\n new_datasette = pick_filename(\"datasette\", output_dir)\r\n print(\"New metadata.yaml file will be written to {}\".format(new_metadata))\r\n print(\"New datasette.yaml file will be written to {}\".format(new_datasette))\r\n\r\n\r\ndef pick_filename(base, output_dir):\r\n options = [\"{}.yaml\".format(base), \"{}-new.yaml\".format(base)]\r\n i = 0\r\n while True:\r\n option = options.pop(0)\r\n option_path = output_dir / option\r\n if not option_path.exists():\r\n return option_path\r\n # If we ran out\r\n if not options:\r\n i += 1\r\n options = [\"{}-new-{}.yaml\".format(base, i)]\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1940346034, "label": "Detailed upgrade instructions for metadata.yaml -> datasette.yaml"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2199#issuecomment-1760411937", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2199", "id": 1760411937, "node_id": "IC_kwDOBm6k_c5o7cEh", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T21:51:16Z", "updated_at": "2023-10-12T21:51:16Z", "author_association": "OWNER", "body": "I think I'm OK with not preserving comments, just because it adds a level of complexity to the tool which I don't think is worth the value it provides.\r\n\r\nIf people want to keep their comments I'm happy to leave them to copy those over by hand.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1940346034, "label": "Detailed upgrade instructions for metadata.yaml -> datasette.yaml"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2199#issuecomment-1760401731", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2199", "id": 1760401731, "node_id": "IC_kwDOBm6k_c5o7ZlD", "user": {"value": 15178711, "label": "asg017"}, "created_at": "2023-10-12T21:41:42Z", "updated_at": "2023-10-12T21:41:42Z", "author_association": "CONTRIBUTOR", "body": "I dig it - I was thinking an Observable notebook where you paste your `metadata.json`/`metadata.yaml` and it would generate the new metadata + datasette.yaml files, but an extensible `datasette upgrade` plugin would be nice for future plugins.\r\n\r\nOne thing to think about: If someone has comments in their original `metadata.yaml`, could we preserve them in the new files? tbh maybe not too important bc if people cared that much they could just copy + paste, and it might be too distracting \r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1940346034, "label": "Detailed upgrade instructions for metadata.yaml -> datasette.yaml"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2199#issuecomment-1760396195", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2199", "id": 1760396195, "node_id": "IC_kwDOBm6k_c5o7YOj", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T21:36:25Z", "updated_at": "2023-10-12T21:36:25Z", "author_association": "OWNER", "body": "Related idea: how about a `datasette-upgrade` plugin which adds a `datasette upgrade` command that can be used to automate this process?\r\n\r\nMaybe something like this:\r\n```bash\r\ndatasette install datasette-upgrade\r\ndatasette upgrade metadata-to-config metadata.json\r\n```\r\nThis would output two new files: `metadata.yaml` and `datasette.yaml`. If files with those names existed already in the current directory they would be called `metadata-new.yaml` and `datasette-new.yaml`.\r\n\r\nThe command would tell you what it did:\r\n```\r\nYour metadata.json file has been rewritten as two files:\r\n\r\n metadata-new.yaml\r\n datasette.yaml\r\n\r\nStart Datasette like this to try them out:\r\n\r\n datasette -m metadata-new.yaml -c datasette.yaml\r\n```\r\nThe command is `datasette upgrade metadata-to-config` because `metadata-to-config` is the name of the upgrade recipe. The first version of the plugin would only have that single recipe, but we could add more recipes in the future for other upgrades.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1940346034, "label": "Detailed upgrade instructions for metadata.yaml -> datasette.yaml"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2199#issuecomment-1759952247", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2199", "id": 1759952247, "node_id": "IC_kwDOBm6k_c5o5r13", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T16:23:10Z", "updated_at": "2023-10-12T16:23:10Z", "author_association": "OWNER", "body": "Some options for where this could go:\r\n- Directly in the release notes? I'm not sure about that, those are getting pretty long already. I think the release notes should link to relevant upgrade guides.\r\n- On a new page? We could have a \"upgrade instructions\" page in the documentation.\r\n- At the bottom of the new https://docs.datasette.io/en/latest/configuration.html page\r\n\r\nI'm leaning towards the third option at the moment.\r\n\r\nBut... we may also need to provide upgrade instructions for plugin authors. Those could live in a separate area of the documentation though, since issues affecting end-users who configure Datasette and issues affecting plugin authors are unlikely to overlap much.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1940346034, "label": "Detailed upgrade instructions for metadata.yaml -> datasette.yaml"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2190#issuecomment-1759948683", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2190", "id": 1759948683, "node_id": "IC_kwDOBm6k_c5o5q-L", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T16:20:41Z", "updated_at": "2023-10-12T16:20:41Z", "author_association": "OWNER", "body": "I'm going to land this and open a new issue for the upgrade instructions.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1901483874, "label": "Raise an exception if a \"plugins\" block exists in metadata.json"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2190#issuecomment-1759947534", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2190", "id": 1759947534, "node_id": "IC_kwDOBm6k_c5o5qsO", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T16:19:59Z", "updated_at": "2023-10-12T16:19:59Z", "author_association": "OWNER", "body": "It would be nice if we could catch that and turn that into a less intimidating Click exception too.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1901483874, "label": "Raise an exception if a \"plugins\" block exists in metadata.json"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2190#issuecomment-1759947021", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2190", "id": 1759947021, "node_id": "IC_kwDOBm6k_c5o5qkN", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-12T16:19:38Z", "updated_at": "2023-10-12T16:19:38Z", "author_association": "OWNER", "body": "\r\n\r\nThis looks good and works well. The error from this currently looks like:\r\n\r\n```\r\ndatasette -m metadata.json -p 8844\r\nTraceback (most recent call last):\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/bin/datasette\", line 33, in \r\n sys.exit(load_entry_point('datasette', 'console_scripts', 'datasette')())\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.10/site-packages/click/core.py\", line 1130, in __call__\r\n return self.main(*args, **kwargs)\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.10/site-packages/click/core.py\", line 1055, in main\r\n rv = self.invoke(ctx)\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.10/site-packages/click/core.py\", line 1657, in invoke\r\n return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.10/site-packages/click/core.py\", line 1404, in invoke\r\n return ctx.invoke(self.callback, **ctx.params)\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.10/site-packages/click/core.py\", line 760, in invoke\r\n return __callback(*args, **kwargs)\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/cli.py\", line 98, in wrapped\r\n return fn(*args, **kwargs)\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/cli.py\", line 546, in serve\r\n metadata_data = fail_if_plugins_in_metadata(parse_metadata(metadata.read()))\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/utils/__init__.py\", line 1282, in fail_if_plugins_in_metadata\r\n raise Exception(\r\nException: Datasette no longer accepts plugin configuration in --metadata. Move your \"plugins\" configuration blocks to a separate file - we suggest calling that datasette..json - and start Datasette with datasette -c datasette..json. See https://docs.datasette.io/en/latest/configuration.html for more details.\r\n```\r\nWith wrapping:\r\n\r\n`Exception: Datasette no longer accepts plugin configuration in --metadata. Move your \"plugins\" configuration blocks to a separate file - we suggest calling that datasette..json - and start Datasette with datasette -c datasette..json. See https://docs.datasette.io/en/latest/configuration.html for more details.`\r\n\r\nI think we should link directly to documentation that tells people how to perform this upgrade.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1901483874, "label": "Raise an exception if a \"plugins\" block exists in metadata.json"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2191#issuecomment-1724480716", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2191", "id": 1724480716, "node_id": "IC_kwDOBm6k_c5myXzM", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-09-18T21:28:36Z", "updated_at": "2023-10-12T16:15:40Z", "author_association": "NONE", "body": "## [Codecov](https://app.codecov.io/gh/simonw/datasette/pull/2191?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nAll modified lines are covered by tests :white_check_mark:\n> Comparison is base [(`6ed7908`)](https://app.codecov.io/gh/simonw/datasette/commit/6ed7908580fa2ba9297c3225d85c56f8b08b9937?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.69% compared to head [(`0135e7c`)](https://app.codecov.io/gh/simonw/datasette/pull/2191?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 92.68%.\n> Report is 14 commits behind head on main.\n\n> :exclamation: Current head 0135e7c differs from pull request most recent head 18b48f8. Consider uploading reports for the commit 18b48f8 to get more accurate results\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #2191 +/- ##\n==========================================\n- Coverage 92.69% 92.68% -0.02% \n==========================================\n Files 40 40 \n Lines 6039 6042 +3 \n==========================================\n+ Hits 5598 5600 +2 \n- Misses 441 442 +1 \n```\n\n\n| [Files](https://app.codecov.io/gh/simonw/datasette/pull/2191?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [datasette/app.py](https://app.codecov.io/gh/simonw/datasette/pull/2191?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.09% <100.00%> (-0.11%)` | :arrow_down: |\n| [datasette/default\\_permissions.py](https://app.codecov.io/gh/simonw/datasette/pull/2191?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2RlZmF1bHRfcGVybWlzc2lvbnMucHk=) | `97.36% <100.00%> (+0.01%)` | :arrow_up: |\n\n... and [3 files with indirect coverage changes](https://app.codecov.io/gh/simonw/datasette/pull/2191/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/simonw/datasette/pull/2191?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1901768721, "label": "Move `permissions`, `allow` blocks, canned queries and more out of `metadata.yaml` and into `datasette.yaml`"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2197#issuecomment-1752096661", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2197", "id": 1752096661, "node_id": "IC_kwDOBm6k_c5obt-V", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-08T16:17:04Z", "updated_at": "2023-10-08T16:17:29Z", "author_association": "OWNER", "body": "https://lite.datasette.io/?install=datasette-packages#/-/packages confirms that Datasette Lite still works (`click-default-group-wheel` was originally built to allow it to run) and that it's now using these packages:\r\n```\r\n \"click-default-group\": \"1.2.4\",\r\n \"datasette\": \"0.64.5\",\r\n```\r\nFull list:\r\n```json\r\n{\r\n \"aiofiles\": \"23.2.1\",\r\n \"anyio\": \"3.7.1\",\r\n \"asgi-csrf\": \"0.9\",\r\n \"asgiref\": \"3.7.2\",\r\n \"certifi\": \"2022.12.7\",\r\n \"click\": \"8.1.3\",\r\n \"click-default-group\": \"1.2.4\",\r\n \"datasette\": \"0.64.5\",\r\n \"datasette-packages\": \"0.2\",\r\n \"h11\": \"0.12.0\",\r\n \"httpcore\": \"0.15.0\",\r\n \"httpx\": \"0.23.0\",\r\n \"hupper\": \"1.12\",\r\n \"idna\": \"3.4\",\r\n \"itsdangerous\": \"2.1.2\",\r\n \"janus\": \"1.0.0\",\r\n \"Jinja2\": \"3.1.2\",\r\n \"MarkupSafe\": \"2.1.2\",\r\n \"mergedeep\": \"1.3.4\",\r\n \"micropip\": \"0.3.0\",\r\n \"packaging\": \"23.0\",\r\n \"Pint\": \"0.22\",\r\n \"pip\": \"23.2.1\",\r\n \"pluggy\": \"1.0.0\",\r\n \"pyparsing\": \"3.0.9\",\r\n \"python-multipart\": \"0.0.6\",\r\n \"PyYAML\": \"6.0\",\r\n \"rfc3986\": \"1.5.0\",\r\n \"setuptools\": \"67.6.1\",\r\n \"sniffio\": \"1.3.0\",\r\n \"typing-extensions\": \"4.5.0\",\r\n \"uvicorn\": \"0.23.2\"\r\n}\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1930008379, "label": "click-default-group-wheel dependency conflict"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2197#issuecomment-1752095961", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2197", "id": 1752095961, "node_id": "IC_kwDOBm6k_c5obtzZ", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-08T16:13:42Z", "updated_at": "2023-10-08T16:14:39Z", "author_association": "OWNER", "body": "Confirmed - I ran this in a fresh virtual environment:\r\n```bash\r\npip install --no-cache datasette\r\n```\r\nAnd now:\r\n```bash\r\npip freeze | grep click\r\n```\r\n```\r\nclick==8.1.7\r\nclick-default-group==1.2.4\r\n```\r\n```bash\r\ndatasette --version\r\n```\r\n```\r\ndatasette, version 0.64.5\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1930008379, "label": "click-default-group-wheel dependency conflict"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2197#issuecomment-1752093039", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2197", "id": 1752093039, "node_id": "IC_kwDOBm6k_c5obtFv", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-10-08T15:59:53Z", "updated_at": "2023-10-08T15:59:53Z", "author_association": "OWNER", "body": "Replicated this myself:\r\n```bash\r\ncd /tmp\r\nmkdir dddd\r\ncd dddd\r\npipenv shell\r\npip install datasette\r\npip freeze | grep click\r\n```\r\n```\r\nclick==8.1.7\r\nclick-default-group==1.2.4\r\nclick-default-group-wheel==1.2.3\r\n```\r\nYeah this is bad, I'll ship a `0.64.5` release.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1930008379, "label": "click-default-group-wheel dependency conflict"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/433#issuecomment-1747231893", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/433", "id": 1747231893, "node_id": "IC_kwDOCGYnMM5oJKSV", "user": {"value": 62745, "label": "spookylukey"}, "created_at": "2023-10-04T16:15:09Z", "updated_at": "2023-10-04T16:28:21Z", "author_association": "CONTRIBUTOR", "body": "I confirm the bug, as above, and that @jonafato 's patch fixes it for me. However, it's not the right fix. The problem is that ProgressBar is being used in the wrong way. This also results in two lines being printed instead of one, like this:\r\n\r\n```\r\n [#######-----------------------------] 20%\r\n [####################################] 100%% \r\n```\r\nThe bug is reproducible for me in any terminal, including Gnome Terminal and Guake, and VSCode. With VSCode I can use this launch.json to reproduce it:\r\n\r\n```json\r\n\r\n{\r\n \"version\": \"0.2.0\",\r\n \"configurations\": [\r\n {\r\n \"name\": \"Python: Module\",\r\n \"type\": \"python\",\r\n \"request\": \"launch\",\r\n \"module\": \"sqlite_utils\",\r\n \"justMyCode\": false,\r\n \"args\": [\"insert\", \"test.db\", \"test\", \"--csv\", \"tests/sniff/example1.csv\"]\r\n }\r\n ]\r\n}\r\n```\r\n\r\n[edit - deleted my analysis of why the current code is wrong, which was confused and confusing]", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1239034903, "label": "CLI eats my cursor"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1870#issuecomment-1745568725", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1870", "id": 1745568725, "node_id": "IC_kwDOBm6k_c5oC0PV", "user": {"value": 2495794, "label": "jdangerx"}, "created_at": "2023-10-03T19:12:37Z", "updated_at": "2023-10-03T19:12:37Z", "author_association": "NONE", "body": "Hello! Resurrecting this issue since we're running into something similar with data.catalyst.coop as our database files have ballooned up to several GB. Our Cloud Run revisions now require huge amounts of RAM to start up without receiving a SIGBUS.\r\n\r\nI'd love to see this fix merged in. It sounds like we want to make the immutable/read-only mode decision more flexible before doing so, so that we can use `ro` in Docker and `immutable` outside. If that sounds right, I'm happy to take a crack at adding that as a command-line flag or something that gets set automatically based on the expected execution environment.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 1}", "issue": {"value": 1426379903, "label": "don't use immutable=1, only mode=ro"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1168#issuecomment-1739816358", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1168", "id": 1739816358, "node_id": "IC_kwDOBm6k_c5ns32m", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-28T18:29:05Z", "updated_at": "2023-09-28T18:29:05Z", "author_association": "OWNER", "body": "Datasette Cloud really wants this.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 777333388, "label": "Mechanism for storing metadata in _metadata tables"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2155#issuecomment-1737906995", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2155", "id": 1737906995, "node_id": "IC_kwDOBm6k_c5nllsz", "user": {"value": 79087, "label": "cadeef"}, "created_at": "2023-09-27T18:44:02Z", "updated_at": "2023-09-27T18:44:02Z", "author_association": "NONE", "body": "@simonw Any chance we can get this tiny patch merged for an upcoming release?", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1865572575, "label": "Fix hupper.start_reloader entry point"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2155#issuecomment-1737363182", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2155", "id": 1737363182, "node_id": "IC_kwDOBm6k_c5njg7u", "user": {"value": 418191, "label": "jaywgraves"}, "created_at": "2023-09-27T13:05:41Z", "updated_at": "2023-09-27T13:05:41Z", "author_association": "CONTRIBUTOR", "body": "I'm hitting the #2123 issue and I just patched my local version with this and it seems to work fine.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1865572575, "label": "Fix hupper.start_reloader entry point"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/595#issuecomment-1733312349", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/595", "id": 1733312349, "node_id": "IC_kwDOCGYnMM5nUD9d", "user": {"value": 123451970, "label": "cycle-data"}, "created_at": "2023-09-25T09:38:13Z", "updated_at": "2023-09-25T09:38:57Z", "author_association": "NONE", "body": "Never mind\r\n\r\nWhen I created the connection using \r\n`sqlite_utils.Database(path)`\r\n\r\nI just needed to add the following statement right after and it did the trick\r\n\r\n`self.db.conn.execute(\"PRAGMA foreign_keys = ON\")`\r\n\r\nHope this helps people in the future \ud83d\udc4d ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907281675, "label": "Cascading DELETE not working with Table.delete(pk)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/297#issuecomment-1732018273", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/297", "id": 1732018273, "node_id": "IC_kwDOCGYnMM5nPIBh", "user": {"value": 1108600, "label": "radusuciu"}, "created_at": "2023-09-22T20:49:51Z", "updated_at": "2023-09-22T20:49:51Z", "author_association": "NONE", "body": "This would be awesome to have for multi-gig tsv and csv files! I'm currently looking at a 10 hour countdown for one such important. Not a problem because I'm lazy and happy to let it run and check on it tomorrow..", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 944846776, "label": "Option for importing CSV data using the SQLite .import mechanism"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2195#issuecomment-1730458954", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2195", "id": 1730458954, "node_id": "IC_kwDOBm6k_c5nJLVK", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:57:39Z", "updated_at": "2023-09-21T22:57:48Z", "author_association": "OWNER", "body": "Worth noting that it already sets `--cors` automatically without you needing to specify it:\r\n\r\nhttps://github.com/simonw/datasette/blob/d97e82df3c8a3f2e97038d7080167be9bb74a68d/datasette/utils/__init__.py#L374-L374\r\n\r\nI wonder if that's actually surprising behaviour that we should change before 1.0.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907765514, "label": "`datasette publish` needs support for the new config/metadata split"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2195#issuecomment-1730457374", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2195", "id": 1730457374, "node_id": "IC_kwDOBm6k_c5nJK8e", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:56:18Z", "updated_at": "2023-09-21T22:56:18Z", "author_association": "OWNER", "body": "Maybe I should add `--cors` and `--crossdb` to `datasette publish cloudrun` as well?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907765514, "label": "`datasette publish` needs support for the new config/metadata split"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2195#issuecomment-1730446937", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2195", "id": 1730446937, "node_id": "IC_kwDOBm6k_c5nJIZZ", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:46:42Z", "updated_at": "2023-09-21T22:46:52Z", "author_association": "OWNER", "body": "Found more when I [searched for YAML](https://github.com/search?q=datasette+publish+extra-options++language%3AYAML&type=code).\r\n\r\nHere's the most interesting: https://github.com/labordata/warehouse/blob/0029a72fc1ceae9091932da6566f891167179012/.github/workflows/build.yml#L59\r\n\r\n`--extra-options=\"--crossdb --setting sql_time_limit_ms 100000 --cors --setting facet_time_limit_ms 500 --setting allow_facet off --setting trace_debug 1\"`\r\n\r\nUses both `--cors` and `--crossdb`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907765514, "label": "`datasette publish` needs support for the new config/metadata split"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2195#issuecomment-1730441613", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2195", "id": 1730441613, "node_id": "IC_kwDOBm6k_c5nJHGN", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:42:12Z", "updated_at": "2023-09-21T22:42:12Z", "author_association": "OWNER", "body": "https://github.com/search?q=datasette+publish+extra-options+language%3AShell&type=code&l=Shell shows 17 matches, I'll copy in illustrative examples here:\r\n\r\n```\r\n--extra-options=\"--setting sql_time_limit_ms 5000\"\r\n--extra-options=\"--config default_cache_ttl:3600 --config hash_urls:1\"\r\n--extra-options \"--setting sql_time_limit_ms 3500 --setting default_page_size 20 --setting trace_debug 1\"\r\n--extra-options=\"--config default_page_size:50 --config sql_time_limit_ms:30000 --config facet_time_limit_ms:10000\"\r\n--extra-options=\"--setting sql_time_limit_ms 5000\"\r\n--extra-options \"--setting suggest_facets off --setting allow_download on --setting truncate_cells_html 0 --setting max_csv_mb 0 --setting sql_time_limit_ms 2000\"\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907765514, "label": "`datasette publish` needs support for the new config/metadata split"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2195#issuecomment-1730438503", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2195", "id": 1730438503, "node_id": "IC_kwDOBm6k_c5nJGVn", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:38:10Z", "updated_at": "2023-09-21T22:38:10Z", "author_association": "OWNER", "body": "I'd really like to remove `--extra-options`. I think the new design makes that completely obsolete?\r\n\r\nMaybe it doesn't. You still need `--extra-options` for the `--crossdb` option for example.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907765514, "label": "`datasette publish` needs support for the new config/metadata split"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2195#issuecomment-1730437934", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2195", "id": 1730437934, "node_id": "IC_kwDOBm6k_c5nJGMu", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:37:22Z", "updated_at": "2023-09-21T22:37:22Z", "author_association": "OWNER", "body": "Here's the full help for Cloud Run at the moment:\r\n```bash\r\ndatasette publish cloudrun --help\r\n```\r\n```\r\nUsage: datasette publish cloudrun [OPTIONS] [FILES]...\r\n\r\n Publish databases to Datasette running on Cloud Run\r\n\r\nOptions:\r\n -m, --metadata FILENAME Path to JSON/YAML file containing metadata\r\n to publish\r\n --extra-options TEXT Extra options to pass to datasette serve\r\n --branch TEXT Install datasette from a GitHub branch e.g.\r\n main\r\n --template-dir DIRECTORY Path to directory containing custom\r\n templates\r\n --plugins-dir DIRECTORY Path to directory containing custom plugins\r\n --static MOUNT:DIRECTORY Serve static files from this directory at\r\n /MOUNT/...\r\n --install TEXT Additional packages (e.g. plugins) to\r\n install\r\n --plugin-secret ...\r\n Secrets to pass to plugins, e.g. --plugin-\r\n secret datasette-auth-github client_id xxx\r\n --version-note TEXT Additional note to show on /-/versions\r\n --secret TEXT Secret used for signing secure values, such\r\n as signed cookies\r\n --title TEXT Title for metadata\r\n --license TEXT License label for metadata\r\n --license_url TEXT License URL for metadata\r\n --source TEXT Source label for metadata\r\n --source_url TEXT Source URL for metadata\r\n --about TEXT About label for metadata\r\n --about_url TEXT About URL for metadata\r\n -n, --name TEXT Application name to use when building\r\n --service TEXT Cloud Run service to deploy (or over-write)\r\n --spatialite Enable SpatialLite extension\r\n --show-files Output the generated Dockerfile and\r\n metadata.json\r\n --memory TEXT Memory to allocate in Cloud Run, e.g. 1Gi\r\n --cpu [1|2|4] Number of vCPUs to allocate in Cloud Run\r\n --timeout INTEGER Build timeout in seconds\r\n --apt-get-install TEXT Additional packages to apt-get install\r\n --max-instances INTEGER Maximum Cloud Run instances\r\n --min-instances INTEGER Minimum Cloud Run instances\r\n --help Show this message and exit.\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907765514, "label": "`datasette publish` needs support for the new config/metadata split"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2195#issuecomment-1730437237", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2195", "id": 1730437237, "node_id": "IC_kwDOBm6k_c5nJGB1", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:36:22Z", "updated_at": "2023-09-21T22:36:22Z", "author_association": "OWNER", "body": "I think the actual design of this is pretty simple. Current help starts like this:\r\n\r\n```\r\nUsage: datasette publish cloudrun [OPTIONS] [FILES]...\r\n\r\n Publish databases to Datasette running on Cloud Run\r\n\r\nOptions:\r\n -m, --metadata FILENAME Path to JSON/YAML file containing metadata\r\n to publish\r\n --extra-options TEXT Extra options to pass to datasette serve\r\n```\r\nThe `-s` and `-c` short options are not being used.\r\n\r\nSo I think `-c/--config` can point to a JSON or YAML `datasette.yaml` file, and `-s/--setting key value` can mirror the new `-s/--setting` option in `datasette serve` itself (a shortcut for populating the config file directly from the CLI).\r\n\r\nHere's the relevant help section from `datasette serve`:\r\n```\r\n -m, --metadata FILENAME Path to JSON/YAML file containing\r\n license/source metadata\r\n -c, --config FILENAME Path to JSON/YAML Datasette configuration\r\n file\r\n -s, --setting SETTING... nested.key, value setting to use in\r\n Datasette configuration\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907765514, "label": "`datasette publish` needs support for the new config/metadata split"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2189#issuecomment-1730388418", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2189", "id": 1730388418, "node_id": "IC_kwDOBm6k_c5nI6HC", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:26:19Z", "updated_at": "2023-09-21T22:26:19Z", "author_association": "OWNER", "body": "1.0a7 is out with this fix as well now: https://docs.datasette.io/en/1.0a7/changelog.html#a7-2023-09-21", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1901416155, "label": "Server hang on parallel execution of queries to named in-memory databases"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2057#issuecomment-1730363182", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2057", "id": 1730363182, "node_id": "IC_kwDOBm6k_c5nIz8u", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:09:10Z", "updated_at": "2023-09-21T22:09:10Z", "author_association": "OWNER", "body": "Tests all pass now.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1662951875, "label": "DeprecationWarning: pkg_resources is deprecated as an API"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2194#issuecomment-1730362441", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2194", "id": 1730362441, "node_id": "IC_kwDOBm6k_c5nIzxJ", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:08:19Z", "updated_at": "2023-09-21T22:08:19Z", "author_association": "OWNER", "body": "That worked\r\n\r\nhttps://github.com/simonw/datasette/commit/e4f868801a6633400045f59584cfe650961c3fa6 is the latest commit right now and https://latest.datasette.io/-/versions shows that as the deployed version.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907695234, "label": "Deploy failing with \"plugins/alternative_route.py: Not a directory\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2057#issuecomment-1730356422", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2057", "id": 1730356422, "node_id": "IC_kwDOBm6k_c5nIyTG", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T22:01:00Z", "updated_at": "2023-09-21T22:01:00Z", "author_association": "OWNER", "body": "Tested that locally with Python 3.9 from `pyenv` and it worked.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1662951875, "label": "DeprecationWarning: pkg_resources is deprecated as an API"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2057#issuecomment-1730353462", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2057", "id": 1730353462, "node_id": "IC_kwDOBm6k_c5nIxk2", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T21:57:17Z", "updated_at": "2023-09-21T21:57:17Z", "author_association": "OWNER", "body": "Still fails in Python 3.9: https://github.com/simonw/datasette/actions/runs/6266752548/job/17018363302\r\n```\r\n plugin_info[\"name\"] = distinfo.name or distinfo.project_name\r\nAttributeError: 'PathDistribution' object has no attribute 'name'\r\nTest failed: datasette-json-html should not have been loaded\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1662951875, "label": "DeprecationWarning: pkg_resources is deprecated as an API"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2193#issuecomment-1730353006", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2193", "id": 1730353006, "node_id": "IC_kwDOBm6k_c5nIxdu", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T21:56:43Z", "updated_at": "2023-09-21T21:56:43Z", "author_association": "OWNER", "body": "The test fails as expected now. Closing this issue, will solve the remaining problems in:\r\n- #2057", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907655261, "label": "\"Test DATASETTE_LOAD_PLUGINS\" test shows errors but did not fail the CI run"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2193#issuecomment-1730352111", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2193", "id": 1730352111, "node_id": "IC_kwDOBm6k_c5nIxPv", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T21:55:41Z", "updated_at": "2023-09-21T21:55:41Z", "author_association": "OWNER", "body": "https://github.com/simonw/datasette/actions/runs/6267146158/job/17019594849 failed on 3.9 this time.\r\n\r\n```\r\n plugin_info[\"name\"] = distinfo.name or distinfo.project_name\r\nAttributeError: 'PathDistribution' object has no attribute 'name'\r\nTest failed: datasette-json-html should not have been loaded\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907655261, "label": "\"Test DATASETTE_LOAD_PLUGINS\" test shows errors but did not fail the CI run"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2195#issuecomment-1730313565", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2195", "id": 1730313565, "node_id": "IC_kwDOBm6k_c5nIn1d", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T21:16:31Z", "updated_at": "2023-09-21T21:16:31Z", "author_association": "OWNER", "body": "The `@add_common_publish_arguments_and_options` decorator described here is bad. If I update it to support a new `config` option all plugins that use it will break.\r\n\r\nhttps://github.com/simonw/datasette/blob/f130c7c0a88e50cea4121ea18d1f6db2431b6fab/docs/plugin_hooks.rst#L347-L355\r\n\r\nI want to deprecate it and switch to a different, better design to address the same problem.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907765514, "label": "`datasette publish` needs support for the new config/metadata split"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2195#issuecomment-1730312128", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2195", "id": 1730312128, "node_id": "IC_kwDOBm6k_c5nInfA", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T21:15:11Z", "updated_at": "2023-09-21T21:15:11Z", "author_association": "OWNER", "body": "As soon as `datasette publish cloudrun` has this I can re-enable this bit of the demo deploy:\r\n\r\nhttps://github.com/simonw/datasette/blob/2da1a6acec915b81a16127008fd739c7d6075681/.github/workflows/deploy-latest.yml#L91-L97\r\n\r\nWhich should fix this broken demo from https://simonwillison.net/2022/Dec/2/datasette-write-api/\r\n\r\nhttps://todomvc.datasette.io/", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907765514, "label": "`datasette publish` needs support for the new config/metadata split"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2194#issuecomment-1730305920", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2194", "id": 1730305920, "node_id": "IC_kwDOBm6k_c5nIl-A", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T21:09:21Z", "updated_at": "2023-09-21T21:09:21Z", "author_association": "OWNER", "body": "I'm going to disable this bit of the deploy for the moment, which will break the demo linked to from https://simonwillison.net/2022/Dec/2/datasette-write-api/\r\n\r\nhttps://github.com/simonw/datasette/blob/2da1a6acec915b81a16127008fd739c7d6075681/.github/workflows/deploy-latest.yml#L91-L97\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907695234, "label": "Deploy failing with \"plugins/alternative_route.py: Not a directory\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2194#issuecomment-1730259871", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2194", "id": 1730259871, "node_id": "IC_kwDOBm6k_c5nIauf", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:34:09Z", "updated_at": "2023-09-21T20:34:09Z", "author_association": "OWNER", "body": "... which raises the challenge that `datasette publish` doesn't yet know what to do with a config file!\r\n\r\nhttps://github.com/simonw/datasette/blob/2da1a6acec915b81a16127008fd739c7d6075681/.github/workflows/deploy-latest.yml#L114-L122", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907695234, "label": "Deploy failing with \"plugins/alternative_route.py: Not a directory\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2194#issuecomment-1730258302", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2194", "id": 1730258302, "node_id": "IC_kwDOBm6k_c5nIaV-", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:32:53Z", "updated_at": "2023-09-21T20:33:02Z", "author_association": "OWNER", "body": "Correct usage is now:\r\n```bash\r\npython tests/fixtures.py fixtures.db fixtures-config.json fixtures-metadata.json \\\r\n plugins --extra-db-filename extra_database.db\r\n```\r\n```\r\nTest tables written to fixtures.db\r\n- metadata written to fixtures-metadata.json\r\n- config written to fixtures-config.json\r\n Wrote plugin: plugins/register_output_renderer.py\r\n Wrote plugin: plugins/view_name.py\r\n Wrote plugin: plugins/my_plugin.py\r\n Wrote plugin: plugins/messages_output_renderer.py\r\n Wrote plugin: plugins/sleep_sql_function.py\r\n Wrote plugin: plugins/my_plugin_2.py\r\nTest tables written to extra_database.db\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907695234, "label": "Deploy failing with \"plugins/alternative_route.py: Not a directory\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2194#issuecomment-1730256435", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2194", "id": 1730256435, "node_id": "IC_kwDOBm6k_c5nIZ4z", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:31:22Z", "updated_at": "2023-09-21T20:31:31Z", "author_association": "OWNER", "body": "New error: \"Error: Metadata should end with .json\"\r\n\r\nhttps://github.com/simonw/datasette/actions/runs/6266720924/job/17018265851\r\n\r\n\"CleanShot", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907695234, "label": "Deploy failing with \"plugins/alternative_route.py: Not a directory\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2057#issuecomment-1730250337", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2057", "id": 1730250337, "node_id": "IC_kwDOBm6k_c5nIYZh", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:26:12Z", "updated_at": "2023-09-21T20:26:12Z", "author_association": "OWNER", "body": "That does seem to fix the problem! ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1662951875, "label": "DeprecationWarning: pkg_resources is deprecated as an API"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2057#issuecomment-1730247545", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2057", "id": 1730247545, "node_id": "IC_kwDOBm6k_c5nIXt5", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:23:47Z", "updated_at": "2023-09-21T20:23:47Z", "author_association": "OWNER", "body": "Hunch: https://pypi.org/project/importlib-metadata/ may help here.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1662951875, "label": "DeprecationWarning: pkg_resources is deprecated as an API"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2194#issuecomment-1730245204", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2194", "id": 1730245204, "node_id": "IC_kwDOBm6k_c5nIXJU", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:21:42Z", "updated_at": "2023-09-21T20:21:42Z", "author_association": "OWNER", "body": "I think I see the problem - it's from here: https://github.com/simonw/datasette/commit/b2ec8717c3619260a1b535eea20e618bf95aa30b#diff-5dbc88d6e5c3615caf10e32a9d6fc6ff683f5b5814948928cb84c3ab91c038b6L770\r\n\r\nThe `config` and `metadata` Click options are the wrong way round:\r\n\r\nhttps://github.com/simonw/datasette/blob/80a9cd9620fddf2695d12d8386a91e7c6b145ef2/tests/fixtures.py#L785-L786\r\n\r\nhttps://github.com/simonw/datasette/blob/80a9cd9620fddf2695d12d8386a91e7c6b145ef2/tests/fixtures.py#L801", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907695234, "label": "Deploy failing with \"plugins/alternative_route.py: Not a directory\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2194#issuecomment-1730242734", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2194", "id": 1730242734, "node_id": "IC_kwDOBm6k_c5nIWiu", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:19:29Z", "updated_at": "2023-09-21T20:19:29Z", "author_association": "OWNER", "body": "Maybe `plugins/` does not exist? It should have been created by this line:\r\n\r\nhttps://github.com/simonw/datasette/blob/80a9cd9620fddf2695d12d8386a91e7c6b145ef2/.github/workflows/deploy-latest.yml#L41-L42", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907695234, "label": "Deploy failing with \"plugins/alternative_route.py: Not a directory\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2194#issuecomment-1730241813", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2194", "id": 1730241813, "node_id": "IC_kwDOBm6k_c5nIWUV", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:18:40Z", "updated_at": "2023-09-21T20:18:40Z", "author_association": "OWNER", "body": "This looks to be the step that is failing:\r\n\r\nhttps://github.com/simonw/datasette/blob/80a9cd9620fddf2695d12d8386a91e7c6b145ef2/.github/workflows/deploy-latest.yml#L50-L60", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907695234, "label": "Deploy failing with \"plugins/alternative_route.py: Not a directory\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2189#issuecomment-1730232308", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2189", "id": 1730232308, "node_id": "IC_kwDOBm6k_c5nIT_0", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:11:16Z", "updated_at": "2023-09-21T20:11:16Z", "author_association": "OWNER", "body": "We're planning a breaking change in `1.0a7`:\r\n- #2191 \r\n\r\nSince that's a breaking change I'm going to ship 1.0a7 right now with this fix, then ship that breaking change as `1.0a8` instead.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1901416155, "label": "Server hang on parallel execution of queries to named in-memory databases"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2189#issuecomment-1730231404", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2189", "id": 1730231404, "node_id": "IC_kwDOBm6k_c5nITxs", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-09-21T20:10:28Z", "updated_at": "2023-09-21T20:10:28Z", "author_association": "OWNER", "body": "Release 0.64.4: https://docs.datasette.io/en/stable/changelog.html#v0-64-4", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1901416155, "label": "Server hang on parallel execution of queries to named in-memory databases"}, "performed_via_github_app": null}