github
html_url | issue_url | id | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/datasette/pull/2056#issuecomment-1506485287 | https://api.github.com/repos/simonw/datasette/issues/2056 | 1506485287 | IC_kwDOBm6k_c5ZyyQn | 3709715 | 2023-04-13T07:29:38Z | 2023-04-13T07:41:55Z | NONE | Ruff (written in Rust, not Python) is a 23MB executable so the time to download and pip install it dwarfs its runtime. Let's run ruff with and without GitHub Actions pip cache side-by-side to see the relative performance. Once 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. There are two great problems in computer science: ;-) 1. Naming things 2. Cache invalidation 3. Off-by-one errors For 2., https://github.com/actions/setup-python#caching-packages-dependencies is vital reading. Only _exactly pinned requirements_ can be cached. Currently in `setup.py` the only pinned dependencies are: 1. Sphinx==6.1.3 2. furo==2023.3.27 3. black==23.3.0 4. blacken-docs==1.13.0 # but unpinned elsewhere in `setup.py` This means that there will be very few cache hits in the current actions. See the link below to print out cache hits: https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#cache-hit > 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 I 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. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1661860507 | |
https://github.com/simonw/datasette/pull/2056#issuecomment-1506179555 | https://api.github.com/repos/simonw/datasette/issues/2056 | 1506179555 | IC_kwDOBm6k_c5Zxnnj | 9599 | 2023-04-13T01:21:05Z | 2023-04-13T01:22:08Z | OWNER | OK, I'm sold - this is a really neat improvement. One thing to change in the PR: right now it runs `pip install --user ruff` on every commit, which hits PyPI to install the package. I prefer to avoid hitting PyPI every time, so I like to use the GitHub Actions cache. My usual pattern for that looks like this: https://github.com/simonw/datasette/blob/5890a20c374fb0812d88c9b0ef26a838bfa06c76/.github/workflows/test-pyodide.yml#L16-L20 Then a separate command that runs `pip install ...` will benefit from that cache. Are you OK to make that change? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1661860507 | |
https://github.com/simonw/datasette/pull/2056#issuecomment-1506177857 | https://api.github.com/repos/simonw/datasette/issues/2056 | 1506177857 | IC_kwDOBm6k_c5ZxnNB | 9599 | 2023-04-13T01:18:18Z | 2023-04-13T01:18:18Z | OWNER | Cool - and now https://github.com/simonw/datasette/pull/2056/files is showing me those inline annotations: <img width="868" alt="image" src="https://user-images.githubusercontent.com/9599/231620660-4843d113-b671-494e-8265-24226446abba.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1661860507 | |
https://github.com/simonw/datasette/pull/2056#issuecomment-1506177115 | https://api.github.com/repos/simonw/datasette/issues/2056 | 1506177115 | IC_kwDOBm6k_c5ZxnBb | 9599 | 2023-04-13T01:17:16Z | 2023-04-13T01:17:16Z | OWNER | Here are the failures: https://github.com/simonw/datasette/actions/runs/4684460653/jobs/8300630794?pr=2056 <img width="902" alt="CleanShot 2023-04-12 at 18 16 45@2x" src="https://user-images.githubusercontent.com/9599/231620533-bce286b7-8173-4a61-aac1-b772832fb893.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1661860507 | |
https://github.com/simonw/datasette/pull/2056#issuecomment-1506175208 | https://api.github.com/repos/simonw/datasette/issues/2056 | 1506175208 | IC_kwDOBm6k_c5Zxmjo | 9599 | 2023-04-13T01:14:13Z | 2023-04-13T01:14:13Z | OWNER | https://github.com/simonw/datasette/actions/runs/4664796647/jobs/8300596121?pr=2056 it's pretty fast - that finished in 9s. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1661860507 |