{"html_url": "https://github.com/simonw/datasette/pull/666#issuecomment-590022164", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/666", "id": 590022164, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDAyMjE2NA==", "user": {"value": 13896256, "label": "kevindkeogh"}, "created_at": "2020-02-23T03:26:00Z", "updated_at": "2020-02-23T03:26:00Z", "author_association": "CONTRIBUTOR", "body": "It was very helpful for me, using it for a 15M row table. Added a test, happy to amend though!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 562085508, "label": "Use inspect-file, if possible, for total row count"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/680#issuecomment-590030258", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/680", "id": 590030258, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDAzMDI1OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T05:51:04Z", "updated_at": "2020-02-23T05:51:04Z", "author_association": "OWNER", "body": "Did a bunch of research in a Jupyter notebook and it looks like I can use `pypandoc` to achieve this conversion without too much trouble: https://gist.github.com/simonw/41d56712427e6a4178fc6495d664005f", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 569275763, "label": "Release automation: automate the bit that posts the GitHub release"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/680#issuecomment-590030425", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/680", "id": 590030425, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDAzMDQyNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T05:53:48Z", "updated_at": "2020-02-23T05:53:48Z", "author_association": "OWNER", "body": "For the actual implementation: I think this is a GitHub Action.\r\n\r\nIt looks for new tags, and when a tag is created it builds the docs using Sphinx, extracts the latest HTML changelog entry using BeautifulSoup, cleans it up a bit (I think the only thing that needs doing is turning relative links into absolute ones), runs it through pypandoc to create `gfm`, then uses the GitHub releases API to post the changelog as a release.\r\n\r\nhttps://developer.github.com/v3/repos/releases/#create-a-release", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 569275763, "label": "Release automation: automate the bit that posts the GitHub release"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/680#issuecomment-590106416", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/680", "id": 590106416, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwNjQxNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T19:26:40Z", "updated_at": "2020-02-23T19:26:40Z", "author_association": "OWNER", "body": "I think this should go a step further: I'd like some extra tests that run when a new build is being shipped and confirm that it has release notes in the right place.\r\n\r\nSo this is a Travis CI responsibility.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 569275763, "label": "Release automation: automate the bit that posts the GitHub release"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/681#issuecomment-590107309", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/681", "id": 590107309, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwNzMwOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T19:36:33Z", "updated_at": "2020-02-23T19:36:33Z", "author_association": "OWNER", "body": "For adding extra HTTP headers I suggest writing a plugin. There's an example in the docs of one that adds a simple HTTP header here: https://datasette.readthedocs.io/en/stable/plugins.html#asgi-wrapper-datasette\r\n\r\nYou don't need to bundle it up as a full Python package - you can create a `plugins/add_headers.py` file and run Datasette with `--plugins-dir=plugins/`: https://datasette.readthedocs.io/en/stable/plugins.html#writing-plugins", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 569317377, "label": "Cashe-header missing in http-response"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/681#issuecomment-590107464", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/681", "id": 590107464, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwNzQ2NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T19:38:16Z", "updated_at": "2020-02-23T19:38:16Z", "author_association": "OWNER", "body": "The `default_cache_ttl` config currently only takes effect for databases that are loaded in immutable mode using `-i database.db`: https://datasette.readthedocs.io/en/stable/performance.html#immutable-mode", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 569317377, "label": "Cashe-header missing in http-response"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/681#issuecomment-590107843", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/681", "id": 590107843, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwNzg0Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T19:42:15Z", "updated_at": "2020-02-23T19:42:15Z", "author_association": "OWNER", "body": "Those security headers from your screenshot are definitely worth me thinking more about. Even if not as core features they could make a great officially supported plugin.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 569317377, "label": "Cashe-header missing in http-response"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590109450", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590109450, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwOTQ1MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T19:59:11Z", "updated_at": "2020-02-23T19:59:11Z", "author_association": "OWNER", "body": "I'm going to call it `?_search_raw=` because it will pass through the value as a raw (unprocessed) argument to SQLite FTS, which means it will expose features other than just wildcards: https://www.sqlite.org/fts5.html#full_text_query_syntax", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590109778", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590109778, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwOTc3OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:02:28Z", "updated_at": "2020-02-23T20:02:28Z", "author_association": "OWNER", "body": "`?_search_raw=` doesn't work because it clashes with an existing feature - you can use `?_search_colname=` to search just within a specific column, and there could possibly be a column called `raw`.\r\n\r\nI could go with `?_searchraw=` - or maybe have an additional \"mode\" selection like `?_search=foo*&_searchmode=raw`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590110086", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590110086, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDExMDA4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:06:03Z", "updated_at": "2020-02-23T20:06:52Z", "author_association": "OWNER", "body": "Nice thing about the \"search mode\" concept is that I can optionally reflect it in the HTML UI in some way - maybe with a checkbox for \"raw\" mode that only shows up if the user hits the page with `?_searchmode=raw` in the querystring.\r\n\r\nIt also hints at potentially adding further search modes in the future. Not sure if I'd do that but it's an interesting potential avenue to explore.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590113869", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590113869, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDExMzg2OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:43:59Z", "updated_at": "2020-02-23T20:43:59Z", "author_association": "OWNER", "body": "You can try this right now like so:\r\n\r\n pip install https://github.com/simonw/datasette/archive/search-raw.zip\r\n\r\nThen use the following:\r\n\r\n ?_search=foo*&_searchmode=raw`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590113889", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590113889, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDExMzg4OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:44:11Z", "updated_at": "2020-02-23T20:44:11Z", "author_association": "OWNER", "body": "Still needs documentation before I can land it in master.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null}