{"id": 810507413, "node_id": "MDExOlB1bGxSZXF1ZXN0NTc1MTg3NDU3", "number": 1229, "title": "ensure immutable databses when starting in configuration directory mode with", "user": {"value": 295329, "label": "camallen"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2021-02-17T20:18:26Z", "updated_at": "2022-04-22T13:16:36Z", "closed_at": "2021-03-29T00:17:32Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1229", "body": "fixes #1224 \r\n\r\nThis PR ensures all databases found in a configuration directory that match the files in `inspect-data.json` will be set to `immutable` as outlined in https://docs.datasette.io/en/latest/settings.html#configuration-directory-mode\r\n\r\nspecifically on building the `datasette` instance it checks:\r\n- if `immutables` is an empty tuple - as passed by the cli code\r\n- if `immutables` is the default function value `None` - when it's not explicitly set\r\n\r\nAnd correctly builds the immutable database list from the `inspect-data[file]` keys.\r\n\r\nNote for this to work the `inspect-data.json` file must contain `file` paths which are relative to the configuration directory otherwise the file paths won't match and the dbs won't be set to immutable. \r\n\r\nI couldn't find an easy way to test this due to the way `make_app_client` works, happy to take directions on adding a test for this. \r\n\r\nI've updated the relevant docs as well, i.e. use the `inspect` cli cmd from the config directory path to create the relevant file\r\n```\r\ncd $config_dir\r\ndatasette inspect *.db --inspect-file=inspect-data.json\r\n```\r\nhttps://docs.datasette.io/en/latest/performance.html#using-datasette-inspect", "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/1229/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": 824064069, "node_id": "MDU6SXNzdWU4MjQwNjQwNjk=", "number": 1249, "title": "Updated Dockerfile with SpatiaLite version 5.0", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 45, "created_at": "2021-03-08T00:17:36Z", "updated_at": "2022-01-20T21:29:43Z", "closed_at": "2021-03-29T00:57:13Z", "author_association": "OWNER", "pull_request": null, "body": "The version bundled in Datasette's Docker image right now is 4.4.0-RC0\r\n\r\nhttps://github.com/simonw/datasette/blob/d0fd833b8cdd97e1b91d0f97a69b494895d82bee/Dockerfile#L16-L17\r\n\r\n5 has been out for a couple of months and has a bunch of big improvements, most notable stable KNN support.", "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/1249/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": 843739658, "node_id": "MDExOlB1bGxSZXF1ZXN0NjAzMDgyMjgw", "number": 1282, "title": "Fix little typo", "user": {"value": 192568, "label": "mroswell"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2021-03-29T19:45:28Z", "updated_at": "2021-03-29T19:57:34Z", "closed_at": "2021-03-29T19:57:34Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1282", "body": "", "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/1282/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": 724369025, "node_id": "MDExOlB1bGxSZXF1ZXN0NTA1NzY5NDYy", "number": 1031, "title": "Fallback to databases in inspect-data.json when no -i options are passed", "user": {"value": 299380, "label": "frankier"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 6, "created_at": "2020-10-19T07:51:06Z", "updated_at": "2021-03-29T01:46:45Z", "closed_at": "2021-03-29T00:23:41Z", "author_association": "FIRST_TIME_CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1031", "body": "Currenlty `Datasette.__init__` checks immutables against None to decide whether to fallback to inspect-data.json. This patch modifies the serve command to pass None when no -i options are passed so this fallback works correctly.", "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/1031/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": 842881221, "node_id": "MDU6SXNzdWU4NDI4ODEyMjE=", "number": 1281, "title": "Latest Datasette tags missing from Docker Hub", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 7, "created_at": "2021-03-29T00:58:30Z", "updated_at": "2021-03-29T01:41:48Z", "closed_at": "2021-03-29T01:41:48Z", "author_association": "OWNER", "pull_request": null, "body": "Spotted this while testing https://github.com/simonw/datasette/issues/1249#issuecomment-808998719_\r\n\r\nhttps://hub.docker.com/r/datasetteproject/datasette/tags?page=1&ordering=last_updated isn't showing the tags for any version more recent than 0.54.1 - we are up to 0.56 now.\r\n\r\nBut the `:latest` tag is for the new 0.56 release.", "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/1281/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": 831163537, "node_id": "MDExOlB1bGxSZXF1ZXN0NTkyNTQ4MTAz", "number": 1260, "title": "Fix: code quality issues", "user": {"value": 25361949, "label": "withshubh"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2021-03-14T13:56:10Z", "updated_at": "2021-03-29T00:22:41Z", "closed_at": "2021-03-29T00:22:41Z", "author_association": "NONE", "pull_request": "simonw/datasette/pulls/1260", "body": "### Description\r\nHi :wave: I work at [DeepSource](https://deepsource.io), I ran DeepSource analysis on the forked copy of this repo and found some interesting [code quality issues](https://deepsource.io/gh/withshubh/datasette/issues/?category=recommended) in the codebase, opening this PR so you can assess if our platform is right and helpful for you.\r\n\r\n### Summary of changes\r\n\r\n- Replaced ternary syntax with if expression\r\n- Removed redundant `None` default\r\n- Used `is` to compare type of objects\r\n- Iterated dictionary directly\r\n- Removed unnecessary lambda expression\r\n- Refactored unnecessary `else` / `elif` when `if` block has a `return` statement\r\n- Refactored unnecessary `else` / `elif` when `if` block has a `raise` statement\r\n- Added .deepsource.toml to continuously analyze and detect code quality issues", "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/1260/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": 807433181, "node_id": "MDU6SXNzdWU4MDc0MzMxODE=", "number": 1224, "title": "can't start immutable databases from configuration dir mode", "user": {"value": 295329, "label": "camallen"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2021-02-12T17:50:13Z", "updated_at": "2021-03-29T00:17:31Z", "closed_at": "2021-03-29T00:17:31Z", "author_association": "CONTRIBUTOR", "pull_request": null, "body": "Say I have a `/databases/` directory with multiple sqlite db files in that dir (`1.db` & `2.db`) and an `inspect-data.json` file.\r\n\r\nIf I start datasette via `datasette -h 0.0.0.0 /databases/` then the resulting databases are set to `is_mutable: true` as inspected via http://127.0.0.1:8001/-/databases.json\r\n\r\nI don't want to have to list out the databases by name, e.g. `datasette -i /databases/1.db -i /databases/2.db` as i want the system to autodetect the sqlite dbs i have in the configuration directory \r\n\r\nAccording to the docs outlined in https://docs.datasette.io/en/latest/settings.html?highlight=immutable#configuration-directory-mode this should be possible\r\n> `inspect-data.json` the result of running datasette inspect - any database files listed here will be treated as immutable, so they should not be changed while Datasette is running\r\n \r\nI believe that if the `inspect-json.json` file present, then in theory the databases will be automatically set to immutable via this code https://github.com/simonw/datasette/blob/9603d893b9b72653895318c9104d754229fdb146/datasette/app.py#L211-L216\r\n\r\nHowever it appears the Click Multiple Options will return a tuple via https://github.com/simonw/datasette/blob/9603d893b9b72653895318c9104d754229fdb146/datasette/cli.py#L311-L317\r\n\r\nThe resulting tuple is passed to the Datasette app via `kwargs` and overrides the behaviour to set the databases to immutable via this arg https://github.com/simonw/datasette/blob/9603d893b9b72653895318c9104d754229fdb146/datasette/app.py#L182\r\n\r\nIf you think this is a bug and needs fixing, I am willing to make a PR to check for the empty `immutable` tuple before calling the Datasette class initializer as I think leaving that class interface alone is the best path here.\r\n\r\nThoughts?\r\n\r\nAlso - i'm loving Datasette, it truly is a wonderful tool, thank you :)", "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/1224/reactions\", \"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 763207948, "node_id": "MDU6SXNzdWU3NjMyMDc5NDg=", "number": 1141, "title": "Default styling for bullet point lists", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2020-12-12T02:49:33Z", "updated_at": "2021-03-29T00:14:05Z", "closed_at": "2021-03-29T00:14:05Z", "author_association": "OWNER", "pull_request": null, "body": "I just noticed that https://datasette.io/content/recent_releases (which uses `datasette-render-markdown`) is missing its bullet points:\r\n\r\n\"content__recent_releases__399_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/1141/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": 825217564, "node_id": "MDExOlB1bGxSZXF1ZXN0NTg3MzMyNDcz", "number": 1252, "title": "Add back styling to lists within table cells (fixes #1141)", "user": {"value": 7476523, "label": "bobwhitelock"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2021-03-09T03:00:57Z", "updated_at": "2021-03-29T00:14:04Z", "closed_at": "2021-03-29T00:14:04Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1252", "body": "This overrides the Datasette reset - see https://github.com/simonw/datasette/blob/d0fd833b8cdd97e1b91d0f97a69b494895d82bee/datasette/static/app.css#L35-L38 - to add back the default styling of list items displayed within Datasette table cells.\r\n\r\nFollowing this change, the same content as in the original issue looks like this:\r\n\r\n![2021-03-09_02:57:32](https://user-images.githubusercontent.com/7476523/110411982-63e5ae80-8083-11eb-9b5c-e5dc825073e2.png)\r\n", "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/1252/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": 842556944, "node_id": "MDExOlB1bGxSZXF1ZXN0NjAyMTA3OTM1", "number": 1279, "title": "Minor Docs Update. Added `--app` to fly install command.", "user": {"value": 1019791, "label": "koaning"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2021-03-27T16:58:08Z", "updated_at": "2021-03-29T00:11:55Z", "closed_at": "2021-03-29T00:11:55Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1279", "body": "Without this flag, there's an error locally. \r\n\r\n```\r\n> datasette publish fly bigmac.db\r\n\r\nUsage: datasette publish fly [OPTIONS] [FILES]...\r\nTry 'datasette publish fly --help' for help.\r\n\r\nError: Missing option '-a' / '--app'.\r\n```\r\n\r\nI also got an error message which later turned out to be because I hadn't added my credit card information yet to `fly`. I wasn't sure if I should add that mention to the docs here, or to submit a bug-report over at https://github.com/simonw/datasette-publish-fly. ", "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/1279/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}