issues
2,098 rows where repo = 107914493 sorted by updated_at descending
This data as json, CSV (advanced)
id | node_id | number | title | user | state | locked | assignee | milestone | comments | created_at | updated_at ▲ | closed_at | author_association | pull_request | body | repo | type | active_lock_reason | performed_via_github_app | reactions | draft | state_reason |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
648637666 | MDU6SXNzdWU2NDg2Mzc2NjY= | 880 | POST to /db/canned-query that returns JSON should be supported (for API clients) | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 11 | 2020-07-01T03:14:43Z | 2020-09-14T21:28:21Z | 2020-09-14T21:25:01Z | OWNER | Now that CSRF is solved for API requests (#835) it would be good to support API requests to the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/880/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
701294727 | MDU6SXNzdWU3MDEyOTQ3Mjc= | 965 | Documentation for 404.html, 500.html templates | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 3 | 2020-09-14T17:36:59Z | 2020-09-14T18:49:49Z | 2020-09-14T18:47:22Z | OWNER | This mechanism is not documented: https://github.com/simonw/datasette/blob/30b98e4d2955073ca2bca92ca7b3d97fcd0191bf/datasette/app.py#L1119-L1129 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/965/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
700728217 | MDU6SXNzdWU3MDA3MjgyMTc= | 964 | raise_404 mechanism for custom templates | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 1 | 2020-09-14T03:22:15Z | 2020-09-14T17:49:44Z | 2020-09-14T17:39:34Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/datasette/issues/944#issuecomment-691788478 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/964/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
681516976 | MDU6SXNzdWU2ODE1MTY5NzY= | 944 | Path parameters for custom pages | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 5 | 2020-08-19T03:25:17Z | 2020-09-14T03:21:45Z | 2020-09-14T02:34:58Z | OWNER | Custom pages let you e.g. create a It would be useful if these pages could capture path patterns. I like the Python format string syntax for this (also used by Starlette): So... how about embedding those patterns in the filenames themselves?
Would capture any hits to |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/944/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
699947574 | MDU6SXNzdWU2OTk5NDc1NzQ= | 963 | Currently selected array facets are not correctly persisted through hidden form fields | mhalle 649467 | closed | 0 | Datasette 0.49 5818042 | 1 | 2020-09-12T01:49:17Z | 2020-09-12T21:54:29Z | 2020-09-12T21:54:09Z | NONE | Faceted search uses JSON array elements as facets rather than the arrays. However, if a search is "Apply"ed (using the Apply button), the array itself rather than its elements used. To reproduce: https://latest.datasette.io/fixtures/facetable?_sort=pk&_facet=created&_facet=tags&_facet_array=tags Press "Apply", which might be done when removing a filter. Notice that the "tags" facet values are now arrays, not array elements. It appears the "&_facet_array=tags" element of the query string is dropped. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/963/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
569275763 | MDU6SXNzdWU1NjkyNzU3NjM= | 680 | Release automation: automate the bit that posts the GitHub release | simonw 9599 | closed | 0 | 5 | 2020-02-22T03:50:40Z | 2020-09-12T18:18:50Z | 2020-09-12T18:18:50Z | OWNER | The most manual part of the release process right now is having to post a GitHub release that matches the updated changelog. This is particularly annoying because the changelog is in Having the release script automatically post a GitHub release at the end would be much more convenient. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/680/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
649429772 | MDU6SXNzdWU2NDk0Mjk3NzI= | 886 | Reconsider how _actor_X magic parameter deals with missing values | simonw 9599 | open | 0 | 2 | 2020-07-02T00:00:38Z | 2020-09-11T21:35:26Z | OWNER | I had to build a custom @hookimpl
def register_magic_parameters():
return [
("actorornull", actorornull),
]
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/886/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
691475400 | MDU6SXNzdWU2OTE0NzU0MDA= | 958 | Upgrade to latest Black (20.8b1) | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 0 | 2020-09-02T22:24:19Z | 2020-09-11T21:34:24Z | 2020-09-02T22:25:10Z | OWNER | Black has some changes: https://black.readthedocs.io/en/stable/change_log.html#b0 - in particular:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/958/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
699622046 | MDU6SXNzdWU2OTk2MjIwNDY= | 962 | datasette --pdb option for debugging errors | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 1 | 2020-09-11T18:33:10Z | 2020-09-11T21:34:24Z | 2020-09-11T18:38:01Z | OWNER | I needed to debug an exception from deep inside a Jinja template the other day. I hacked this together and it helped. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/962/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
684111953 | MDU6SXNzdWU2ODQxMTE5NTM= | 947 | datasette --get exit code should reflect HTTP errors | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 1 | 2020-08-23T04:17:08Z | 2020-09-11T21:33:15Z | 2020-09-11T21:33:15Z | OWNER | If you run It should still output the returned content to stdout. This will help with writing soundness checks, as seen in https://til.simonwillison.net/til/til/github-actions_grep-tests.md |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/947/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
696908389 | MDU6SXNzdWU2OTY5MDgzODk= | 961 | Verification checks for metadata.json on startup | simonw 9599 | open | 0 | 2 | 2020-09-09T15:21:53Z | 2020-09-09T15:24:31Z | OWNER | I lost a bunch of time yesterday trying to figure out why a Datasette instance wasn't starting up - it turned out it was because I had a Catching these on startup would be good. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/961/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
691537426 | MDU6SXNzdWU2OTE1Mzc0MjY= | 959 | Internals API idea: results.dicts in addition to results.rows | simonw 9599 | open | 0 | 0 | 2020-09-03T00:50:17Z | 2020-09-03T00:50:17Z | OWNER | I just wrote this code:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/959/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
687245650 | MDExOlB1bGxSZXF1ZXN0NDc0NzAzMDA3 | 952 | Update black requirement from ~=19.10b0 to >=19.10,<21.0 | dependabot-preview[bot] 27856297 | closed | 0 | 1 | 2020-08-27T13:31:36Z | 2020-09-02T22:26:17Z | 2020-09-02T22:26:16Z | CONTRIBUTOR | simonw/datasette/pulls/952 | Updates the requirements on black to permit the latest version. ChangelogSourced from black's changelog.
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting Dependabot commands and optionsYou can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/952/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
687694947 | MDU6SXNzdWU2ODc2OTQ5NDc= | 954 | Remove old register_output_renderer dict mechanism in Datasette 1.0 | simonw 9599 | open | 0 | Datasette 1.0 3268330 | 1 | 2020-08-28T04:04:23Z | 2020-08-28T04:56:31Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/954/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
|||||||
682005535 | MDU6SXNzdWU2ODIwMDU1MzU= | 945 | datasette install -U for upgrading packages | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 1 | 2020-08-19T17:12:04Z | 2020-08-28T04:53:14Z | 2020-08-19T17:20:50Z | OWNER | This will also give Homebrew a way to upgrade Datasette itself without having to wait for the latest packaged version to land in Homebrew core. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/945/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
687681018 | MDU6SXNzdWU2ODc2ODEwMTg= | 953 | register_output_renderer render function should be able to return a Response | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 1 | 2020-08-28T03:21:21Z | 2020-08-28T04:53:03Z | 2020-08-28T04:03:01Z | OWNER | That plugin hook was designed before Datasette had a documented Response class. It should optionally be allowed to return a Response in addition to the current custom dictionary. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/953/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
671763164 | MDU6SXNzdWU2NzE3NjMxNjQ= | 915 | Refactor TableView class so things like datasette-graphql can reuse the logic | simonw 9599 | closed | 0 | 3 | 2020-08-03T03:13:33Z | 2020-08-18T22:28:37Z | 2020-08-18T22:28:37Z | OWNER | Originally posted by @simonw in https://github.com/simonw/datasette-graphql/issues/2#issuecomment-667780040 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/915/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
647095487 | MDU6SXNzdWU2NDcwOTU0ODc= | 873 | "datasette -p 0 --root" gives the wrong URL | simonw 9599 | open | 0 | 14 | 2020-06-29T04:03:06Z | 2020-08-18T17:26:10Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/873/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
679809281 | MDExOlB1bGxSZXF1ZXN0NDY4NDg0MDMx | 941 | Run CI on GitHub Actions, not Travis | simonw 9599 | closed | 0 | 1 | 2020-08-16T19:13:39Z | 2020-08-18T05:09:36Z | 2020-08-18T05:09:35Z | OWNER | simonw/datasette/pulls/941 | Refs #940 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/941/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
671056788 | MDU6SXNzdWU2NzEwNTY3ODg= | 914 | "Object of type bytes is not JSON serializable" for _nl=on | simonw 9599 | closed | 0 | 1 | 2020-08-01T17:43:10Z | 2020-08-16T21:10:27Z | 2020-08-16T18:26:59Z | OWNER | https://latest.datasette.io/fixtures/binary_data.json?_sort_desc=data&_shape=array returns this:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/914/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
679779797 | MDU6SXNzdWU2Nzk3Nzk3OTc= | 939 | extra_ plugin hooks should take the same arguments | simonw 9599 | closed | 0 | 6 | 2020-08-16T16:04:54Z | 2020-08-16T18:25:05Z | 2020-08-16T16:50:29Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/datasette/issues/938#issuecomment-674544691 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/939/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
679660778 | MDExOlB1bGxSZXF1ZXN0NDY4Mzc3MjEy | 937 | Docs now live at docs.datasette.io | simonw 9599 | closed | 0 | 0 | 2020-08-15T23:53:52Z | 2020-08-15T23:57:06Z | 2020-08-15T23:57:05Z | OWNER | simonw/datasette/pulls/937 | datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/937/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | ||||||
679646710 | MDU6SXNzdWU2Nzk2NDY3MTA= | 935 | db.execute_write_fn(create_tables, block=True) hangs a thread if connection fails | simonw 9599 | closed | 0 | 3 | 2020-08-15T21:49:17Z | 2020-08-15T22:35:33Z | 2020-08-15T22:35:33Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/935/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||||
679650632 | MDExOlB1bGxSZXF1ZXN0NDY4MzcwNjU4 | 936 | Don't hang in db.execute_write_fn() if connection fails | simonw 9599 | closed | 0 | 2 | 2020-08-15T22:20:12Z | 2020-08-15T22:35:33Z | 2020-08-15T22:35:32Z | OWNER | simonw/datasette/pulls/936 | Refs #935 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/936/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
679637501 | MDU6SXNzdWU2Nzk2Mzc1MDE= | 934 | --get doesn't fully invoke the startup routine | simonw 9599 | closed | 0 | 0 | 2020-08-15T20:30:25Z | 2020-08-15T20:53:49Z | 2020-08-15T20:53:49Z | OWNER | Spotted this working on https://github.com/simonw/latest-datasette-with-all-plugins/issues/3 - I'd like to be able to use |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/934/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
677926613 | MDU6SXNzdWU2Nzc5MjY2MTM= | 931 | Docker container is no longer being pushed (it's stuck on 0.45) | simonw 9599 | closed | 0 | 7 | 2020-08-12T19:33:03Z | 2020-08-12T21:36:20Z | 2020-08-12T21:36:20Z | OWNER | e.g. https://travis-ci.org/github/simonw/datasette/jobs/717123725 Here's how it broke:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/931/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
677326155 | MDU6SXNzdWU2NzczMjYxNTU= | 930 | Datasette sdist is missing templates (hence broken when installing from Homebrew) | simonw 9599 | closed | 0 | 6 | 2020-08-12T02:20:16Z | 2020-08-12T03:30:59Z | 2020-08-12T03:30:59Z | OWNER | Pretty nasty bug this: I'm getting 500 errors for all pages that try to render a template after installing the newly released Datasette 0.47 - both from |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/930/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
677250834 | MDU6SXNzdWU2NzcyNTA4MzQ= | 926 | datasette fixtures.db --get "/fixtures.json" | simonw 9599 | closed | 0 | 2 | 2020-08-11T22:55:36Z | 2020-08-12T00:26:17Z | 2020-08-12T00:24:42Z | OWNER | I can expose ALL of Datasette's functionality on the command-line (without even running a web server) by adding
This would instantiate the Datasette ASGI app, run a fake request for A |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/926/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
677265716 | MDExOlB1bGxSZXF1ZXN0NDY2NDEwNzU1 | 927 | 'datasette --get' option, refs #926 | simonw 9599 | closed | 0 | 5 | 2020-08-11T23:31:52Z | 2020-08-12T00:24:42Z | 2020-08-12T00:24:41Z | OWNER | simonw/datasette/pulls/927 | Refs #926, #898 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/927/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
677037043 | MDU6SXNzdWU2NzcwMzcwNDM= | 923 | Add homebrew installation to documentation | simonw 9599 | closed | 0 | 5 | 2020-08-11T16:54:31Z | 2020-08-11T22:53:07Z | 2020-08-11T22:52:46Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/923/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
677227912 | MDU6SXNzdWU2NzcyMjc5MTI= | 925 | "datasette install" and "datasette uninstall" commands | simonw 9599 | closed | 0 | 3 | 2020-08-11T22:04:32Z | 2020-08-11T22:34:37Z | 2020-08-11T22:32:12Z | OWNER | When installing Datasette plugins it's crucial that they end up in the same virtual environment as Datasette itself. It's not necessarily obvious how to do this, especially if you install Datasette via pipx or homebrew. Solution: |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/925/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
339505204 | MDU6SXNzdWUzMzk1MDUyMDQ= | 335 | Package datasette for installation using homebrew | simonw 9599 | closed | 0 | 12 | 2018-07-09T15:45:03Z | 2020-08-11T16:54:06Z | 2020-08-11T16:54:06Z | OWNER | https://docs.brew.sh/Python-for-Formula-Authors describes how.
It recommends using https://github.com/tdsmith/homebrew-pypi-poet |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/335/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
675724951 | MDU6SXNzdWU2NzU3MjQ5NTE= | 918 | Security issue: read-only canned queries leak CSRF token in URL | simonw 9599 | closed | 0 | 4 | 2020-08-09T16:03:01Z | 2020-08-09T16:56:48Z | 2020-08-09T16:11:59Z | OWNER | The HTML form for a read-only canned query includes the hidden CSRF token field added in #798 for writable canned queries (#698). This means that submitting those read-only forms exposes the CSRF token in the URL - for example on https://latest.datasette.io/fixtures/neighborhood_search submitting the form took me to: This token could potentially leak to an attacker if the resulting page has a link to an external site on it and the user clicks the link, since the token would be exposed in the referral logs. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/918/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
675727366 | MDU6SXNzdWU2NzU3MjczNjY= | 919 | Travis should not build the master branch, only the main branch | simonw 9599 | closed | 0 | 3 | 2020-08-09T16:18:25Z | 2020-08-09T16:26:18Z | 2020-08-09T16:19:37Z | OWNER | Caused by #849 - since we are mirroring the two branches (to ensure old links to The following in |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/919/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
675594325 | MDU6SXNzdWU2NzU1OTQzMjU= | 917 | Idea: "datasette publish" option for "only if the data has changed | simonw 9599 | open | 0 | 0 | 2020-08-08T21:58:27Z | 2020-08-08T21:58:27Z | OWNER | This is a pattern I often find myself needing. I usually implement this in GitHub Actions like this:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/917/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
660827546 | MDU6SXNzdWU2NjA4Mjc1NDY= | 899 | How to setup a request limit per user | Krazybug 133845 | closed | 0 | 1 | 2020-07-19T13:08:25Z | 2020-07-31T23:54:42Z | 2020-07-31T23:54:42Z | NONE | Hello, Until now I'm using datasette without any authentication system but I would like to setup a configuration or limiting the number of requests per user (eventually by IP or with a cookie mechanism) and eventually allowing me to ban specific users/IPs. Is there a plugin available for this use case ? If not what are your insights regarding this UC ? Should I write a plugin ? Should I deploy datasette behind a reverse proxy to manage this ? |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/899/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
662322234 | MDExOlB1bGxSZXF1ZXN0NDUzODkwMjky | 901 | Use None as a default arg | Alyetama 56323389 | closed | 0 | 1 | 2020-07-20T22:18:38Z | 2020-07-31T18:42:39Z | 2020-07-31T18:42:39Z | CONTRIBUTOR | simonw/datasette/pulls/901 | When passing a mutable value as a default argument in a function, the default argument is mutated anytime that value is mutated. This poses a bug risk. Instead, use None as a default and assign the mutable value inside the function. |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/901/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
668064778 | MDU6SXNzdWU2NjgwNjQ3Nzg= | 912 | Add "publishing to Vercel" to the publish docs | simonw 9599 | closed | 0 | 0 | 2020-07-29T18:50:58Z | 2020-07-31T17:06:35Z | 2020-07-31T17:06:35Z | OWNER | https://datasette.readthedocs.io/en/0.45/publish.html#datasette-publish currently only lists Cloud Run, Heroku and Fly. It should list Vercel too. (I should probably rename |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/912/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
667467128 | MDU6SXNzdWU2Njc0NjcxMjg= | 909 | AsgiFileDownload: filename not correctly passed | simonw 9599 | closed | 0 | 2 | 2020-07-29T00:41:43Z | 2020-07-30T00:56:17Z | 2020-07-29T21:34:48Z | OWNER | https://github.com/simonw/datasette/blob/3c33b421320c0be81a625ca7307b2e4416a9ed5b/datasette/utils/asgi.py#L396-L405
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/909/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
667840539 | MDExOlB1bGxSZXF1ZXN0NDU4NDM1NTky | 910 | Update pytest requirement from <5.5.0,>=5.2.2 to >=5.2.2,<6.1.0 | dependabot-preview[bot] 27856297 | closed | 0 | 1 | 2020-07-29T13:21:17Z | 2020-07-29T21:26:05Z | 2020-07-29T21:26:04Z | CONTRIBUTOR | simonw/datasette/pulls/910 | Updates the requirements on pytest to permit the latest version. Release notesSourced from pytest's releases.
ChangelogSourced from pytest's changelog. Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting Dependabot commands and optionsYou can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/910/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
668064026 | MDU6SXNzdWU2NjgwNjQwMjY= | 911 | Rethink the --name option to "datasette publish" | simonw 9599 | open | 0 | Datasette 1.0 3268330 | 0 | 2020-07-29T18:49:49Z | 2020-07-29T18:49:49Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/911/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
|||||||
665400224 | MDU6SXNzdWU2NjU0MDAyMjQ= | 906 | "allow": true for anyone, "allow": false for nobody | simonw 9599 | closed | 0 | Datasette 0.46 5607421 | 3 | 2020-07-24T20:28:10Z | 2020-07-25T00:07:10Z | 2020-07-25T00:05:04Z | OWNER | The "allow" syntax described at https://datasette.readthedocs.io/en/0.45/authentication.html#defining-permissions-with-allow-blocks currently says this:
These are not very intuitive. How about also supporting |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/906/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
665407663 | MDU6SXNzdWU2NjU0MDc2NjM= | 908 | Interactive debugging tool for "allow" blocks | simonw 9599 | closed | 0 | Datasette 0.46 5607421 | 3 | 2020-07-24T20:43:44Z | 2020-07-25T00:06:15Z | 2020-07-24T22:56:52Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/908/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
665403403 | MDU6SXNzdWU2NjU0MDM0MDM= | 907 | Allow documentation doesn't explain what happens with multiple allow keys | simonw 9599 | closed | 0 | Datasette 0.46 5607421 | 2 | 2020-07-24T20:34:40Z | 2020-07-24T22:53:07Z | 2020-07-24T22:53:07Z | OWNER | Documentation here: https://datasette.readthedocs.io/en/0.45/authentication.html#defining-permissions-with-allow-blocks Doesn't explain that with the following "allow" block:
The tests are missing this case too: https://github.com/simonw/datasette/blob/028f193dd6233fa116262ab4b07b13df7dcec9be/tests/test_utils.py#L504 Related to #906 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/907/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
442327592 | MDU6SXNzdWU0NDIzMjc1OTI= | 456 | Installing installs the tests package | hellerve 7725188 | closed | 0 | 3 | 2019-05-09T16:35:16Z | 2020-07-24T20:39:54Z | 2020-07-24T20:39:54Z | CONTRIBUTOR | Because The offending line is here: https://github.com/simonw/datasette/blob/bfa2ae0d16d39bb82dbe4da4f3fdc3c7f6257418/setup.py#L40 And only
This should be a relatively simple fix, and I could drop a PR if desired! Cheers |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/456/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
662439034 | MDExOlB1bGxSZXF1ZXN0NDUzOTk1MTc5 | 902 | Don't install tests package | abeyerpath 32467826 | closed | 0 | 2 | 2020-07-21T01:08:50Z | 2020-07-24T20:39:54Z | 2020-07-24T20:39:54Z | CONTRIBUTOR | simonw/datasette/pulls/902 | The Fixes: #456 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/902/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
663317875 | MDU6SXNzdWU2NjMzMTc4NzU= | 905 | /database.db download should include content-length header | simonw 9599 | closed | 0 | 2 | 2020-07-21T21:23:48Z | 2020-07-22T04:59:46Z | 2020-07-22T04:52:45Z | OWNER | I can do this by modifying this function: https://github.com/simonw/datasette/blob/02dc6298bdbfb1d63e0d2a39ff597b5fcc60e06b/datasette/utils/asgi.py#L248-L270 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/905/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
442402832 | MDExOlB1bGxSZXF1ZXN0Mjc3NTI0MDcy | 458 | setup: add tests to package exclusion | hellerve 7725188 | closed | 0 | 1 | 2019-05-09T19:47:21Z | 2020-07-21T01:14:42Z | 2019-05-10T01:54:51Z | CONTRIBUTOR | simonw/datasette/pulls/458 | This PR fixes #456 by adding Cheers |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/458/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
659873662 | MDU6SXNzdWU2NTk4NzM2NjI= | 898 | datasette.utils.testing module | simonw 9599 | open | 0 | 2 | 2020-07-18T03:53:24Z | 2020-07-18T03:57:46Z | OWNER | The unit tests for plugins could benefit from reusing code from Datasette's own testing fixtures, e.g.:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/898/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
659580487 | MDU6SXNzdWU2NTk1ODA0ODc= | 897 | Request method for retrieving the unparsed request body | simonw 9599 | closed | 0 | 1 | 2020-07-17T19:51:40Z | 2020-07-17T20:16:02Z | 2020-07-17T20:12:50Z | OWNER | I'm writing a plugin (https://github.com/simonw/datasette-update-api/issues/2) that implements an API for inserting JSON data. As such, I'd like to Right now there's a |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/897/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
658476055 | MDU6SXNzdWU2NTg0NzYwNTU= | 896 | Use white-space: pre-wrap on ALL table cell contents | simonw 9599 | closed | 0 | 4 | 2020-07-16T19:05:21Z | 2020-07-17T01:26:08Z | 2020-07-17T01:26:08Z | OWNER | Is there any reason NOT to apply The default display mechanism of HTML (stripping leading/trailing slashes and collapsing all other whitespace) doesn't really make sense for displaying the kind of data that Datasette works with. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/896/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
655465863 | MDU6SXNzdWU2NTU0NjU4NjM= | 892 | "latest" in new documentation navbar is invisible | simonw 9599 | closed | 0 | 2 | 2020-07-12T19:57:21Z | 2020-07-12T20:02:35Z | 2020-07-12T20:02:17Z | OWNER | On https://datasette.readthedocs.io/en/latest/ Compare with https://datasette.readthedocs.io/en/0.45/ Some custom CSS should fix it. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/892/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
628003707 | MDU6SXNzdWU2MjgwMDM3MDc= | 784 | Ability to sign in to Datasette as a root account | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 5 | 2020-05-31T17:10:15Z | 2020-07-06T19:31:53Z | 2020-06-01T01:18:20Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/datasette/issues/699#issuecomment-636498770 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/784/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
650305298 | MDExOlB1bGxSZXF1ZXN0NDQzODIzMDQw | 890 | Load only python files from plugins-dir. | amjith 49260 | closed | 0 | 2 | 2020-07-03T02:47:32Z | 2020-07-03T03:08:33Z | 2020-07-03T03:08:33Z | CONTRIBUTOR | simonw/datasette/pulls/890 | The current behavior for This PR restricts the module loading to only python files. |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/890/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
638270441 | MDExOlB1bGxSZXF1ZXN0NDM0MDg1MjM1 | 848 | Reload support for config_dir mode. | amjith 49260 | closed | 0 | 1 | 2020-06-14T02:34:46Z | 2020-07-03T02:44:54Z | 2020-07-03T02:44:53Z | CONTRIBUTOR | simonw/datasette/pulls/848 | A reference implementation for adding support to reload when datasette is in the config_dir mode. This implementation is flawed since it is watching the entire directory and any changes to the database will reload the server and adding unrelated files to the directory will also reload the server. |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/848/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
649437530 | MDU6SXNzdWU2NDk0Mzc1MzA= | 887 | Canned query page should show the name of the canned query | simonw 9599 | closed | 0 | Datasette 0.46 5607421 | 3 | 2020-07-02T00:10:39Z | 2020-07-02T00:31:33Z | 2020-07-02T00:23:45Z | OWNER | This page here - the URL is http://127.0.0.1:8001/data/all_tables but "all_tables" is not shown in the UI: |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/887/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
648749062 | MDExOlB1bGxSZXF1ZXN0NDQyNTA1MDg4 | 883 | Skip counting hidden tables | abdusco 3243482 | open | 0 | 4 | 2020-07-01T07:38:08Z | 2020-07-02T00:25:44Z | CONTRIBUTOR | simonw/datasette/pulls/883 | Potential fix for https://github.com/simonw/datasette/issues/859. Disabling table counts for hidden tables speeds up database page quite a bit. In my setup it reduced load time by 2/3 (~300 -> ~90ms) |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/883/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | ||||||
276718605 | MDU6SXNzdWUyNzY3MTg2MDU= | 151 | Set up a pattern portfolio | simonw 9599 | closed | 0 | 2 | 2017-11-25T02:09:49Z | 2020-07-02T00:13:24Z | 2020-05-03T03:13:16Z | OWNER | https://www.slideshare.net/nataliedowne/practical-maintainable-css/75 This will be a single page that demonstrates all of the different CSS styles and classes available to Datasette. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/151/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
647103735 | MDU6SXNzdWU2NDcxMDM3MzU= | 875 | "Logged in as: XXX - logout" navigation item | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 3 | 2020-06-29T04:31:14Z | 2020-07-02T00:13:24Z | 2020-06-29T18:43:50Z | OWNER | Originally posted by @simonw in https://github.com/simonw/datasette/issues/840#issuecomment-650895874 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/875/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
646992096 | MDU6SXNzdWU2NDY5OTIwOTY= | 872 | Release non-alpha plugins when 0.45 is out | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 0 | 2020-06-28T19:42:01Z | 2020-07-01T23:48:51Z | 2020-07-01T23:48:51Z | OWNER | I have several plugins currently marked as alphas because they depend on |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/872/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
649373451 | MDU6SXNzdWU2NDkzNzM0NTE= | 885 | Blog entry about the release | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 1 | 2020-07-01T22:44:37Z | 2020-07-01T22:44:48Z | 2020-07-01T22:44:47Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/885/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
632724154 | MDU6SXNzdWU2MzI3MjQxNTQ= | 805 | Writable canned queries live demo on Glitch | simonw 9599 | open | 0 | 11 | 2020-06-06T20:52:13Z | 2020-07-01T22:44:01Z | OWNER | Needs to run somewhere with a mutable disk drive, so not Cloud Run or Heroku or Vercel. I think I'll put it on Glitch. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/805/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
648673556 | MDU6SXNzdWU2NDg2NzM1NTY= | 882 | Release notes for 0.45 | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 2 | 2020-07-01T05:00:17Z | 2020-07-01T21:48:08Z | 2020-07-01T21:48:08Z | OWNER | These are mostly done thanks to the alphas, but I went to have more paragraphs of prose and less bullet points. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/882/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
649329013 | MDU6SXNzdWU2NDkzMjkwMTM= | 884 | Only show "log out" button if user is authenticated using a ds_actor cookie | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 0 | 2020-07-01T21:21:28Z | 2020-07-01T21:26:07Z | 2020-07-01T21:26:06Z | OWNER | Right now the "Log out" button in the navigation will show up even if the user was authenticated by a plugin using a mechanism other than the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/884/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
648659536 | MDU6SXNzdWU2NDg2NTk1MzY= | 881 | Figure out why restore_working_directory is needed in some places | simonw 9599 | open | 0 | 0 | 2020-07-01T04:19:25Z | 2020-07-01T04:19:25Z | OWNER | This is a frustrating workaround. I have a /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/contextlib.py:112: in enter return next(self.gen) self = <click.testing.CliRunner object at 0x1135ad110>
I'd like to not have to do this. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/881/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
634112607 | MDU6SXNzdWU2MzQxMTI2MDc= | 812 | Ability to customize what happens when a view permission fails | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 3 | 2020-06-08T04:26:14Z | 2020-07-01T04:17:46Z | 2020-07-01T04:17:45Z | OWNER | Currently view permission failures raise a It would be good if this page could offer a way forward - maybe just by linking to (or redirecting to) a login screen. This behaviour will vary based on authentication plugins, so a new plugin hook is probably the best way to do this. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/812/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
637363686 | MDU6SXNzdWU2MzczNjM2ODY= | 835 | Mechanism for skipping CSRF checks on API posts | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 13 | 2020-06-11T22:41:10Z | 2020-07-01T03:08:07Z | 2020-07-01T03:08:07Z | OWNER | While experimenting with https://github.com/simonw/datasette-auth-tokens I realized it's not currently possible to build API client programs that POST to Datasette because there's no mechanism for them to skip the CSRF checks added in #798. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/835/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
647879783 | MDU6SXNzdWU2NDc4Nzk3ODM= | 876 | Add log out link to the pattern portfolio | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 1 | 2020-06-30T05:42:15Z | 2020-06-30T23:50:04Z | 2020-06-30T23:47:31Z | OWNER | Follows #875 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/876/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
648569227 | MDU6SXNzdWU2NDg1NjkyMjc= | 879 | Database page documentation still talks about hashes in URLs | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 1 | 2020-06-30T23:43:17Z | 2020-06-30T23:48:06Z | 2020-06-30T23:45:42Z | OWNER | https://datasette.readthedocs.io/en/0.44/pages.html
This isn't accurate any more - that's not default behaviour, and it may be removed entirely in #647. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/879/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
636722501 | MDU6SXNzdWU2MzY3MjI1MDE= | 832 | Having view-table permission but NOT view-database should still grant access to /db/table | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 12 | 2020-06-11T05:12:59Z | 2020-06-30T23:42:11Z | 2020-06-30T23:42:11Z | OWNER | Stumbled into this while working on |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/832/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
637966833 | MDU6SXNzdWU2Mzc5NjY4MzM= | 840 | Log out mechanism for clearing ds_actor cookie | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 4 | 2020-06-12T19:41:51Z | 2020-06-29T04:31:43Z | 2020-06-29T04:31:43Z | OWNER | Need a cookie clearing mechanism and a way to show that you are logged in.
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/840/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
647095808 | MDU6SXNzdWU2NDcwOTU4MDg= | 874 | /favicon.ico 500 error | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 0 | 2020-06-29T04:04:22Z | 2020-06-29T04:27:18Z | 2020-06-29T04:27:18Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/874/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
644309017 | MDU6SXNzdWU2NDQzMDkwMTc= | 864 | datasette.add_message() doesn't work inside plugins | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 6 | 2020-06-24T04:30:06Z | 2020-06-29T00:51:01Z | 2020-06-29T00:51:01Z | OWNER | Similar problem to #863 - calling |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/864/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
638259643 | MDU6SXNzdWU2MzgyNTk2NDM= | 847 | Take advantage of .coverage being a SQLite database | simonw 9599 | closed | 0 | 4 | 2020-06-14T00:41:25Z | 2020-06-28T20:50:21Z | 2020-06-28T20:50:21Z | OWNER | The I could do something interesting with this. Maybe after each test run for a new commit I could store that database file somewhere? Lots of interesting challenges here. I got a change into Bigger challenge: if I have a DB file for every commit, that's hundreds (potentially thousands) of DB files. Datasette isn't designed to handle thousands of files like that. So, do I figure out how to have Datasette open a file on-command for just a single request? Or, an easier option, do I copy data from those files into a single database with a modified schema to include the commit hash in each table row? (Following on from #841 and #844) |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/847/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
646840273 | MDU6SXNzdWU2NDY4NDAyNzM= | 871 | Rename the _timestamp magic parameters to _now | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 1 | 2020-06-28T04:49:08Z | 2020-06-28T19:49:49Z | 2020-06-28T19:49:49Z | OWNER | I like the shorter name better. Follows on from #842. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/871/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
637342551 | MDU6SXNzdWU2MzczNDI1NTE= | 834 | startup() plugin hook | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 6 | 2020-06-11T21:48:14Z | 2020-06-28T19:38:50Z | 2020-06-13T17:56:12Z | OWNER | It might be useful to have an My initial use-case for this is configuration verification - checking that the I imagine there are plenty of other potential uses for this as well. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/834/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
638212085 | MDU6SXNzdWU2MzgyMTIwODU= | 842 | Magic parameters for canned queries | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 18 | 2020-06-13T18:50:08Z | 2020-06-28T03:30:31Z | 2020-06-28T02:58:18Z | OWNER | Now that writable canned queries (#698) have landed, it would be neat if they supported "magic" parameters - parameters that are automatically populated with:
And maybe other things potentially added by plugins. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/842/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
646734280 | MDExOlB1bGxSZXF1ZXN0NDQwOTQ2ODE3 | 869 | Magic parameters for canned queries | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 1 | 2020-06-27T18:37:21Z | 2020-06-28T02:58:18Z | 2020-06-28T02:58:17Z | OWNER | simonw/datasette/pulls/869 | Implementation for #842 TODO:
|
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/869/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | ||||
645975649 | MDU6SXNzdWU2NDU5NzU2NDk= | 867 | register_routes() should support non-async view functions too | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 1 | 2020-06-26T03:11:25Z | 2020-06-27T18:30:41Z | 2020-06-27T18:30:40Z | OWNER | I was looking at this: https://github.com/simonw/datasette-block-robots/blob/main/datasette_block_robots/init.py ```python from datasette import hookimpl from datasette.utils.asgi import Response async def robots_txt(): return Response.text("User-agent: *\nDisallow: /") @hookimpl
def register_routes():
return [
(r"^/robots.txt$", robots_txt),
]
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/867/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
644610729 | MDExOlB1bGxSZXF1ZXN0NDM5MjAzODA4 | 866 | Update pytest-asyncio requirement from <0.13,>=0.10 to >=0.10,<0.15 | dependabot-preview[bot] 27856297 | closed | 0 | 1 | 2020-06-24T13:21:47Z | 2020-06-24T18:50:57Z | 2020-06-24T18:50:56Z | CONTRIBUTOR | simonw/datasette/pulls/866 | Updates the requirements on pytest-asyncio to permit the latest version. Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting Dependabot commands and optionsYou can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/866/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | |||||
640943441 | MDU6SXNzdWU2NDA5NDM0NDE= | 853 | Ensure register_routes() works for POST | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 1 | 2020-06-18T06:24:55Z | 2020-06-24T04:30:30Z | 2020-06-18T16:22:02Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/853/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
644283211 | MDU6SXNzdWU2NDQyODMyMTE= | 863 | {{ csrftoken() }} doesn't work with datasette.render_template() | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 0 | 2020-06-24T03:11:49Z | 2020-06-24T04:30:30Z | 2020-06-24T03:24:01Z | OWNER | The documentation here suggests that it will work: But right now the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/863/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
576582604 | MDU6SXNzdWU1NzY1ODI2MDQ= | 694 | datasette publish cloudrun --memory option | simonw 9599 | closed | 0 | 8 | 2020-03-05T22:59:57Z | 2020-06-23T17:10:51Z | 2020-03-05T23:49:41Z | OWNER | Got this error deploying large (603MB) database with Cloud Run
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/694/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
643510821 | MDU6SXNzdWU2NDM1MTA4MjE= | 862 | Set an upper limit on total facet suggestion time for a page | simonw 9599 | open | 0 | 1 | 2020-06-23T03:57:55Z | 2020-06-23T03:58:48Z | OWNER | If a table has 100 columns the facet suggestion code will currently run 100 times, taking a max of So for 100 columns, that's 100 * 50ms = 5s total time that might be spent attempting to calculate facets on a large table! I should implement a hard upper limit on the total amount of time taken suggesting facets - probably of around 500ms. If it takes longer than that the remaining columns will not be considered. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/862/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
642652808 | MDU6SXNzdWU2NDI2NTI4MDg= | 861 | Script to generate larger SQLite test files | simonw 9599 | closed | 0 | 3 | 2020-06-21T22:30:58Z | 2020-06-23T03:44:18Z | 2020-06-23T03:44:18Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/861/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
572896293 | MDU6SXNzdWU1NzI4OTYyOTM= | 687 | Expand plugins documentation to multiple pages | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 11 | 2020-02-28T17:26:21Z | 2020-06-22T03:55:20Z | 2020-06-22T03:53:54Z | OWNER | I think the plugins docs need to extend beyond a single page now. I want to add a whole section on writing tests for plugins, showing how |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/687/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
642127307 | MDU6SXNzdWU2NDIxMjczMDc= | 855 | Add instructions for using cookiecutter plugin template to plugin docs | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 2 | 2020-06-19T17:33:25Z | 2020-06-22T02:51:38Z | 2020-06-22T02:51:38Z | OWNER | Once I ship the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/855/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
348043884 | MDU6SXNzdWUzNDgwNDM4ODQ= | 357 | Plugin hook for loading metadata.json | simonw 9599 | open | 0 | 6 | 2018-08-06T19:00:01Z | 2020-06-21T22:19:58Z | OWNER | For https://github.com/simonw/russian-ira-facebook-ads-datasette/tree/af6d956995e14afd585c35a6a06bb01da32043ba I wrote a script to convert YAML to JSON because YAML is a better format for embedding multi-line HTML descriptions and canned SQL statements. Example yaml metadata file: https://github.com/simonw/russian-ira-facebook-ads-datasette/blob/af6d956995e14afd585c35a6a06bb01da32043ba/russian-ads-metadata.yaml It would be useful if Datasette could be fed a YAML file directly:
Question is... should this be a native feature (hence adding a YAML dependency) or should it be handled by a |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/357/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
529429214 | MDU6SXNzdWU1Mjk0MjkyMTQ= | 642 | Provide a cookiecutter template for creating new plugins | simonw 9599 | closed | 0 | Datasette 1.0 3268330 | 6 | 2019-11-27T15:46:36Z | 2020-06-20T03:20:33Z | 2020-06-20T03:20:25Z | OWNER | See this conversation: https://twitter.com/psychemedia/status/1199707352540368896 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/642/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
640917326 | MDU6SXNzdWU2NDA5MTczMjY= | 852 | canned_queries() plugin hook | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 9 | 2020-06-18T05:24:35Z | 2020-06-20T03:08:40Z | 2020-06-20T03:08:40Z | OWNER | Canned queries are currently baked into Allowing users to interactively create new canned queries - even if just through a plugin - would make a lot of sense. Is this a new plugin hook or some other mechanism? Lots to think about here. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/852/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
632843030 | MDU6SXNzdWU2MzI4NDMwMzA= | 807 | Ability to ship alpha and beta releases | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 18 | 2020-06-07T00:12:55Z | 2020-06-18T21:41:16Z | 2020-06-18T21:41:16Z | OWNER | I'd like to be able to ship alphas and betas to PyPI so in-development plugins can depend on them and help test unreleased plugin hooks. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/807/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
641460179 | MDU6SXNzdWU2NDE0NjAxNzk= | 854 | Respect default scope["actor"] if one exists | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 0 | 2020-06-18T18:25:08Z | 2020-06-18T18:39:22Z | 2020-06-18T18:39:22Z | OWNER | ASGI wrapper plugins that themselves set the Relevant code: https://github.com/simonw/datasette/blob/09a3479a5402df96489ed6cab6cc9fd674bf3433/datasette/app.py#L910-L921 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/854/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
635049296 | MDU6SXNzdWU2MzUwNDkyOTY= | 820 | Idea: Plugin hook for registering canned queries | simonw 9599 | closed | 0 | 2 | 2020-06-09T01:58:21Z | 2020-06-18T17:58:02Z | 2020-06-18T17:58:02Z | OWNER | Thought of this while thinking about possible permissions plugins (#818). Imagine an API key plugin which allows access for API keys. It could let users register new API keys by providing a writable canned query for writing to the To do this the plugin needs to register the query. At the moment queries have to be registered in One challenge: how does the plugin know which named database the query should be registered for? It could default to the first attached database and allow users to optionally tell the plugin "actually use this named database instead" in plugin configuration. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/820/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
640330278 | MDU6SXNzdWU2NDAzMzAyNzg= | 851 | Having trouble getting writable canned queries to work | abdusco 3243482 | closed | 0 | 1 | 2020-06-17T10:30:28Z | 2020-06-17T10:33:25Z | 2020-06-17T10:32:33Z | CONTRIBUTOR | Hey, I'm trying to get canned inserts to work. I have an DB with following metadata: ```text sqlite> .mode line sqlite> select name, sql from sqlite_master where name like '%search%'; name = search sql = CREATE TABLE "search" ("id" INTEGER NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "url" VARCHAR(255) NOT NULL) ``` ```yaml ...queries:
add_search:
sql: insert into search(name, url) VALUES (:name, :url),
write: true
but when submit post the form I've attached a debugger to see where the error comes from, because Inside
this line raises an exception. That led me to believe I had something wrong with my SQL. But running the command in
So I'm a bit lost here.
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/851/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
639993467 | MDU6SXNzdWU2Mzk5OTM0Njc= | 850 | Proof of concept for Datasette on AWS Lambda with EFS | simonw 9599 | open | 0 | 25 | 2020-06-16T21:48:31Z | 2020-06-16T23:52:16Z | OWNER | If Datasette can run on Lambda with access to EFS it could both read AND write large databases there. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/850/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
574021194 | MDU6SXNzdWU1NzQwMjExOTQ= | 691 | --reload sould reload server if code in --plugins-dir changes | simonw 9599 | open | 0 | 1 | 2020-03-02T14:42:21Z | 2020-06-14T02:35:17Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/691/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
|||||||||
638241779 | MDU6SXNzdWU2MzgyNDE3Nzk= | 846 | "Too many open files" error running tests | simonw 9599 | closed | 0 | 6 | 2020-06-13T22:11:40Z | 2020-06-14T00:26:31Z | 2020-06-14T00:26:31Z | OWNER | I got this on my laptop: ```pytest ... /Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.7/site-packages/jinja2/loaders.py:171: in get_source f = open_if_exists(filename) filename = '/Users/simon/Dropbox/Development/datasette/datasette/templates/400.html', mode = 'rb'
/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.7/site-packages/jinja2/utils.py:154: OSError ``` Based on the conversation in https://github.com/pytest-dev/pytest/issues/2970 I'm worried that my tests are opening too many files without closing them. In particular... I call Could this be resulting in my tests eventually opening too many unclosed file handles? How could I confirm this? |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/846/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
638238548 | MDU6SXNzdWU2MzgyMzg1NDg= | 845 | Code coverage should ignore files in .coveragerc | simonw 9599 | open | 0 | 0 | 2020-06-13T21:45:42Z | 2020-06-13T21:46:03Z | OWNER | I'm not sure why this is, but the code coverage I have running in a GitHub Action doesn't take my Here's the bit that's ignored: https://github.com/simonw/datasette/blob/cf7a2bdb404734910ec07abc7571351a2d934828/.coveragerc#L1-L2 As a result my coverage score is 84%, when it should be 92%:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/845/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
||||||||
638104520 | MDU6SXNzdWU2MzgxMDQ1MjA= | 841 | Research feasibility of 100% test coverage | simonw 9599 | closed | 0 | 9 | 2020-06-13T06:07:01Z | 2020-06-13T21:38:46Z | 2020-06-13T21:38:46Z | OWNER | Inspired by https://twitter.com/mikeal/status/1271473021593636866
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/841/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
638229448 | MDU6SXNzdWU2MzgyMjk0NDg= | 843 | Configure codecov.io | simonw 9599 | closed | 0 | 2 | 2020-06-13T20:45:00Z | 2020-06-13T21:36:52Z | 2020-06-13T21:36:52Z | OWNER | Originally posted by @simonw in https://github.com/simonw/datasette/issues/841#issuecomment-643660757 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/843/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issues] ( [id] INTEGER PRIMARY KEY, [node_id] TEXT, [number] INTEGER, [title] TEXT, [user] INTEGER REFERENCES [users]([id]), [state] TEXT, [locked] INTEGER, [assignee] INTEGER REFERENCES [users]([id]), [milestone] INTEGER REFERENCES [milestones]([id]), [comments] INTEGER, [created_at] TEXT, [updated_at] TEXT, [closed_at] TEXT, [author_association] TEXT, [pull_request] TEXT, [body] TEXT, [repo] INTEGER REFERENCES [repos]([id]), [type] TEXT , [active_lock_reason] TEXT, [performed_via_github_app] TEXT, [reactions] TEXT, [draft] INTEGER, [state_reason] TEXT); CREATE INDEX [idx_issues_repo] ON [issues] ([repo]); CREATE INDEX [idx_issues_milestone] ON [issues] ([milestone]); CREATE INDEX [idx_issues_assignee] ON [issues] ([assignee]); CREATE INDEX [idx_issues_user] ON [issues] ([user]);