{"id": 717783692, "node_id": "MDU6SXNzdWU3MTc3ODM2OTI=", "number": 1002, "title": "Release notes for Datasette 0.50", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 1, "created_at": "2020-10-09T01:45:00Z", "updated_at": "2020-10-09T17:52:54Z", "closed_at": "2020-10-09T17:52:53Z", "author_association": "OWNER", "pull_request": null, "body": "https://github.com/simonw/datasette/compare/0.49.1...c12b7a5def7028845a54a9fdac4052a87a0a8bb8", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1002/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 681375466, "node_id": "MDU6SXNzdWU2ODEzNzU0NjY=", "number": 943, "title": "await datasette.client.get(path) mechanism for executing internal requests", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 33, "created_at": "2020-08-18T22:17:42Z", "updated_at": "2020-10-09T17:22:55Z", "closed_at": "2020-10-09T16:11:26Z", "author_association": "OWNER", "pull_request": null, "body": "`datasette-graphql` works by making internal requests to the TableView class (in order to take advantage of existing pagination logic, plus options like `?_search=` and `?_where=`) - see #915 \r\n\r\nI want to support a `mod_rewrite` style mechanism for putting nicer URLs on top of Datasette pages - I botched that together for a project here using an internal ASGI proxying trick: https://github.com/natbat/tidepools_near_me/commit/ec102c6da5a5d86f17628740d90b6365b671b5e1\r\n\r\nIf the `datasette` object provided a documented method for executing internal requests (in a way that makes sense with logging etc - i.e. doesn't get logged as a separate request) both of these use-cases would be much neater.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/943/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 718264811, "node_id": "MDU6SXNzdWU3MTgyNjQ4MTE=", "number": 1006, "title": "Documentation for datasette.client", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 2, "created_at": "2020-10-09T16:09:02Z", "updated_at": "2020-10-09T17:22:31Z", "closed_at": "2020-10-09T17:20:37Z", "author_association": "OWNER", "pull_request": null, "body": "> I'm going to document this in a separate issue.\r\n\r\n_Originally posted by @simonw in https://github.com/simonw/datasette/pull/1000#issuecomment-706269271_", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1006/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 718255803, "node_id": "MDU6SXNzdWU3MTgyNTU4MDM=", "number": 1004, "title": "Replace MockRequest with Request.fake()", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 0, "created_at": "2020-10-09T15:55:28Z", "updated_at": "2020-10-09T16:26:24Z", "closed_at": "2020-10-09T16:26:24Z", "author_association": "OWNER", "pull_request": null, "body": "This code: https://github.com/simonw/datasette/blob/7249ac5ca04b5ddc6517750326ee7e522cc49145/tests/utils.py#L1-L8\r\n\r\nPredates the introduction of this class method: https://github.com/simonw/datasette/blob/7249ac5ca04b5ddc6517750326ee7e522cc49145/datasette/utils/asgi.py#L108-L121", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1004/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 717746043, "node_id": "MDExOlB1bGxSZXF1ZXN0NTAwMjU2NDg1", "number": 1000, "title": "datasette.client internal requests mechanism", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": {"value": 9599, "label": "simonw"}, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 18, "created_at": "2020-10-08T23:58:25Z", "updated_at": "2020-10-09T16:11:26Z", "closed_at": "2020-10-09T16:11:25Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1000", "body": "Refs #943", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1000/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 717768441, "node_id": "MDU6SXNzdWU3MTc3Njg0NDE=", "number": 1001, "title": "OPTIONS requests return a 500 error", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 8, "created_at": "2020-10-09T00:57:13Z", "updated_at": "2020-10-09T01:44:41Z", "closed_at": "2020-10-09T01:43:58Z", "author_association": "OWNER", "pull_request": null, "body": "```\r\n% curl -vv -XOPTIONS https://latest.datasette.io/\r\n* Trying 216.58.195.83:443...\r\n> OPTIONS / HTTP/1.1\r\n> Host: latest.datasette.io\r\n> User-Agent: curl/7.70.0\r\n> Accept: */*\r\n> \r\n* Mark bundle as not supporting multiuse\r\n< HTTP/1.1 500 Internal Server Error\r\n```", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1001/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 716988478, "node_id": "MDU6SXNzdWU3MTY5ODg0Nzg=", "number": 997, "title": "Documentation covering buildpack deployment", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 3, "created_at": "2020-10-08T03:21:52Z", "updated_at": "2020-10-08T23:56:03Z", "closed_at": "2020-10-08T23:32:10Z", "author_association": "OWNER", "pull_request": null, "body": "A tidied up version of https://til.simonwillison.net/til/til/digitalocean_datasette-on-digitalocean-app-platform.md - but mention that you can deploy to Heroku using the same mechanism.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/997/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 705057955, "node_id": "MDU6SXNzdWU3MDUwNTc5NTU=", "number": 969, "title": "Add --tar option to \"datasette publish heroku\"", "user": {"value": 1448859, "label": "betatim"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 3, "created_at": "2020-09-20T06:54:53Z", "updated_at": "2020-10-08T23:55:59Z", "closed_at": "2020-10-08T23:30:59Z", "author_association": "NONE", "pull_request": null, "body": "This issue is about how best to pass additional options to tools used for publishing datasettes. A concrete example is wanting to pass the `--tar` flag to the heroku CLI tool. I think there are at least two options for doing this: documentation for each publishing tool to explain how to set flags via env variables (if possible) or building a mechanism that lets users pass additional flags through datasette.\r\n\r\nWhen using `datasette publish heroku binder-launches.db --extra-options=\"--config facet_time_limit_ms:35000 --config sql_time_limit_ms:35000\" --name=binderlytics --install=datasette-vega` to publish https://binderlytics.herokuapp.com/ the following error happens:\r\n\r\n```\r\n \u203a Warning: heroku update available from 7.42.1 to 7.43.0.\r\n \u203a Warning: heroku update available from 7.42.1 to 7.43.0.\r\n \u203a Warning: heroku update available from 7.42.1 to 7.43.0.\r\nSetting WEB_CONCURRENCY and restarting \u2b22 binderlytics... done, v13\r\nWEB_CONCURRENCY: 1\r\n \u203a Warning: heroku update available from 7.42.1 to 7.43.0.\r\n \u25b8 Couldn't detect GNU tar. Builds could fail due to decompression errors\r\n \u25b8 See https://devcenter.heroku.com/articles/platform-api-deploying-slugs#create-slug-archive\r\n \u25b8 Please install it, or specify the '--tar' option\r\n \u25b8 Falling back to node's built-in compressor\r\nbuffer.js:358\r\n throw new ERR_INVALID_OPT_VALUE.RangeError('size', size);\r\n ^\r\n\r\nRangeError [ERR_INVALID_OPT_VALUE]: The value \"3303763968\" is invalid for option \"size\"\r\n at Function.alloc (buffer.js:367:3)\r\n at new Buffer (buffer.js:281:19)\r\n at Readable. (/Users/thead/.local/share/heroku/node_modules/archiver-utils/index.js:39:15)\r\n at Readable.emit (events.js:322:22)\r\n at endReadableNT (/Users/thead/.local/share/heroku/node_modules/readable-stream/lib/_stream_readable.js:1010:12)\r\n at processTicksAndRejections (internal/process/task_queues.js:84:21) {\r\n code: 'ERR_INVALID_OPT_VALUE'\r\n}\r\n```\r\n\r\nAfter installing GNU tar with `brew install gnu-tar` and modifying `datasette/publish/heroku.py` to include the `--tar=/path/to/gnu-tar` publishing works.\r\n\r\nI think the problem occurs once your heroku slug reaches a certain size. At least when I add only a few 100 entries to the datasette then the error does not occcur.\r\n\r\ndatasette version 0.49.1\r\nOSX 10.14.6 (18G103)", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/969/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 459397625, "node_id": "MDU6SXNzdWU0NTkzOTc2MjU=", "number": 514, "title": "Documentation with recommendations on running Datasette in production without using Docker", "user": {"value": 7936571, "label": "chrismp"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 27, "created_at": "2019-06-21T22:48:12Z", "updated_at": "2020-10-08T23:55:53Z", "closed_at": "2020-10-08T23:33:05Z", "author_association": "NONE", "pull_request": null, "body": "I've got some SQLite databases too big to push to Heroku or the other services with built-in support in datasette. \r\n\r\nSo instead I moved my datasette code and databases to a remote server on Kimsufi. In the folder containing the SQLite databases I run the following code.\r\n\r\n`nohup datasette serve -h 0.0.0.0 *.db --cors --port 8000 --metadata metadata.json > output.log 2>&1 &`.\r\n\r\nWhen I go to `http://my-remote-server.com:8000`, the site loads. But I know this is not a good long-term solution to running datasette on this server. \r\n\r\nWhat is the \"correct\" way to have this site run, preferably on server port 80?", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/514/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 717729056, "node_id": "MDU6SXNzdWU3MTc3MjkwNTY=", "number": 999, "title": "Datasette should default to running Uvicorn with workers=1", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 3, "created_at": "2020-10-08T23:07:03Z", "updated_at": "2020-10-08T23:55:46Z", "closed_at": "2020-10-08T23:21:36Z", "author_association": "OWNER", "pull_request": null, "body": "Uvicorn uses the `WEB_CONCURRENCY` variable, if set, to specify the number of workers to use.\r\n\r\nDatasette does not work with options for this other than 1:\r\n\r\n```\r\nWEB_CONCURRENCY=2 datasette .\r\nWARNING: You must pass the application as an import string to enable 'reload' or 'workers'.\r\n```\r\nThis was the cause of the Heroku bug in #627.\r\n\r\nI fixed that issue by setting `WEB_CONCURRENCY=1` in `datasette publish heroku`, but a better fix would be to hard-code `workers=1` in Datasette itself.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/999/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 716756082, "node_id": "MDU6SXNzdWU3MTY3NTYwODI=", "number": 996, "title": "Better handling of multiple matching template wildcard paths", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 3, "created_at": "2020-10-07T18:25:40Z", "updated_at": "2020-10-08T23:55:41Z", "closed_at": "2020-10-07T22:51:17Z", "author_association": "OWNER", "pull_request": null, "body": "I tried building this:\r\n\r\n templates/pages/{topic}.html\r\n templates/pages/{topic}/{slug}.html\r\n\r\nAnd it didn't work - hits to /foo/bar which should have been rendered by the `{slug}.html` template were instead rendered by the top level `{topic.html}` template.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/996/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 715779909, "node_id": "MDExOlB1bGxSZXF1ZXN0NDk4NjMwNzA4", "number": 995, "title": "Document setting Google Cloud SDK properties", "user": {"value": 110420, "label": "ghing"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 2, "created_at": "2020-10-06T15:18:01Z", "updated_at": "2020-10-08T23:55:30Z", "closed_at": "2020-10-06T16:25:38Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/995", "body": "Document setting Google Cloud SDK properties to avoid having to respond to interactive prompts when running `datasette publish cloudrun`.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/995/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 715072935, "node_id": "MDU6SXNzdWU3MTUwNzI5MzU=", "number": 993, "title": "Column action menu should show column type", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 2, "created_at": "2020-10-05T18:40:49Z", "updated_at": "2020-10-08T23:55:19Z", "closed_at": "2020-10-06T00:33:15Z", "author_association": "OWNER", "pull_request": null, "body": "\"data__rent_burden_households_and_median_gross_rent_percent__97_rows\"\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/993/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 713304417, "node_id": "MDU6SXNzdWU3MTMzMDQ0MTc=", "number": 989, "title": "Column action sort descending/ascending links should remove _next= pagination", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 0, "created_at": "2020-10-02T02:33:48Z", "updated_at": "2020-10-08T23:55:15Z", "closed_at": "2020-10-04T18:05:28Z", "author_association": "OWNER", "pull_request": null, "body": "On page https://latest.datasette.io/fixtures/sortable?_next=15%2Cg%2Cz&_sort=sortable clicking on `sortable_with_nulls > sort_ascending` links to https://latest.datasette.io/fixtures/sortable?_next=15%2Cg%2Cz&_sort_desc=sortable_with_nulls - which doesn't make sense.\r\n\r\nChanging the sort order needs to reset to the first page.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/989/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 712839383, "node_id": "MDU6SXNzdWU3MTI4MzkzODM=", "number": 985, "title": "Column actions should support facet by compound primary keys", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 1, "created_at": "2020-10-01T13:21:57Z", "updated_at": "2020-10-08T23:55:11Z", "closed_at": "2020-10-01T16:50:41Z", "author_association": "OWNER", "pull_request": null, "body": "On https://latest.datasette.io/fixtures/compound_three_primary_keys the column action menu doesn't display for the pk1, pk2 and pk3 columns (because they are primary keys) even though faceting by them is actually useful.\r\n\r\nRefs #98", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/985/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 711627628, "node_id": "MDU6SXNzdWU3MTE2Mjc2Mjg=", "number": 981, "title": "Action menu for table columns", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 16, "created_at": "2020-09-30T04:45:38Z", "updated_at": "2020-10-08T23:55:00Z", "closed_at": "2020-09-30T23:58:17Z", "author_association": "OWNER", "pull_request": null, "body": "At the very least I'd like a menu on each table column that lets me select sort-asc v.s. sort-desc without having to click twice.\r\n\r\nI'd also like to be able to indicate that a column should be used for faceting (possibly only for columns that are not floating point and do not have a unique index on them).\r\n\r\nThis needs to be built with accessibility in mind - I don't want screenreaders to read out the contents of a menu as the \"th\" label for any given cell.\r\n\r\nRelated: #690", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/981/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 710819020, "node_id": "MDU6SXNzdWU3MTA4MTkwMjA=", "number": 980, "title": "Another rendering glitch with column headers on mobile", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 2, "created_at": "2020-09-29T06:53:13Z", "updated_at": "2020-10-08T23:54:49Z", "closed_at": "2020-09-29T19:21:50Z", "author_association": "OWNER", "pull_request": null, "body": "Similar to #978.\r\n\r\nhttps://latest-with-plugins.datasette.io/fixtures?sql=select%0D%0A++dateutil_rrule(%27FREQ%3DHOURLY%3BCOUNT%3D5%27)%2C%0D%0A++dateutil_rrule_date(%0D%0A++++%27FREQ%3DDAILY%3BCOUNT%3D3%27%2C%0D%0A++++%271st+jan+2020%27%0D%0A++)%3B\r\n\r\n\"fixtures__select_dateutil_rrule__FREQ_HOURLY_COUNT_5____dateutil_rrule_date___FREQ_DAILY_COUNT_3____1st_jan_2020____\"\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/980/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 710506708, "node_id": "MDU6SXNzdWU3MTA1MDY3MDg=", "number": 978, "title": "Rendering glitch with column headings on mobile", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 6, "created_at": "2020-09-28T19:04:45Z", "updated_at": "2020-10-08T23:54:40Z", "closed_at": "2020-09-28T22:43:01Z", "author_association": "OWNER", "pull_request": null, "body": "![6348FED5-1310-47DA-BF54-810E63C96C6F](https://user-images.githubusercontent.com/9599/94474607-bc368d00-0182-11eb-9bb1-9a0e455353f1.jpeg)\r\n\r\nhttps://latest-with-plugins.datasette.io/fixtures?sql=select%0D%0A++dateutil_parse%28%2210+october+2020+3pm%22%29%2C%0D%0A++dateutil_easter%28%222020%22%29%2C%0D%0A++dateutil_parse_fuzzy%28%22This+is+due+10+september%22%29%2C%0D%0A++dateutil_parse%28%221%2F2%2F2020%22%29%2C%0D%0A++dateutil_parse%28%222020-03-04%22%29%2C%0D%0A++dateutil_parse_dayfirst%28%222020-03-04%22%29%2C%0D%0A++dateutil_easter%282020%29", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/978/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 706486323, "node_id": "MDU6SXNzdWU3MDY0ODYzMjM=", "number": 973, "title": "'bool' object is not callable error", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 2, "created_at": "2020-09-22T15:30:54Z", "updated_at": "2020-10-08T23:54:32Z", "closed_at": "2020-09-22T15:40:35Z", "author_association": "OWNER", "pull_request": null, "body": "I'm getting this when latest is deployed to Cloud Run:\r\n```\r\nTraceback (most recent call last):\r\n File \"/usr/local/bin/datasette\", line 8, in \r\n sys.exit(cli())\r\n File \"/usr/local/lib/python3.8/site-packages/click/core.py\", line 829, in __call__\r\n return self.main(*args, **kwargs)\r\n File \"/usr/local/lib/python3.8/site-packages/click/core.py\", line 782, in main\r\n rv = self.invoke(ctx)\r\n File \"/usr/local/lib/python3.8/site-packages/click/core.py\", line 1259, in invoke\r\n return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n File \"/usr/local/lib/python3.8/site-packages/click/core.py\", line 1066, in invoke\r\n return ctx.invoke(self.callback, **ctx.params)\r\n File \"/usr/local/lib/python3.8/site-packages/click/core.py\", line 610, in invoke\r\n return callback(*args, **kwargs)\r\n File \"/usr/local/lib/python3.8/site-packages/datasette/cli.py\", line 406, in serve\r\n inspect_data = json.load(open(inspect_file))\r\nTypeError: 'bool' object is not callable\r\n```\r\nI think I may have broken things in #970 - a980199e61fe7ccf02c2123849d86172d2ae54ff", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/973/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 705108492, "node_id": "MDU6SXNzdWU3MDUxMDg0OTI=", "number": 970, "title": "request an \"-o\" option on \"datasette server\" to open the default browser at the running url", "user": {"value": 2861690, "label": "secretGeek"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 4, "created_at": "2020-09-20T13:16:34Z", "updated_at": "2020-10-08T23:54:27Z", "closed_at": "2020-09-22T14:27:04Z", "author_association": "NONE", "pull_request": null, "body": "This is a request for a \"convenience\" feature, and only a nice to have. It's based on seeing this feature in several little command line hypertext server apps.\r\n\r\nIf you run, for example:\r\n\r\n datasette.exe serve --open \"mydb.s3db\" \r\n\r\nI would like it if default browser is launched, at the URL that is being served.\r\n\r\nThe angular cli does this, for example \r\n\r\n ng serve --open #see https://angular.io/cli/serve\r\n\r\n...as does my usual mini web server of choice when inspecting local static files....\r\n\r\n npx http-server -o # see https://www.npmjs.com/package/http-server\r\n\r\nJust a tiny thing. Love your work!", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/970/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 653529088, "node_id": "MDU6SXNzdWU2NTM1MjkwODg=", "number": 891, "title": "Consider using enable_callback_tracebacks(True)", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5971510, "label": "Datasette 0.50"}, "comments": 5, "created_at": "2020-07-08T19:07:16Z", "updated_at": "2020-10-08T23:54:23Z", "closed_at": "2020-09-15T21:59:27Z", "author_association": "OWNER", "pull_request": null, "body": "From https://docs.python.org/3/library/sqlite3.html#sqlite3.enable_callback_tracebacks\r\n\r\n> `sqlite3.``enable_callback_tracebacks`(*flag*)[\u00b6](https://docs.python.org/3/library/sqlite3.html#sqlite3.enable_callback_tracebacks \"Permalink to this definition\")\r\n> \r\n> By default you will not get any tracebacks in user-defined functions, aggregates, converters, authorizer callbacks etc. If you want to debug them, you can call this function with *flag* set to `True`. Afterwards, you will get tracebacks from callbacks on `sys.stderr`. Use [`False`](https://docs.python.org/3/library/constants.html#False \"False\") to disable the feature again.\r\n\r\nMaybe turn this on for all of Datasette? Are there any disadvantages to doing that?", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/891/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}