{"html_url": "https://github.com/simonw/datasette/issues/2059#issuecomment-1506174353", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2059", "id": 1506174353, "node_id": "IC_kwDOBm6k_c5ZxmWR", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-04-13T01:13:00Z", "updated_at": "2023-04-13T01:13:00Z", "author_association": "OWNER", "body": "Can you provide a URL to an example, and/or a screenshot of this? Is it a browser warning or is it a warning from Heroku itself?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1665053646, "label": "\"Deceptive site ahead\" alert on Heroku deployment"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2056#issuecomment-1506175208", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2056", "id": 1506175208, "node_id": "IC_kwDOBm6k_c5Zxmjo", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-04-13T01:14:13Z", "updated_at": "2023-04-13T01:14:13Z", "author_association": "OWNER", "body": "https://github.com/simonw/datasette/actions/runs/4664796647/jobs/8300596121?pr=2056 it's pretty fast - that finished in 9s.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1661860507, "label": "GitHub Action to lint Python code with ruff"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2056#issuecomment-1506177115", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2056", "id": 1506177115, "node_id": "IC_kwDOBm6k_c5ZxnBb", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-04-13T01:17:16Z", "updated_at": "2023-04-13T01:17:16Z", "author_association": "OWNER", "body": "Here are the failures: https://github.com/simonw/datasette/actions/runs/4684460653/jobs/8300630794?pr=2056\r\n\r\n\"CleanShot\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1661860507, "label": "GitHub Action to lint Python code with ruff"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2056#issuecomment-1506177857", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2056", "id": 1506177857, "node_id": "IC_kwDOBm6k_c5ZxnNB", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-04-13T01:18:18Z", "updated_at": "2023-04-13T01:18:18Z", "author_association": "OWNER", "body": "Cool - and now https://github.com/simonw/datasette/pull/2056/files is showing me those inline annotations:\r\n\r\n\"image\"\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1661860507, "label": "GitHub Action to lint Python code with ruff"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2056#issuecomment-1506179555", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2056", "id": 1506179555, "node_id": "IC_kwDOBm6k_c5Zxnnj", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-04-13T01:21:05Z", "updated_at": "2023-04-13T01:22:08Z", "author_association": "OWNER", "body": "OK, I'm sold - this is a really neat improvement.\r\n\r\nOne thing to change in the PR: right now it runs `pip install --user ruff` on every commit, which hits PyPI to install the package.\r\n\r\nI prefer to avoid hitting PyPI every time, so I like to use the GitHub Actions cache. My usual pattern for that looks like this:\r\n\r\nhttps://github.com/simonw/datasette/blob/5890a20c374fb0812d88c9b0ef26a838bfa06c76/.github/workflows/test-pyodide.yml#L16-L20\r\n\r\nThen a separate command that runs `pip install ...` will benefit from that cache.\r\n\r\nAre you OK to make that change?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1661860507, "label": "GitHub Action to lint Python code with ruff"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/537#issuecomment-1506200813", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/537", "id": 1506200813, "node_id": "IC_kwDOCGYnMM5Zxszt", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2023-04-13T01:45:22Z", "updated_at": "2023-04-13T01:45:22Z", "author_association": "NONE", "body": "## [Codecov](https://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\nPatch coverage: **`100.00`**% and no project coverage change.\n> Comparison is base [(`c0251cc`)](https://codecov.io/gh/simonw/sqlite-utils/commit/c0251cc9271260de73b4227859a51fab9b4cb745?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.25% compared to head [(`a75abeb`)](https://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) 96.25%.\n\n
Additional details and impacted files\n\n\n```diff\n@@ Coverage Diff @@\n## main #537 +/- ##\n=======================================\n Coverage 96.25% 96.25% \n=======================================\n Files 6 6 \n Lines 2671 2673 +2 \n=======================================\n+ Hits 2571 2573 +2 \n Misses 100 100 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/sqlite-utils/pull/537?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://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-c3FsaXRlX3V0aWxzL2RiLnB5) | `97.33% <100.00%> (+<0.01%)` | :arrow_up: |\n\nHelp us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n\n
\n\n[:umbrella: View full report in Codecov by Sentry](https://codecov.io/gh/simonw/sqlite-utils/pull/537?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). \n:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](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": 1665200812, "label": "Support self-referencing FKs in `Table.create`"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2058#issuecomment-1506203550", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2058", "id": 1506203550, "node_id": "IC_kwDOBm6k_c5Zxtee", "user": {"value": 547438, "label": "cephillips"}, "created_at": "2023-04-13T01:48:21Z", "updated_at": "2023-04-13T01:48:21Z", "author_association": "NONE", "body": "Really interesting how you are using ChatGPT in this.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1663399821, "label": "500 \"attempt to write a readonly database\" error caused by \"PRAGMA schema_version\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/527#issuecomment-1506223848", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/527", "id": 1506223848, "node_id": "IC_kwDOCGYnMM5Zxybo", "user": {"value": 9599, "label": "simonw"}, "created_at": "2023-04-13T02:08:16Z", "updated_at": "2023-04-13T02:08:16Z", "author_association": "OWNER", "body": "I agree, this is a design flaw.\r\n\r\nIt's technically a breaking change. As such, I would need to bump to v4 to responsibly release this.\r\n\r\nI'd rather bundle in a few more breaking changes before shipping that version.\r\n\r\nOne thing we could do here is add an extra argument to `.convert()` - something like this:\r\n\r\n```python\r\ntable.convert(col, lambda x: x+1, skip_false=False)\r\n```\r\n\r\nThis would trigger the new, improved behaviour without breaking existing code that depends on how it works at the moment.\r\n\r\nThen in `sqlite-utils` 4 we can change the default of that option.\r\n\r\nWhat do you think?\r\n\r\n(I'm open to suggestions for better names for this parameter too)", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1578790070, "label": "`Table.convert()` skips falsey values"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2056#issuecomment-1506485287", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2056", "id": 1506485287, "node_id": "IC_kwDOBm6k_c5ZyyQn", "user": {"value": 3709715, "label": "cclauss"}, "created_at": "2023-04-13T07:29:38Z", "updated_at": "2023-04-13T07:41:55Z", "author_association": "NONE", "body": "Ruff (written in Rust, not Python) is a 23MB executable so the time to download and pip install it dwarfs its runtime.\r\n\r\nLet's run ruff with and without GitHub Actions pip cache side-by-side to see the relative performance.\r\n\r\nOnce you approve the workflows below, `ruff_with_cache` should echo `cache-hit = false` but if you rerun that job hopefully it should echo `cache-hit = true`. That will be the execution time that we are interested to compare.\r\n\r\nThere are two great problems in computer science: ;-)\r\n1. Naming things\r\n2. Cache invalidation\r\n3. Off-by-one errors\r\n\r\nFor 2., https://github.com/actions/setup-python#caching-packages-dependencies is vital reading.\r\nOnly _exactly pinned requirements_ can be cached. Currently in `setup.py` the only pinned dependencies are:\r\n1. Sphinx==6.1.3\r\n2. furo==2023.3.27\r\n3. black==23.3.0\r\n4. blacken-docs==1.13.0 # but unpinned elsewhere in `setup.py`\r\n\r\nThis means that there will be very few cache hits in the current actions. See the link below to print out cache hits:\r\nhttps://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#cache-hit\r\n\r\n> PyPI uses Fastly's CDN to quickly serve content to end-users, allowing us to minimize our hosting infrastructure and obscure possible downtime. -- https://pypi.org/sponsors\r\n\r\nI would be shocked if Fastly does not have beefy CDN nodes in the same datacenters where GitHub Actions run so GHA requests to download `ruff` probably never hit a PyPI server.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1661860507, "label": "GitHub Action to lint Python code with ruff"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2058#issuecomment-1507264934", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2058", "id": 1507264934, "node_id": "IC_kwDOBm6k_c5Z1wmm", "user": {"value": 1138559, "label": "esagara"}, "created_at": "2023-04-13T16:35:21Z", "updated_at": "2023-04-13T16:35:21Z", "author_association": "NONE", "body": "I tried deploying the fix you submitted, but still getting the same errors. I can past the logs here if needed, but I really don't see anything new in them.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1663399821, "label": "500 \"attempt to write a readonly database\" error caused by \"PRAGMA schema_version\""}, "performed_via_github_app": null}