html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,issue,performed_via_github_app https://github.com/simonw/datasette/issues/272#issuecomment-504697742,https://api.github.com/repos/simonw/datasette/issues/272,504697742,MDEyOklzc3VlQ29tbWVudDUwNDY5Nzc0Mg==,9599,2019-06-22T20:55:59Z,2019-06-22T20:56:22Z,OWNER,"Getting this to work with both Sanic AND ASGI at the same time (via the classes described previously with an `--asgi` command-line option) is proving way trickier than I expected, mainly because of the complexity of [the current Datasette.app() method](https://github.com/simonw/datasette/blob/35429f90894321eda7f2db31b9ea7976f31f73ac/datasette/app.py#L545-L721). I'm going to drop the compatibility path for a bit and see if I can make progress on a pure-ASGI port.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",324188953, https://github.com/simonw/datasette/issues/516#issuecomment-504697187,https://api.github.com/repos/simonw/datasette/issues/516,504697187,MDEyOklzc3VlQ29tbWVudDUwNDY5NzE4Nw==,9599,2019-06-22T20:46:35Z,2019-06-22T20:46:35Z,OWNER,I'm going to resist the temptation to do this until I've merged the `asgi` branch from #272 ,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126, https://github.com/simonw/datasette/issues/516#issuecomment-504696638,https://api.github.com/repos/simonw/datasette/issues/516,504696638,MDEyOklzc3VlQ29tbWVudDUwNDY5NjYzOA==,9599,2019-06-22T20:37:25Z,2019-06-22T20:38:42Z,OWNER,"This test added do `test_black.py` seems to do the trick: ```python @pytest.mark.parametrize(""path"", code_root.glob(""**/*.py"")) def test_isort(path): # Have to capture stdout because isort uses print() directly stdout = sys.stdout sys.stdout = io.StringIO() result = isort.SortImports(path, check=True) assert ( not result.incorrectly_sorted ), ""{} has incorrectly sorted imports, fix with 'isort -rc . && black .'"" sys.stdout = stdout ``` I'll rename `test_black.py` to `test_lint.py` to reflect that it now covers more forms of linting. Also needed: add `move_to_front(items, ""test_isort"")` to `conftest.py`. And add `isort` to `extras_require` in `setup.py`.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126, https://github.com/simonw/datasette/issues/516#issuecomment-504696610,https://api.github.com/repos/simonw/datasette/issues/516,504696610,MDEyOklzc3VlQ29tbWVudDUwNDY5NjYxMA==,9599,2019-06-22T20:36:57Z,2019-06-22T20:36:57Z,OWNER,"According to [the black documentation](https://black.readthedocs.io/en/stable/the_black_code_style.html?highlight=isort.cfg) the following config file is necessary to avoid isort and black getting into an edit war with each other: ``` [settings] multi_line_output=3 include_trailing_comma=True force_grid_wrap=0 use_parentheses=True line_length=88 ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459509126, https://github.com/simonw/datasette/issues/514#issuecomment-504663390,https://api.github.com/repos/simonw/datasette/issues/514,504663390,MDEyOklzc3VlQ29tbWVudDUwNDY2MzM5MA==,9599,2019-06-22T12:52:27Z,2019-06-22T12:52:27Z,OWNER,This example is useful to - I like how it has a Makefile that knows how to set up systemd: https://github.com/pikesley/Queube,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459397625, https://github.com/simonw/datasette/issues/514#issuecomment-504663201,https://api.github.com/repos/simonw/datasette/issues/514,504663201,MDEyOklzc3VlQ29tbWVudDUwNDY2MzIwMQ==,9599,2019-06-22T12:49:56Z,2019-06-22T12:49:56Z,OWNER,"Here are some partial notes I have saved from an nginx configuration I've used in the past: ``` cat /etc/nginx/sites-available/default server { listen 80 default_server; listen [::]:80 default_server; location / { proxy_pass http://127.0.0.1:8001/; proxy_set_header Host $host; } ... ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459397625, https://github.com/simonw/datasette/issues/514#issuecomment-504662987,https://api.github.com/repos/simonw/datasette/issues/514,504662987,MDEyOklzc3VlQ29tbWVudDUwNDY2Mjk4Nw==,9599,2019-06-22T12:46:39Z,2019-06-22T12:46:39Z,OWNER,... and @russss also suggested systemd 21 seconds before I posted that!,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459397625, https://github.com/simonw/datasette/issues/514#issuecomment-504662931,https://api.github.com/repos/simonw/datasette/issues/514,504662931,MDEyOklzc3VlQ29tbWVudDUwNDY2MjkzMQ==,9599,2019-06-22T12:45:47Z,2019-06-22T12:45:47Z,OWNER,I asked about this on Twitter and got a solid recommendation for systemd and this tutorial: https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units - via https://twitter.com/sil/status/1142412145990221825,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459397625, https://github.com/simonw/datasette/issues/514#issuecomment-504662063,https://api.github.com/repos/simonw/datasette/issues/514,504662063,MDEyOklzc3VlQ29tbWVudDUwNDY2MjA2Mw==,9599,2019-06-22T12:31:58Z,2019-06-22T12:31:58Z,OWNER,This is also relevant to Datasette Library #417 ,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459397625, https://github.com/simonw/datasette/issues/514#issuecomment-504661990,https://api.github.com/repos/simonw/datasette/issues/514,504661990,MDEyOklzc3VlQ29tbWVudDUwNDY2MTk5MA==,9599,2019-06-22T12:30:47Z,2019-06-22T12:30:47Z,OWNER,A section in the Datasette docs that acts as recommendations plus a tutorial for running Datasette on a VPS without using a Docker would be excellent.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459397625, https://github.com/simonw/datasette/issues/514#issuecomment-504661909,https://api.github.com/repos/simonw/datasette/issues/514,504661909,MDEyOklzc3VlQ29tbWVudDUwNDY2MTkwOQ==,9599,2019-06-22T12:29:46Z,2019-06-22T12:29:46Z,OWNER,"I'm still trying to figure this out myself. I'm confident that running nginx on port 80 and using it to proxy traffic to Datasette is a sensible way to solve the port problem. As for running Datasette itself: the two options that seem best to me are some kind of Init.d service or running it under supervisord. I have to admit I haven't worked out the necessary incantation for either of those yet: the solitary instance I have that's not running as a Docker container is sitting in a ""screen"" instance for the moment!","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",459397625,