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,