{"html_url": "https://github.com/simonw/datasette/pull/209#issuecomment-382205189", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/209", "id": 382205189, "node_id": "MDEyOklzc3VlQ29tbWVudDM4MjIwNTE4OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-04-18T00:42:44Z", "updated_at": "2018-04-18T00:43:02Z", "author_association": "OWNER", "body": "I managed to get a better error message out of that test. The server is returning this (but only on Python 3.6, not on Python 3.5 - and only in Travis, not in my local environment):\r\n\r\n```{'error': 'interrupted', 'ok': False, 'status': 400, 'title': 'Invalid SQL'}```\r\n\r\nhttps://travis-ci.org/simonw/datasette/jobs/367929134", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 314455877, "label": " Don't duplicate simple primary keys in the link column"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/209#issuecomment-382210976", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/209", "id": 382210976, "node_id": "MDEyOklzc3VlQ29tbWVudDM4MjIxMDk3Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-04-18T01:12:26Z", "updated_at": "2018-04-18T01:12:26Z", "author_association": "OWNER", "body": "OK, aaf59db570ab7688af72c08bb5bc1edc145e3e07 should mean that the tests pass when I merge that.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 314455877, "label": " Don't duplicate simple primary keys in the link column"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/214#issuecomment-382048582", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/214", "id": 382048582, "node_id": "MDEyOklzc3VlQ29tbWVudDM4MjA0ODU4Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-04-17T16:04:42Z", "updated_at": "2018-04-18T02:24:46Z", "author_association": "OWNER", "body": "One possible option: let plugins bundle their own `static/` directory and then register themselves with Datasette, then have `/-/static-plugins/name-of-plugin/...` serve files from that directory.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 314506446, "label": "Ability for plugins to define extra JavaScript and CSS"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/14#issuecomment-382256729", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/14", "id": 382256729, "node_id": "MDEyOklzc3VlQ29tbWVudDM4MjI1NjcyOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-04-18T04:29:29Z", "updated_at": "2018-04-18T04:30:14Z", "author_association": "OWNER", "body": "I added a mechanism for plugins to serve static files and define custom CSS and JS URLs in #214 - see new documentation on http://datasette.readthedocs.io/en/latest/plugins.html#static-assets and http://datasette.readthedocs.io/en/latest/plugins.html#extra-css-urls", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 267707940, "label": "Datasette Plugins"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/223#issuecomment-382408128", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/223", "id": 382408128, "node_id": "MDEyOklzc3VlQ29tbWVudDM4MjQwODEyOA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-04-18T14:33:09Z", "updated_at": "2018-04-18T14:33:09Z", "author_association": "OWNER", "body": "Demo:\r\n\r\n datasette publish now sortable.db --install datasette-plugin-demos --branch=master\r\n\r\nProduced this deployment, with both the `random_integer()` function and the static file from https://github.com/simonw/datasette-plugin-demos/tree/0.2\r\n\r\nhttps://datasette-issue-223.now.sh/-/static-plugins/datasette_plugin_demos/plugin.js\r\n\r\nhttps://datasette-issue-223.now.sh/sortable-4bbaa6f?sql=select+random_integer%280%2C+10%29\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 315327860, "label": "datasette publish --install=name-of-plugin"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/223#issuecomment-382409989", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/223", "id": 382409989, "node_id": "MDEyOklzc3VlQ29tbWVudDM4MjQwOTk4OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-04-18T14:38:08Z", "updated_at": "2018-04-18T14:38:08Z", "author_association": "OWNER", "body": "Tested on Heroku as well.\r\n\r\n datasette publish heroku sortable.db --install datasette-plugin-demos --branch=master\r\n\r\nhttps://morning-tor-45944.herokuapp.com/-/static-plugins/datasette_plugin_demos/plugin.js\r\n\r\nhttps://morning-tor-45944.herokuapp.com/sortable-4bbaa6f?sql=select+random_integer%280%2C+10%29", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 315327860, "label": "datasette publish --install=name-of-plugin"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/223#issuecomment-382413121", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/223", "id": 382413121, "node_id": "MDEyOklzc3VlQ29tbWVudDM4MjQxMzEyMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-04-18T14:47:18Z", "updated_at": "2018-04-18T14:47:18Z", "author_association": "OWNER", "body": "And tested `datasette package` - this time exercising the ability to pass more than one `--install` option:\r\n\r\n```\r\n$ datasette package sortable.db --branch=master --install requests --install datasette-plugin-demos\r\nSending build context to Docker daemon 125.4kB\r\nStep 1/7 : FROM python:3\r\n ---> 79e1dc9af1c1\r\nStep 2/7 : COPY . /app\r\n ---> 6e8e40bce378\r\nStep 3/7 : WORKDIR /app\r\nRemoving intermediate container 7cdc9ab20d09\r\n ---> f42258c2211f\r\nStep 4/7 : RUN pip install https://github.com/simonw/datasette/archive/master.zip requests datasette-plugin-demos\r\n ---> Running in a0f17cec08a4\r\nCollecting ...\r\nRemoving intermediate container a0f17cec08a4\r\n ---> beea84e73271\r\nStep 5/7 : RUN datasette inspect sortable.db --inspect-file inspect-data.json\r\n ---> Running in 4daa28792348\r\nRemoving intermediate container 4daa28792348\r\n ---> c60312d21b99\r\nStep 6/7 : EXPOSE 8001\r\n ---> Running in fa728468482d\r\nRemoving intermediate container fa728468482d\r\n ---> 8f219a61fddc\r\nStep 7/7 : CMD [\"datasette\", \"serve\", \"--host\", \"0.0.0.0\", \"sortable.db\", \"--cors\", \"--port\", \"8001\", \"--inspect-file\", \"inspect-data.json\"]\r\n ---> Running in cd4eaeb2ce9e\r\nRemoving intermediate container cd4eaeb2ce9e\r\n ---> 066e257c7c44\r\nSuccessfully built 066e257c7c44\r\n(venv) datasette $ docker run -p 8081:8001 066e257c7c44\r\nServe! files=('sortable.db',) on port 8001\r\n[2018-04-18 14:40:18 +0000] [1] [INFO] Goin' Fast @ http://0.0.0.0:8001\r\n[2018-04-18 14:40:18 +0000] [1] [INFO] Starting worker [1]\r\n[2018-04-18 14:46:01 +0000] - (sanic.access)[INFO][1:7]: GET http://localhost:8081/-/static-plugins/datasette_plugin_demos/plugin.js 200 16\r\n``` ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 315327860, "label": "datasette publish --install=name-of-plugin"}, "performed_via_github_app": null}