issue_comments
8,883 rows where user = 9599 sorted by updated_at descending
This data as json, CSV (advanced)
user 1
- simonw · 3,079 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
675751136 | https://github.com/simonw/datasette/issues/915#issuecomment-675751136 | https://api.github.com/repos/simonw/datasette/issues/915 | MDEyOklzc3VlQ29tbWVudDY3NTc1MTEzNg== | simonw 9599 | 2020-08-18T22:28:36Z | 2020-08-18T22:28:36Z | OWNER | I'm closing this in favour of an internal requests mechanism in #943. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView class so things like datasette-graphql can reuse the logic 671763164 | |
675750845 | https://github.com/simonw/datasette/issues/943#issuecomment-675750845 | https://api.github.com/repos/simonw/datasette/issues/943 | MDEyOklzc3VlQ29tbWVudDY3NTc1MDg0NQ== | simonw 9599 | 2020-08-18T22:27:43Z | 2020-08-18T22:27:43Z | OWNER | What about authentication checks etc? Won't they run twice? I think that's OK too, in fact it's desirable: think of the case of |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
await datasette.client.get(path) mechanism for executing internal requests 681375466 | |
675750382 | https://github.com/simonw/datasette/issues/943#issuecomment-675750382 | https://api.github.com/repos/simonw/datasette/issues/943 | MDEyOklzc3VlQ29tbWVudDY3NTc1MDM4Mg== | simonw 9599 | 2020-08-18T22:26:15Z | 2020-08-18T22:26:15Z | OWNER | Should internal requests executed in this way be handled by plugins that used the Hard to be sure one way or the other. I'm worried about logging middleware triggering twice - but actually anyone doing serious logging of their Datasette instance is probably doing it in a different layer (uvicorn logs or nginx proxy or whatever) so they wouldn't be affected. There aren't any ASGI logging middlewares out there that I've seen. Also: if you run into a situation where your stuff is breaking because So I think it DOES execute |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
await datasette.client.get(path) mechanism for executing internal requests 681375466 | |
675749319 | https://github.com/simonw/datasette/issues/943#issuecomment-675749319 | https://api.github.com/repos/simonw/datasette/issues/943 | MDEyOklzc3VlQ29tbWVudDY3NTc0OTMxOQ== | simonw 9599 | 2020-08-18T22:23:01Z | 2020-08-18T22:23:01Z | OWNER | Actually no -
(I'll probably add |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
await datasette.client.get(path) mechanism for executing internal requests 681375466 | |
675749076 | https://github.com/simonw/datasette/issues/943#issuecomment-675749076 | https://api.github.com/repos/simonw/datasette/issues/943 | MDEyOklzc3VlQ29tbWVudDY3NTc0OTA3Ng== | simonw 9599 | 2020-08-18T22:22:21Z | 2020-08-18T22:22:21Z | OWNER | Alternative name possibilities:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
await datasette.client.get(path) mechanism for executing internal requests 681375466 | |
675748573 | https://github.com/simonw/datasette/issues/943#issuecomment-675748573 | https://api.github.com/repos/simonw/datasette/issues/943 | MDEyOklzc3VlQ29tbWVudDY3NTc0ODU3Mw== | simonw 9599 | 2020-08-18T22:20:52Z | 2020-08-18T22:20:52Z | OWNER | Should it default to treating things as if they had the I think I'm OK with people having to add |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
await datasette.client.get(path) mechanism for executing internal requests 681375466 | |
675747878 | https://github.com/simonw/datasette/issues/943#issuecomment-675747878 | https://api.github.com/repos/simonw/datasette/issues/943 | MDEyOklzc3VlQ29tbWVudDY3NTc0Nzg3OA== | simonw 9599 | 2020-08-18T22:18:46Z | 2020-08-18T22:19:12Z | OWNER | Could be as simple as Bit weird calling it |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
await datasette.client.get(path) mechanism for executing internal requests 681375466 | |
675746544 | https://github.com/simonw/datasette/issues/915#issuecomment-675746544 | https://api.github.com/repos/simonw/datasette/issues/915 | MDEyOklzc3VlQ29tbWVudDY3NTc0NjU0NA== | simonw 9599 | 2020-08-18T22:14:41Z | 2020-08-18T22:14:41Z | OWNER | I'm actually pretty happy with how I just did a horrible hack here that simulates an internal request, so supporting them as a feature would definitely make sense: https://github.com/natbat/tidepools_near_me/commit/ec102c6da5a5d86f17628740d90b6365b671b5e1 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView class so things like datasette-graphql can reuse the logic 671763164 | |
675725464 | https://github.com/simonw/datasette/issues/268#issuecomment-675725464 | https://api.github.com/repos/simonw/datasette/issues/268 | MDEyOklzc3VlQ29tbWVudDY3NTcyNTQ2NA== | simonw 9599 | 2020-08-18T21:18:07Z | 2020-08-18T21:18:35Z | OWNER | I want this on the table page - but that means that the table page will need to run a slightly more complex query since it needs access to a BUT... that join needs to be constructed in a way that keeps existing filters, Here's a prototype using SQLite CTEs: https://register-of-members-interests.datasettes.com/regmem?sql=with+original+as+%28select+rowid%2C++from+items%29%0D%0Aselect%0D%0A++original.%2C%0D%0A++items_fts.rank+as+items_fts_rank%0D%0Afrom%0D%0A++original+join+items_fts+on+original.rowid+%3D+items_fts.rowid%0D%0Awhere%0D%0A++items_fts+match+escape_fts%28%3Asearch%29%0D%0Aorder+by+items_fts_rank+desc+limit+10&search=hotel
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for ranking results from SQLite full-text search 323718842 | |
675720040 | https://github.com/simonw/datasette/issues/942#issuecomment-675720040 | https://api.github.com/repos/simonw/datasette/issues/942 | MDEyOklzc3VlQ29tbWVudDY3NTcyMDA0MA== | simonw 9599 | 2020-08-18T21:05:24Z | 2020-08-18T21:05:24Z | OWNER | Is Alternative names:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
675718593 | https://github.com/simonw/datasette/issues/942#issuecomment-675718593 | https://api.github.com/repos/simonw/datasette/issues/942 | MDEyOklzc3VlQ29tbWVudDY3NTcxODU5Mw== | simonw 9599 | 2020-08-18T21:02:11Z | 2020-08-18T21:02:24Z | OWNER | Easiest solution: if you provide column metadata it gets displayed above the table, something like on https://fivethirtyeight.datasettes.com/fivethirtyeight/antiquities-act%2Factions_under_antiquities_act HTML |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
675715472 | https://github.com/simonw/datasette/issues/942#issuecomment-675715472 | https://api.github.com/repos/simonw/datasette/issues/942 | MDEyOklzc3VlQ29tbWVudDY3NTcxNTQ3Mg== | simonw 9599 | 2020-08-18T20:55:02Z | 2020-08-18T20:55:02Z | OWNER | Could display these as tooltips on icons something like this (from the experimental This would need to take accessibility into account, and would need a different display for the mobile web layout. Need to consider how it will interact with the column menu suggested in #690. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
675610275 | https://github.com/simonw/datasette/issues/873#issuecomment-675610275 | https://api.github.com/repos/simonw/datasette/issues/873 | MDEyOklzc3VlQ29tbWVudDY3NTYxMDI3NQ== | simonw 9599 | 2020-08-18T17:24:05Z | 2020-08-18T17:26:10Z | OWNER | Maybe I can do this with ASGI after all. Here's the output of |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"datasette -p 0 --root" gives the wrong URL 647095487 | |
675609109 | https://github.com/simonw/datasette/issues/873#issuecomment-675609109 | https://api.github.com/repos/simonw/datasette/issues/873 | MDEyOklzc3VlQ29tbWVudDY3NTYwOTEwOQ== | simonw 9599 | 2020-08-18T17:21:51Z | 2020-08-18T17:21:51Z | OWNER | Asked about this on the encode gitter here: https://gitter.im/encode/community?at=5f3c0dcaa8c17801765940c0 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"datasette -p 0 --root" gives the wrong URL 647095487 | |
675538586 | https://github.com/simonw/datasette/issues/940#issuecomment-675538586 | https://api.github.com/repos/simonw/datasette/issues/940 | MDEyOklzc3VlQ29tbWVudDY3NTUzODU4Ng== | simonw 9599 | 2020-08-18T15:11:36Z | 2020-08-18T15:11:36Z | OWNER | I tested this new publish pattern (running the tests in parallel before the deploy step) on |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move CI to GitHub Issues 679808124 | |
675523053 | https://github.com/dogsheep/github-to-sqlite/issues/47#issuecomment-675523053 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/47 | MDEyOklzc3VlQ29tbWVudDY3NTUyMzA1Mw== | simonw 9599 | 2020-08-18T14:45:53Z | 2020-08-18T14:45:53Z | MEMBER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
emojis command 681086659 | |
675509550 | https://github.com/dogsheep/github-to-sqlite/issues/39#issuecomment-675509550 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/39 | MDEyOklzc3VlQ29tbWVudDY3NTUwOTU1MA== | simonw 9599 | 2020-08-18T14:23:56Z | 2020-08-18T14:23:56Z | MEMBER | I think this is fixed: https://github-to-sqlite.dogsheep.net/github/issues?_facet=repo |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
issues foreign key to repo isn't working 613777056 | |
675259273 | https://github.com/dogsheep/github-to-sqlite/issues/46#issuecomment-675259273 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/46 | MDEyOklzc3VlQ29tbWVudDY3NTI1OTI3Mw== | simonw 9599 | 2020-08-18T05:28:32Z | 2020-08-18T05:28:32Z | MEMBER | Oh that's interesting - i didn't realize "reviews" were a separate concept. I'd definitely accept a pull request adding those! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Feature: pull request reviews and comments 664485022 | |
675253373 | https://github.com/simonw/datasette/issues/940#issuecomment-675253373 | https://api.github.com/repos/simonw/datasette/issues/940 | MDEyOklzc3VlQ29tbWVudDY3NTI1MzM3Mw== | simonw 9599 | 2020-08-18T05:10:17Z | 2020-08-18T05:10:17Z | OWNER | I'll close this after the next release successfully goes out. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move CI to GitHub Issues 679808124 | |
675251613 | https://github.com/simonw/datasette/issues/940#issuecomment-675251613 | https://api.github.com/repos/simonw/datasette/issues/940 | MDEyOklzc3VlQ29tbWVudDY3NTI1MTYxMw== | simonw 9599 | 2020-08-18T05:05:15Z | 2020-08-18T05:05:15Z | OWNER | I think this is ready. I'll only know for sure the first time I push a release through it though! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move CI to GitHub Issues 679808124 | |
674590583 | https://github.com/simonw/datasette/issues/940#issuecomment-674590583 | https://api.github.com/repos/simonw/datasette/issues/940 | MDEyOklzc3VlQ29tbWVudDY3NDU5MDU4Mw== | simonw 9599 | 2020-08-16T23:15:51Z | 2020-08-18T05:04:43Z | OWNER | This example of jobs depending on each other and sharing data via artifacts looks relevant: https://docs.github.com/en/actions/configuring-and-managing-workflows/persisting-workflow-data-using-artifacts#passing-data-between-jobs-in-a-workflow |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move CI to GitHub Issues 679808124 | |
675250280 | https://github.com/simonw/datasette/issues/940#issuecomment-675250280 | https://api.github.com/repos/simonw/datasette/issues/940 | MDEyOklzc3VlQ29tbWVudDY3NTI1MDI4MA== | simonw 9599 | 2020-08-18T05:01:34Z | 2020-08-18T05:01:42Z | OWNER | I think |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move CI to GitHub Issues 679808124 | |
674589472 | https://github.com/simonw/datasette/issues/940#issuecomment-674589472 | https://api.github.com/repos/simonw/datasette/issues/940 | MDEyOklzc3VlQ29tbWVudDY3NDU4OTQ3Mg== | simonw 9599 | 2020-08-16T23:05:57Z | 2020-08-16T23:05:57Z | OWNER | When I figure this out I'll update the https://github.com/simonw/datasette-plugin/blob/main/datasette-%7B%7Bcookiecutter.hyphenated%7D%7D/.github/workflows/publish.yml default workflow to do this - right now it runs the tests once on just a single version of Python as part of the package deploy to PyPI step. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move CI to GitHub Issues 679808124 | |
674589321 | https://github.com/simonw/datasette/issues/940#issuecomment-674589321 | https://api.github.com/repos/simonw/datasette/issues/940 | MDEyOklzc3VlQ29tbWVudDY3NDU4OTMyMQ== | simonw 9599 | 2020-08-16T23:04:34Z | 2020-08-16T23:04:34Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move CI to GitHub Issues 679808124 | |
674589035 | https://github.com/simonw/datasette/issues/940#issuecomment-674589035 | https://api.github.com/repos/simonw/datasette/issues/940 | MDEyOklzc3VlQ29tbWVudDY3NDU4OTAzNQ== | simonw 9599 | 2020-08-16T23:02:23Z | 2020-08-16T23:02:23Z | OWNER | I'd like to set these up as different workflows that depend on each other, if that's possible. I want to start three test runs in parallel (on three different Python versions), then if all three pass kick off the PyPI push (without running more tests), then if that passes do the Docker build and push. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move CI to GitHub Issues 679808124 | |
674578388 | https://github.com/simonw/datasette/issues/914#issuecomment-674578388 | https://api.github.com/repos/simonw/datasette/issues/914 | MDEyOklzc3VlQ29tbWVudDY3NDU3ODM4OA== | simonw 9599 | 2020-08-16T21:10:27Z | 2020-08-16T21:10:27Z | OWNER | Demo of the fix: https://latest.datasette.io/fixtures/binary_data.json?_sort_desc=data&_shape=array&_nl=on
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Object of type bytes is not JSON serializable" for _nl=on 671056788 | |
674566618 | https://github.com/simonw/datasette/issues/940#issuecomment-674566618 | https://api.github.com/repos/simonw/datasette/issues/940 | MDEyOklzc3VlQ29tbWVudDY3NDU2NjYxOA== | simonw 9599 | 2020-08-16T19:20:58Z | 2020-08-16T19:20:58Z | OWNER | I need to figure out how to build and push the Docker image on releases. Here's the Travis code for that: https://github.com/simonw/datasette/blob/52eabb019d4051084b21524bd0fd9c2731126985/.travis.yml#L38-L47 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move CI to GitHub Issues 679808124 | |
674558631 | https://github.com/simonw/datasette/issues/938#issuecomment-674558631 | https://api.github.com/repos/simonw/datasette/issues/938 | MDEyOklzc3VlQ29tbWVudDY3NDU1ODYzMQ== | simonw 9599 | 2020-08-16T18:10:23Z | 2020-08-16T18:10:23Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pass columns to extra CSS/JS/etc plugin hooks 679700269 | ||
674551826 | https://github.com/simonw/datasette/issues/938#issuecomment-674551826 | https://api.github.com/repos/simonw/datasette/issues/938 | MDEyOklzc3VlQ29tbWVudDY3NDU1MTgyNg== | simonw 9599 | 2020-08-16T17:07:57Z | 2020-08-16T17:07:57Z | OWNER | extra_tenplate_vars should he documented first and should be the only one to document the arguments and the async return feature. Others should refer back to it rather than duplicating that. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pass columns to extra CSS/JS/etc plugin hooks 679700269 | |
674548163 | https://github.com/simonw/datasette/issues/939#issuecomment-674548163 | https://api.github.com/repos/simonw/datasette/issues/939 | MDEyOklzc3VlQ29tbWVudDY3NDU0ODE2Mw== | simonw 9599 | 2020-08-16T16:34:30Z | 2020-08-16T16:34:30Z | OWNER | Docs also need to note that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
extra_ plugin hooks should take the same arguments 679779797 | |
674547811 | https://github.com/simonw/datasette/issues/939#issuecomment-674547811 | https://api.github.com/repos/simonw/datasette/issues/939 | MDEyOklzc3VlQ29tbWVudDY3NDU0NzgxMQ== | simonw 9599 | 2020-08-16T16:31:20Z | 2020-08-16T16:31:20Z | OWNER | And the docs need to be updated too. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
extra_ plugin hooks should take the same arguments 679779797 | |
674547788 | https://github.com/simonw/datasette/issues/939#issuecomment-674547788 | https://api.github.com/repos/simonw/datasette/issues/939 | MDEyOklzc3VlQ29tbWVudDY3NDU0Nzc4OA== | simonw 9599 | 2020-08-16T16:31:08Z | 2020-08-16T16:31:08Z | OWNER | Also: they should all be able to return |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
extra_ plugin hooks should take the same arguments 679779797 | |
674545058 | https://github.com/simonw/datasette/issues/939#issuecomment-674545058 | https://api.github.com/repos/simonw/datasette/issues/939 | MDEyOklzc3VlQ29tbWVudDY3NDU0NTA1OA== | simonw 9599 | 2020-08-16T16:07:20Z | 2020-08-16T16:07:20Z | OWNER | I'm going to implement this first as a single commit, then implement |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
extra_ plugin hooks should take the same arguments 679779797 | |
674544973 | https://github.com/simonw/datasette/issues/939#issuecomment-674544973 | https://api.github.com/repos/simonw/datasette/issues/939 | MDEyOklzc3VlQ29tbWVudDY3NDU0NDk3Mw== | simonw 9599 | 2020-08-16T16:06:34Z | 2020-08-16T16:06:34Z | OWNER | They should also be next to each other in the documentation - right now they're a bit scattered in terms of page order: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
extra_ plugin hooks should take the same arguments 679779797 | |
674544875 | https://github.com/simonw/datasette/issues/939#issuecomment-674544875 | https://api.github.com/repos/simonw/datasette/issues/939 | MDEyOklzc3VlQ29tbWVudDY3NDU0NDg3NQ== | simonw 9599 | 2020-08-16T16:05:36Z | 2020-08-16T16:05:36Z | OWNER | They should all take:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
extra_ plugin hooks should take the same arguments 679779797 | |
674544691 | https://github.com/simonw/datasette/issues/938#issuecomment-674544691 | https://api.github.com/repos/simonw/datasette/issues/938 | MDEyOklzc3VlQ29tbWVudDY3NDU0NDY5MQ== | simonw 9599 | 2020-08-16T16:03:52Z | 2020-08-16T16:03:52Z | OWNER | Four plugin hooks need this extra
It's weird that these take different arguments. I should fix that too. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pass columns to extra CSS/JS/etc plugin hooks 679700269 | |
674453318 | https://github.com/simonw/datasette/pull/936#issuecomment-674453318 | https://api.github.com/repos/simonw/datasette/issues/936 | MDEyOklzc3VlQ29tbWVudDY3NDQ1MzMxOA== | simonw 9599 | 2020-08-15T22:29:15Z | 2020-08-15T22:32:58Z | OWNER | Test failure: ``` tests/test_canned_queries.py F
canned_write_client = <datasette.utils.testing.TestClient object at 0x108ec5040>
/Users/simon/Dropbox/Development/datasette/tests/test_canned_queries.py:66: AssertionError ``` No idea why this change would affect that test. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Don't hang in db.execute_write_fn() if connection fails 679650632 | |
674451012 | https://github.com/simonw/datasette/issues/935#issuecomment-674451012 | https://api.github.com/repos/simonw/datasette/issues/935 | MDEyOklzc3VlQ29tbWVudDY3NDQ1MTAxMg== | simonw 9599 | 2020-08-15T21:56:13Z | 2020-08-15T21:56:13Z | OWNER | This implementation seems to fix it, need to work out how to test though. ```diff diff --git a/datasette/database.py b/datasette/database.py index ffa7a79..7ba1456 100644 --- a/datasette/database.py +++ b/datasette/database.py @@ -89,14 +89,22 @@ class Database: def _execute_writes(self): # Infinite looping thread that protects the single write connection # to this database - conn = self.connect(write=True) + conn_exception = None + conn = None + try: + conn = self.connect(write=True) + except Exception as e: + conn_exception = e while True: task = self._write_queue.get() - try: - result = task.fn(conn) - except Exception as e: - print(e) - result = e + if conn_exception is not None: + result = conn_exception + else: + try: + result = task.fn(conn) + except Exception as e: + print(e) + result = e task.reply_queue.sync_q.put(result)
``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
db.execute_write_fn(create_tables, block=True) hangs a thread if connection fails 679646710 | |
674450652 | https://github.com/simonw/datasette/issues/935#issuecomment-674450652 | https://api.github.com/repos/simonw/datasette/issues/935 | MDEyOklzc3VlQ29tbWVudDY3NDQ1MDY1Mg== | simonw 9599 | 2020-08-15T21:51:22Z | 2020-08-15T21:51:22Z | OWNER | The easiest way to recreate this is to attempt a write against an immutable database, which triggers this assertion error: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
db.execute_write_fn(create_tables, block=True) hangs a thread if connection fails 679646710 | |
674450607 | https://github.com/simonw/datasette/issues/935#issuecomment-674450607 | https://api.github.com/repos/simonw/datasette/issues/935 | MDEyOklzc3VlQ29tbWVudDY3NDQ1MDYwNw== | simonw 9599 | 2020-08-15T21:50:41Z | 2020-08-15T21:50:41Z | OWNER | The bug is here: If ... server hangs here ... ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
db.execute_write_fn(create_tables, block=True) hangs a thread if connection fails 679646710 | |
674144798 | https://github.com/simonw/datasette/issues/932#issuecomment-674144798 | https://api.github.com/repos/simonw/datasette/issues/932 | MDEyOklzc3VlQ29tbWVudDY3NDE0NDc5OA== | simonw 9599 | 2020-08-14T16:02:24Z | 2020-08-14T16:02:24Z | OWNER | Things to go in here:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
End-user documentation 678760988 | |
673735299 | https://github.com/simonw/datasette/issues/932#issuecomment-673735299 | https://api.github.com/repos/simonw/datasette/issues/932 | MDEyOklzc3VlQ29tbWVudDY3MzczNTI5OQ== | simonw 9599 | 2020-08-13T22:10:40Z | 2020-08-13T22:11:06Z | OWNER | Idea: plugins can provide their own user-facing documentation. Datasette can like to eg Or... link to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
End-user documentation 678760988 | |
673734387 | https://github.com/simonw/datasette/issues/932#issuecomment-673734387 | https://api.github.com/repos/simonw/datasette/issues/932 | MDEyOklzc3VlQ29tbWVudDY3MzczNDM4Nw== | simonw 9599 | 2020-08-13T22:08:06Z | 2020-08-13T22:08:06Z | OWNER | One challenge: how does this interact with plugins? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
End-user documentation 678760988 | |
673733904 | https://github.com/simonw/datasette/issues/932#issuecomment-673733904 | https://api.github.com/repos/simonw/datasette/issues/932 | MDEyOklzc3VlQ29tbWVudDY3MzczMzkwNA== | simonw 9599 | 2020-08-13T22:06:50Z | 2020-08-13T22:06:50Z | OWNER | Title: Using Datasette. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
End-user documentation 678760988 | |
673123213 | https://github.com/simonw/datasette/issues/931#issuecomment-673123213 | https://api.github.com/repos/simonw/datasette/issues/931 | MDEyOklzc3VlQ29tbWVudDY3MzEyMzIxMw== | simonw 9599 | 2020-08-12T21:36:20Z | 2020-08-12T21:36:20Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Docker container is no longer being pushed (it's stuck on 0.45) 677926613 | ||
673104851 | https://github.com/simonw/datasette/issues/931#issuecomment-673104851 | https://api.github.com/repos/simonw/datasette/issues/931 | MDEyOklzc3VlQ29tbWVudDY3MzEwNDg1MQ== | simonw 9599 | 2020-08-12T20:52:08Z | 2020-08-12T20:52:08Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Docker container is no longer being pushed (it's stuck on 0.45) 677926613 | |
673088110 | https://github.com/simonw/datasette/issues/931#issuecomment-673088110 | https://api.github.com/repos/simonw/datasette/issues/931 | MDEyOklzc3VlQ29tbWVudDY3MzA4ODExMA== | simonw 9599 | 2020-08-12T20:15:28Z | 2020-08-12T20:15:28Z | OWNER | I changed the Dockerfile and built it on my laptop using:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Docker container is no longer being pushed (it's stuck on 0.45) 677926613 | |
673074297 | https://github.com/simonw/datasette/issues/931#issuecomment-673074297 | https://api.github.com/repos/simonw/datasette/issues/931 | MDEyOklzc3VlQ29tbWVudDY3MzA3NDI5Nw== | simonw 9599 | 2020-08-12T19:46:29Z | 2020-08-12T19:46:29Z | OWNER | Looks like the old files have moved to: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Docker container is no longer being pushed (it's stuck on 0.45) 677926613 | |
673070308 | https://github.com/simonw/datasette/issues/931#issuecomment-673070308 | https://api.github.com/repos/simonw/datasette/issues/931 | MDEyOklzc3VlQ29tbWVudDY3MzA3MDMwOA== | simonw 9599 | 2020-08-12T19:37:55Z | 2020-08-12T19:37:55Z | OWNER | Project news here: https://groups.google.com/g/spatialite-users/c/8AG3hQzXDmo
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Docker container is no longer being pushed (it's stuck on 0.45) 677926613 | |
673068919 | https://github.com/simonw/datasette/issues/931#issuecomment-673068919 | https://api.github.com/repos/simonw/datasette/issues/931 | MDEyOklzc3VlQ29tbWVudDY3MzA2ODkxOQ== | simonw 9599 | 2020-08-12T19:34:57Z | 2020-08-12T19:34:57Z | OWNER | Looks like SpatiaLite released new versions: https://www.gaia-gis.it/fossil/freexl/index says "Sources: current version is 1.0.6 (released on 2020-08-02)" and links to http://www.gaia-gis.it/gaia-sins/freexl-1.0.6.tar.gz |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Docker container is no longer being pushed (it's stuck on 0.45) 677926613 | |
673068327 | https://github.com/simonw/datasette/issues/931#issuecomment-673068327 | https://api.github.com/repos/simonw/datasette/issues/931 | MDEyOklzc3VlQ29tbWVudDY3MzA2ODMyNw== | simonw 9599 | 2020-08-12T19:33:42Z | 2020-08-12T19:33:42Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Docker container is no longer being pushed (it's stuck on 0.45) 677926613 | ||
672997703 | https://github.com/simonw/sqlite-utils/issues/133#issuecomment-672997703 | https://api.github.com/repos/simonw/sqlite-utils/issues/133 | MDEyOklzc3VlQ29tbWVudDY3Mjk5NzcwMw== | simonw 9599 | 2020-08-12T17:05:06Z | 2020-08-12T17:05:06Z | OWNER | Released. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release a sdist to PyPI 677839979 | |
672550662 | https://github.com/simonw/datasette/issues/930#issuecomment-672550662 | https://api.github.com/repos/simonw/datasette/issues/930 | MDEyOklzc3VlQ29tbWVudDY3MjU1MDY2Mg== | simonw 9599 | 2020-08-12T03:30:59Z | 2020-08-12T03:30:59Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette sdist is missing templates (hence broken when installing from Homebrew) 677326155 | ||
672519787 | https://github.com/simonw/datasette/issues/930#issuecomment-672519787 | https://api.github.com/repos/simonw/datasette/issues/930 | MDEyOklzc3VlQ29tbWVudDY3MjUxOTc4Nw== | simonw 9599 | 2020-08-12T02:52:46Z | 2020-08-12T02:52:46Z | OWNER | Homebrew install is now fixed, using a temporary URL while waiting for Travis to ship the new release to PyPI: https://github.com/simonw/homebrew-datasette/issues/6 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette sdist is missing templates (hence broken when installing from Homebrew) 677326155 | |
672488293 | https://github.com/simonw/datasette/issues/930#issuecomment-672488293 | https://api.github.com/repos/simonw/datasette/issues/930 | MDEyOklzc3VlQ29tbWVudDY3MjQ4ODI5Mw== | simonw 9599 | 2020-08-12T02:35:34Z | 2020-08-12T02:35:34Z | OWNER | OK, this has fixed it - I used |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette sdist is missing templates (hence broken when installing from Homebrew) 677326155 | |
672480811 | https://github.com/simonw/datasette/issues/930#issuecomment-672480811 | https://api.github.com/repos/simonw/datasette/issues/930 | MDEyOklzc3VlQ29tbWVudDY3MjQ4MDgxMQ== | simonw 9599 | 2020-08-12T02:31:38Z | 2020-08-12T02:31:38Z | OWNER | The root cause appears to be that the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette sdist is missing templates (hence broken when installing from Homebrew) 677326155 | |
672472518 | https://github.com/simonw/datasette/issues/930#issuecomment-672472518 | https://api.github.com/repos/simonw/datasette/issues/930 | MDEyOklzc3VlQ29tbWVudDY3MjQ3MjUxOA== | simonw 9599 | 2020-08-12T02:24:49Z | 2020-08-12T02:24:49Z | OWNER | I checked and |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette sdist is missing templates (hence broken when installing from Homebrew) 677326155 | |
672471431 | https://github.com/simonw/datasette/issues/930#issuecomment-672471431 | https://api.github.com/repos/simonw/datasette/issues/930 | MDEyOklzc3VlQ29tbWVudDY3MjQ3MTQzMQ== | simonw 9599 | 2020-08-12T02:21:19Z | 2020-08-12T02:21:19Z | OWNER | Correction: pip installed Datasette works fine, it's just the Homebrew release that is broken. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette sdist is missing templates (hence broken when installing from Homebrew) 677326155 | |
672393737 | https://github.com/simonw/datasette/issues/926#issuecomment-672393737 | https://api.github.com/repos/simonw/datasette/issues/926 | MDEyOklzc3VlQ29tbWVudDY3MjM5MzczNw== | simonw 9599 | 2020-08-12T00:26:17Z | 2020-08-12T00:26:17Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette fixtures.db --get "/fixtures.json" 677250834 | |
672391299 | https://github.com/simonw/datasette/pull/927#issuecomment-672391299 | https://api.github.com/repos/simonw/datasette/issues/927 | MDEyOklzc3VlQ29tbWVudDY3MjM5MTI5OQ== | simonw 9599 | 2020-08-12T00:19:20Z | 2020-08-12T00:19:20Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
'datasette --get' option, refs #926 677265716 | ||
672382108 | https://github.com/simonw/datasette/pull/927#issuecomment-672382108 | https://api.github.com/repos/simonw/datasette/issues/927 | MDEyOklzc3VlQ29tbWVudDY3MjM4MjEwOA== | simonw 9599 | 2020-08-12T00:09:18Z | 2020-08-12T00:09:18Z | OWNER | Documentation can go here: https://datasette.readthedocs.io/en/latest/getting_started.html#datasette-serve-options |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
'datasette --get' option, refs #926 677265716 | |
672373061 | https://github.com/simonw/datasette/issues/928#issuecomment-672373061 | https://api.github.com/repos/simonw/datasette/issues/928 | MDEyOklzc3VlQ29tbWVudDY3MjM3MzA2MQ== | simonw 9599 | 2020-08-11T23:56:19Z | 2020-08-11T23:56:19Z | OWNER | New implementation of the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failures caused by failed attempts to mock pip 677272618 | |
672372465 | https://github.com/simonw/datasette/issues/928#issuecomment-672372465 | https://api.github.com/repos/simonw/datasette/issues/928 | MDEyOklzc3VlQ29tbWVudDY3MjM3MjQ2NQ== | simonw 9599 | 2020-08-11T23:54:28Z | 2020-08-11T23:54:28Z | OWNER | While debugging this I found a useful clue in https://github.com/pypa/pip/blob/e060970d51c5946beac8447eb95585d83019582d/src/pip/_internal/cli/main.py#L23-L47 ``` Do not import and use main() directly! Using it directly is activelydiscouraged by pip's maintainers. The name, location and behavior ofthis function is subject to change, so calling it directly is notportable across different pip versions.In addition, running pip in-process is unsupported and unsafe. This iselaborated in detail athttps://pip.pypa.io/en/stable/user_guide/#using-pip-from-your-program.That document also provides suggestions that should work for nearlyall users that are considering importing and using main() directly.However, we know that certain users will still want to invoke pipin-process. If you understand and accept the implications of using pipin an unsupported manner, the best approach is to use runpy to avoiddepending on the exact location of this entry point.The following example shows how to use runpy to invoke pip in thatcase:sys.argv = ["pip", your, args, here]runpy.run_module("pip", run_name="main")Note that this will exit the process after running, unlike a directcall to main. As it is not safe to do any processing after callingmain, this should not be an issue in practice.``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failures caused by failed attempts to mock pip 677272618 | |
672372197 | https://github.com/simonw/datasette/issues/928#issuecomment-672372197 | https://api.github.com/repos/simonw/datasette/issues/928 | MDEyOklzc3VlQ29tbWVudDY3MjM3MjE5Nw== | simonw 9599 | 2020-08-11T23:53:38Z | 2020-08-11T23:53:38Z | OWNER | Caused by the tests for #925 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failures caused by failed attempts to mock pip 677272618 | |
672357176 | https://github.com/simonw/datasette/pull/927#issuecomment-672357176 | https://api.github.com/repos/simonw/datasette/issues/927 | MDEyOklzc3VlQ29tbWVudDY3MjM1NzE3Ng== | simonw 9599 | 2020-08-11T23:32:08Z | 2020-08-11T23:33:09Z | OWNER | Needs documentation and tests. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
'datasette --get' option, refs #926 677265716 | |
672357902 | https://github.com/simonw/datasette/pull/927#issuecomment-672357902 | https://api.github.com/repos/simonw/datasette/issues/927 | MDEyOklzc3VlQ29tbWVudDY3MjM1NzkwMg== | simonw 9599 | 2020-08-11T23:32:39Z | 2020-08-11T23:32:39Z | OWNER | It works:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
'datasette --get' option, refs #926 677265716 | |
672338113 | https://github.com/simonw/datasette/issues/926#issuecomment-672338113 | https://api.github.com/repos/simonw/datasette/issues/926 | MDEyOklzc3VlQ29tbWVudDY3MjMzODExMw== | simonw 9599 | 2020-08-11T22:57:28Z | 2020-08-11T22:57:28Z | OWNER | I partly want this so I can easily implement a better
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette fixtures.db --get "/fixtures.json" 677250834 | |
672336720 | https://github.com/simonw/datasette/issues/923#issuecomment-672336720 | https://api.github.com/repos/simonw/datasette/issues/923 | MDEyOklzc3VlQ29tbWVudDY3MjMzNjcyMA== | simonw 9599 | 2020-08-11T22:53:07Z | 2020-08-11T22:53:07Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add homebrew installation to documentation 677037043 | ||
672329101 | https://github.com/simonw/datasette/issues/923#issuecomment-672329101 | https://api.github.com/repos/simonw/datasette/issues/923 | MDEyOklzc3VlQ29tbWVudDY3MjMyOTEwMQ== | simonw 9599 | 2020-08-11T22:35:13Z | 2020-08-11T22:35:13Z | OWNER | I added the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add homebrew installation to documentation 677037043 | |
672328807 | https://github.com/simonw/datasette/issues/925#issuecomment-672328807 | https://api.github.com/repos/simonw/datasette/issues/925 | MDEyOklzc3VlQ29tbWVudDY3MjMyODgwNw== | simonw 9599 | 2020-08-11T22:34:37Z | 2020-08-11T22:34:37Z | OWNER | This will simplify the instructions for installing plugins with Datasette install via homebrew, refs #923 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"datasette install" and "datasette uninstall" commands 677227912 | |
672328436 | https://github.com/simonw/datasette/issues/925#issuecomment-672328436 | https://api.github.com/repos/simonw/datasette/issues/925 | MDEyOklzc3VlQ29tbWVudDY3MjMyODQzNg== | simonw 9599 | 2020-08-11T22:33:32Z | 2020-08-11T22:33:42Z | OWNER | ``` $ datasette install --help Usage: datasette install [OPTIONS] PACKAGES... Install Python packages - e.g. Datasette plugins - into the same environment as Datasette Options: --help Show this message and exit. $ datasette uninstall --help Usage: datasette uninstall [OPTIONS] PACKAGES... Uninstall Python packages (e.g. plugins) from the Datasette environment Options: -y, --yes Don't ask for confirmation --help Show this message and exit. ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"datasette install" and "datasette uninstall" commands 677227912 | |
672304650 | https://github.com/simonw/datasette/issues/925#issuecomment-672304650 | https://api.github.com/repos/simonw/datasette/issues/925 | MDEyOklzc3VlQ29tbWVudDY3MjMwNDY1MA== | simonw 9599 | 2020-08-11T22:04:48Z | 2020-08-11T22:04:48Z | OWNER | Prototyped in this thread: https://github.com/simonw/datasette/issues/335#issuecomment-671005731 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"datasette install" and "datasette uninstall" commands 677227912 | |
672288845 | https://github.com/simonw/datasette/issues/923#issuecomment-672288845 | https://api.github.com/repos/simonw/datasette/issues/923 | MDEyOklzc3VlQ29tbWVudDY3MjI4ODg0NQ== | simonw 9599 | 2020-08-11T21:28:17Z | 2020-08-11T21:28:17Z | OWNER | Here's a pattern for installing plugins:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add homebrew installation to documentation 677037043 | |
672287754 | https://github.com/simonw/datasette/issues/923#issuecomment-672287754 | https://api.github.com/repos/simonw/datasette/issues/923 | MDEyOklzc3VlQ29tbWVudDY3MjI4Nzc1NA== | simonw 9599 | 2020-08-11T21:25:33Z | 2020-08-11T21:25:33Z | OWNER | .. and confirm if |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add homebrew installation to documentation 677037043 | |
672089281 | https://github.com/simonw/datasette/issues/923#issuecomment-672089281 | https://api.github.com/repos/simonw/datasette/issues/923 | MDEyOklzc3VlQ29tbWVudDY3MjA4OTI4MQ== | simonw 9599 | 2020-08-11T16:54:50Z | 2020-08-11T16:54:50Z | OWNER | Also need to talk about how you install plugins. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add homebrew installation to documentation 677037043 | |
672088880 | https://github.com/simonw/datasette/issues/335#issuecomment-672088880 | https://api.github.com/repos/simonw/datasette/issues/335 | MDEyOklzc3VlQ29tbWVudDY3MjA4ODg4MA== | simonw 9599 | 2020-08-11T16:54:06Z | 2020-08-11T16:54:06Z | OWNER | It works!
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package datasette for installation using homebrew 339505204 | |
671733187 | https://github.com/simonw/datasette/issues/335#issuecomment-671733187 | https://api.github.com/repos/simonw/datasette/issues/335 | MDEyOklzc3VlQ29tbWVudDY3MTczMzE4Nw== | simonw 9599 | 2020-08-11T05:25:23Z | 2020-08-11T05:25:23Z | OWNER | I got this almost working in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package datasette for installation using homebrew 339505204 | |
671151461 | https://github.com/simonw/sqlite-utils/issues/132#issuecomment-671151461 | https://api.github.com/repos/simonw/sqlite-utils/issues/132 | MDEyOklzc3VlQ29tbWVudDY3MTE1MTQ2MQ== | simonw 9599 | 2020-08-10T03:54:06Z | 2020-08-10T03:54:06Z | OWNER | For the moment I'll build it without the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Features for enabling and disabling WAL mode 675839512 | |
671151170 | https://github.com/simonw/sqlite-utils/issues/132#issuecomment-671151170 | https://api.github.com/repos/simonw/sqlite-utils/issues/132 | MDEyOklzc3VlQ29tbWVudDY3MTE1MTE3MA== | simonw 9599 | 2020-08-10T03:52:02Z | 2020-08-10T03:52:02Z | OWNER | I'm having trouble figuring out how to write a test that locks a SQLite database (so I can test that ```python import time import sys import sqlite3 filename = sys.argv[-1] db = sqlite3.connect(filename) with db: db.execute("create table if not exists counter(id integer primary key, counter text)") time.sleep(100) ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Features for enabling and disabling WAL mode 675839512 | |
671147344 | https://github.com/simonw/sqlite-utils/issues/132#issuecomment-671147344 | https://api.github.com/repos/simonw/sqlite-utils/issues/132 | MDEyOklzc3VlQ29tbWVudDY3MTE0NzM0NA== | simonw 9599 | 2020-08-10T03:29:00Z | 2020-08-10T03:29:00Z | OWNER | The CLI options should take multiple database files:
It's possible for this to fail if the DB is locked. How about a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Features for enabling and disabling WAL mode 675839512 | |
671147148 | https://github.com/simonw/sqlite-utils/issues/132#issuecomment-671147148 | https://api.github.com/repos/simonw/sqlite-utils/issues/132 | MDEyOklzc3VlQ29tbWVudDY3MTE0NzE0OA== | simonw 9599 | 2020-08-10T03:27:50Z | 2020-08-10T03:27:50Z | OWNER | https://www.sqlite.org/pragma.html#pragma_journal_mode lists six modes: DELETE | TRUNCATE | PERSIST | MEMORY | WAL | OFF I'm only going to implement utilities for DELETE (wal-off) and WAL (wal-on) - the other modes look like they're for specialist purposes that I don't need to support. If it turns out I do need them I can add those to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Features for enabling and disabling WAL mode 675839512 | |
671146948 | https://github.com/simonw/sqlite-utils/issues/132#issuecomment-671146948 | https://api.github.com/repos/simonw/sqlite-utils/issues/132 | MDEyOklzc3VlQ29tbWVudDY3MTE0Njk0OA== | simonw 9599 | 2020-08-10T03:26:51Z | 2020-08-10T03:26:51Z | OWNER | For the CLI:
For the Python library: ```python import sqlite_utils db = sqlite_utils.Database("github.db") db.enable_wal() db.disable_wal() mode = db.journal_mode # "wal" or "delete" or others ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Features for enabling and disabling WAL mode 675839512 | |
671088832 | https://github.com/simonw/sqlite-utils/issues/131#issuecomment-671088832 | https://api.github.com/repos/simonw/sqlite-utils/issues/131 | MDEyOklzc3VlQ29tbWVudDY3MTA4ODgzMg== | simonw 9599 | 2020-08-09T19:00:41Z | 2020-08-09T19:00:41Z | OWNER | Should be consistent with the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert: options for column types 675753042 | |
671077168 | https://github.com/simonw/datasette/issues/335#issuecomment-671077168 | https://api.github.com/repos/simonw/datasette/issues/335 | MDEyOklzc3VlQ29tbWVudDY3MTA3NzE2OA== | simonw 9599 | 2020-08-09T17:10:15Z | 2020-08-09T18:13:39Z | OWNER | Here's the issue that explains that warning: https://github.com/pypa/pip/issues/5599 This should fix it (risky):
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package datasette for installation using homebrew 339505204 | |
671076975 | https://github.com/simonw/datasette/issues/335#issuecomment-671076975 | https://api.github.com/repos/simonw/datasette/issues/335 | MDEyOklzc3VlQ29tbWVudDY3MTA3Njk3NQ== | simonw 9599 | 2020-08-09T17:08:34Z | 2020-08-09T17:09:21Z | OWNER | Quick prototype of +@cli.command() +@click.argument("packages", nargs=-1, required=True) +def install(packages): + "Install Python packages - e.g. Datasette plugins - into the same environment as Datasett" + import pip + + try: + pip.main(["install"] + list(packages)) + except SystemExit as e: + pass + + @cli.command() @click.argument("files", type=click.Path(exists=True), nargs=-1) @click.option( ``` ``` $ datasette install Usage: datasette install [OPTIONS] PACKAGES... Try 'datasette install --help' for help. Error: Missing argument 'PACKAGES...'. $ datasette install datasette-vega WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip. Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue. To avoid this problem you can invoke Python with '-m pip' instead of running pip directly. Collecting datasette-vega Using cached datasette_vega-0.6.2-py3-none-any.whl (1.8 MB) ... ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package datasette for installation using homebrew 339505204 | |
671005731 | https://github.com/simonw/datasette/issues/335#issuecomment-671005731 | https://api.github.com/repos/simonw/datasette/issues/335 | MDEyOklzc3VlQ29tbWVudDY3MTAwNTczMQ== | simonw 9599 | 2020-08-09T04:44:13Z | 2020-08-09T17:04:21Z | OWNER | Telling people how to figure out that How about instead providing a Or It would run http://jelly.codes/articles/python-pip-module/ shows how to do this: ```python import pip try: pip.main(["install", "plumbum"]) except SystemExit as e: pass ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package datasette for installation using homebrew 339505204 | |
671075764 | https://github.com/simonw/datasette/issues/918#issuecomment-671075764 | https://api.github.com/repos/simonw/datasette/issues/918 | MDEyOklzc3VlQ29tbWVudDY3MTA3NTc2NA== | simonw 9599 | 2020-08-09T16:56:48Z | 2020-08-09T16:56:48Z | OWNER | GitHub security advisory: https://github.com/simonw/datasette/security/advisories/GHSA-q6j3-c4wc-63vw |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Security issue: read-only canned queries leak CSRF token in URL 675724951 | |
671073223 | https://github.com/simonw/datasette/issues/915#issuecomment-671073223 | https://api.github.com/repos/simonw/datasette/issues/915 | MDEyOklzc3VlQ29tbWVudDY3MTA3MzIyMw== | simonw 9599 | 2020-08-09T16:35:20Z | 2020-08-09T16:36:10Z | OWNER |
```python request = Request.fake(path_with_query_string)
``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView class so things like datasette-graphql can reuse the logic 671763164 | |
671072223 | https://github.com/simonw/datasette/issues/919#issuecomment-671072223 | https://api.github.com/repos/simonw/datasette/issues/919 | MDEyOklzc3VlQ29tbWVudDY3MTA3MjIyMw== | simonw 9599 | 2020-08-09T16:26:17Z | 2020-08-09T16:26:17Z | OWNER | Should be released in a couple of minutes: https://travis-ci.org/github/simonw/datasette/builds/716328883 |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0 } |
Travis should not build the master branch, only the main branch 675727366 | |
671071710 | https://github.com/simonw/datasette/issues/918#issuecomment-671071710 | https://api.github.com/repos/simonw/datasette/issues/918 | MDEyOklzc3VlQ29tbWVudDY3MTA3MTcxMA== | simonw 9599 | 2020-08-09T16:21:41Z | 2020-08-09T16:21:41Z | OWNER | Submitting the form on https://latest.datasette.io/fixtures/neighborhood_search demonstrates that this is fixed. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Security issue: read-only canned queries leak CSRF token in URL 675724951 | |
671071461 | https://github.com/simonw/datasette/issues/919#issuecomment-671071461 | https://api.github.com/repos/simonw/datasette/issues/919 | MDEyOklzc3VlQ29tbWVudDY3MTA3MTQ2MQ== | simonw 9599 | 2020-08-09T16:19:37Z | 2020-08-09T16:19:37Z | OWNER | That appears to have worked. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Travis should not build the master branch, only the main branch 675727366 | |
671070528 | https://github.com/simonw/datasette/issues/918#issuecomment-671070528 | https://api.github.com/repos/simonw/datasette/issues/918 | MDEyOklzc3VlQ29tbWVudDY3MTA3MDUyOA== | simonw 9599 | 2020-08-09T16:12:16Z | 2020-08-09T16:12:16Z | OWNER | It's worth noting that in order to exploit this issue the following would all need to be true:
The attacker would need full knowledge of the URL and form layout of the Datasette instance that they are exploiting. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Security issue: read-only canned queries leak CSRF token in URL 675724951 | |
671070486 | https://github.com/simonw/datasette/issues/918#issuecomment-671070486 | https://api.github.com/repos/simonw/datasette/issues/918 | MDEyOklzc3VlQ29tbWVudDY3MTA3MDQ4Ng== | simonw 9599 | 2020-08-09T16:11:59Z | 2020-08-09T16:11:59Z | OWNER | Fix has been released in Datasette 0.46: https://datasette.readthedocs.io/en/latest/changelog.html#v0-46 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Security issue: read-only canned queries leak CSRF token in URL 675724951 | |
671001457 | https://github.com/simonw/datasette/issues/335#issuecomment-671001457 | https://api.github.com/repos/simonw/datasette/issues/335 | MDEyOklzc3VlQ29tbWVudDY3MTAwMTQ1Nw== | simonw 9599 | 2020-08-09T03:37:39Z | 2020-08-09T03:37:39Z | OWNER | Here's what happened when I installed It worked! And from digging around, it has a virtual environment at Which means And I tried running these commands and confirmed that I get a
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package datasette for installation using homebrew 339505204 | |
670999860 | https://github.com/simonw/datasette/issues/335#issuecomment-670999860 | https://api.github.com/repos/simonw/datasette/issues/335 | MDEyOklzc3VlQ29tbWVudDY3MDk5OTg2MA== | simonw 9599 | 2020-08-09T03:12:44Z | 2020-08-09T03:12:44Z | OWNER | How would plugin installation work if Datasette was installed via homebrew? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package datasette for installation using homebrew 339505204 | |
670999832 | https://github.com/simonw/datasette/issues/335#issuecomment-670999832 | https://api.github.com/repos/simonw/datasette/issues/335 | MDEyOklzc3VlQ29tbWVudDY3MDk5OTgzMg== | simonw 9599 | 2020-08-09T03:12:14Z | 2020-08-09T03:12:14Z | OWNER | Another useful example: https://github.com/Homebrew/homebrew-core/blob/master/Formula/trailscraper.rb |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package datasette for installation using homebrew 339505204 | |
669241341 | https://github.com/dogsheep/swarm-to-sqlite/issues/8#issuecomment-669241341 | https://api.github.com/repos/dogsheep/swarm-to-sqlite/issues/8 | MDEyOklzc3VlQ29tbWVudDY2OTI0MTM0MQ== | simonw 9599 | 2020-08-05T14:55:14Z | 2020-08-05T14:55:14Z | MEMBER | Looks like there's a column that's not consistently there, so the table got created without it. Easiest fix is to add That will cause |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Error thrown: table photos has no column named hasSticker 648245071 | |
667585598 | https://github.com/simonw/sqlite-utils/issues/130#issuecomment-667585598 | https://api.github.com/repos/simonw/sqlite-utils/issues/130 | MDEyOklzc3VlQ29tbWVudDY2NzU4NTU5OA== | simonw 9599 | 2020-08-01T20:51:28Z | 2020-08-01T20:51:28Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support tokenize option for FTS 671130371 | ||
667585561 | https://github.com/simonw/sqlite-utils/issues/130#issuecomment-667585561 | https://api.github.com/repos/simonw/sqlite-utils/issues/130 | MDEyOklzc3VlQ29tbWVudDY2NzU4NTU2MQ== | simonw 9599 | 2020-08-01T20:50:59Z | 2020-08-01T20:50:59Z | OWNER | Turns out it works for FTS4 as well: https://www.sqlite.org/fts3.html#tokenizer |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support tokenize option for FTS 671130371 | |
667584567 | https://github.com/simonw/sqlite-utils/issues/130#issuecomment-667584567 | https://api.github.com/repos/simonw/sqlite-utils/issues/130 | MDEyOklzc3VlQ29tbWVudDY2NzU4NDU2Nw== | simonw 9599 | 2020-08-01T20:41:09Z | 2020-08-01T20:41:09Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support tokenize option for FTS 671130371 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
issue 912