{"id": 273247186, "node_id": "MDU6SXNzdWUyNzMyNDcxODY=", "number": 68, "title": "Support for title/source/license metadata", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 4, "created_at": "2017-11-12T17:04:21Z", "updated_at": "2017-12-04T04:55:43Z", "closed_at": "2017-11-13T15:26:11Z", "author_association": "OWNER", "pull_request": null, "body": "I've decided this is important for launch: I want to set a precedent for people citing, licensing and documenting their datasets.\r\n\r\nNot sure how best to go about supporting this. I'd like to allow for the following data to be optionally attached to any given database:\r\n\r\n- Title\r\n- Description, potentially in markdown?\r\n- Original source URL\r\n- License\r\n\r\nI'd also like the ability to attach descriptions to individual tables - and maybe even to table columns?\r\n\r\nThe question then becomes: how should this information be stored. A few options:\r\n\r\n- In the SQLite database itself, in a specially named table. Problem here is that this means having to modify SQLite databases before publishing them.\r\n- In a separate SQLite database that can be published alongside the databases we are publishing.\r\n- In a JSON file. This is neat, but JSON files are not a great editing experience once you start including multiple lines (e.g. a markdown description).\r\n- In a YAML file. This is a better format for multi-line descriptions, but still isn't a great editing experience.\r\n\r\nWhatever the format, it can be made much more usable by offering a web-based editing UI for populating it (a special mode the server can be run in).", "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/68/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": 273595473, "node_id": "MDExOlB1bGxSZXF1ZXN0MTUyMzYwNzQw", "number": 81, "title": ":fire: Removes DS_Store", "user": {"value": 50527, "label": "jefftriplett"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2017-11-13T22:07:52Z", "updated_at": "2017-11-14T02:24:54Z", "closed_at": "2017-11-13T22:16:55Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/81", "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/81/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": 273569477, "node_id": "MDU6SXNzdWUyNzM1Njk0Nzc=", "number": 80, "title": "Deploy final versions of fivethirtyeight and parlgov datasets (with view pagination)", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 2, "created_at": "2017-11-13T20:37:46Z", "updated_at": "2017-11-13T22:09:46Z", "closed_at": "2017-11-13T22:09:46Z", "author_association": "OWNER", "pull_request": null, "body": "Final versions should be deployed using the first released version of datasette.", "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/80/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": 273537940, "node_id": "MDU6SXNzdWUyNzM1Mzc5NDA=", "number": 77, "title": "Add Travis CI badge to README", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 0, "created_at": "2017-11-13T18:52:25Z", "updated_at": "2017-11-13T21:24:15Z", "closed_at": "2017-11-13T21:24:15Z", "author_association": "OWNER", "pull_request": null, "body": "Also fix this newline issue:\r\n\r\n\"simonw_datasette__instant_json_api_for_your_sqlite_database\"\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/77/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": 273127117, "node_id": "MDU6SXNzdWUyNzMxMjcxMTc=", "number": 55, "title": "Ship first version to PyPI", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 2, "created_at": "2017-11-11T07:38:48Z", "updated_at": "2017-11-13T21:19:43Z", "closed_at": "2017-11-13T21:19:43Z", "author_association": "OWNER", "pull_request": null, "body": "Just before doing this, update the Dockerfile template to `pip install datasette` https://github.com/simonw/datasette/blob/65e350ca2a4845c25752a62c16ba58cfe2c14b9b/datasette/utils.py#L125", "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/55/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": 273267081, "node_id": "MDU6SXNzdWUyNzMyNjcwODE=", "number": 70, "title": "Paginate views using OFFSET/LIMIT", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 0, "created_at": "2017-11-12T21:30:29Z", "updated_at": "2017-11-13T21:11:01Z", "closed_at": "2017-11-13T21:11:01Z", "author_association": "OWNER", "pull_request": null, "body": "As with #69 these should obey a maximum offset setting, which can be over-ridden.", "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/70/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": 273554949, "node_id": "MDU6SXNzdWUyNzM1NTQ5NDk=", "number": 78, "title": "Rename after to next and provide a next_url", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 0, "created_at": "2017-11-13T19:48:31Z", "updated_at": "2017-11-13T20:35:03Z", "closed_at": "2017-11-13T20:35:03Z", "author_association": "OWNER", "pull_request": null, "body": "", "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/78/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": 273248366, "node_id": "MDU6SXNzdWUyNzMyNDgzNjY=", "number": 69, "title": "Enforce pagination (or at least limits) for arbitrary custom SQL", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 4, "created_at": "2017-11-12T17:21:33Z", "updated_at": "2017-11-13T20:32:47Z", "closed_at": "2017-11-13T19:35:47Z", "author_association": "OWNER", "pull_request": null, "body": "It's way too easy to accidentally trigger a page that returns 100,000 rows at the moment. I need to use the LIMIT clause on views and custom SQL - I can support pagination \"next\" links using offset as well.", "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/69/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": 273296684, "node_id": "MDU6SXNzdWUyNzMyOTY2ODQ=", "number": 74, "title": "Send a 302 redirect to the new hash for hits to old hashes", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 1, "created_at": "2017-11-13T03:00:59Z", "updated_at": "2017-11-13T18:49:59Z", "closed_at": "2017-11-13T18:49:59Z", "author_association": "OWNER", "pull_request": null, "body": "", "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/74/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": 272735257, "node_id": "MDU6SXNzdWUyNzI3MzUyNTc=", "number": 51, "title": "Make a proper README", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 1, "created_at": "2017-11-09T21:46:07Z", "updated_at": "2017-11-13T18:44:23Z", "closed_at": "2017-11-13T18:44:23Z", "author_association": "OWNER", "pull_request": null, "body": "Include instructions on building a local Docker container - currently detailed here: https://gist.github.com/simonw/0ea5c960608c2d876e4637a5e48aa95d (those instructions don't work now that we have removed the Dockerfile in favour of a template generated by `datasette publish`)", "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/51/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": 273510781, "node_id": "MDU6SXNzdWUyNzM1MTA3ODE=", "number": 76, "title": "publish should have required argument specifying publisher", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 0, "created_at": "2017-11-13T17:21:26Z", "updated_at": "2017-11-13T18:41:01Z", "closed_at": "2017-11-13T18:41:01Z", "author_association": "OWNER", "pull_request": null, "body": "Initially the only argument will be \u201cnow\u201d - but \u201chyper\u201d can be added in the future", "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/76/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": 273509159, "node_id": "MDU6SXNzdWUyNzM1MDkxNTk=", "number": 75, "title": "Add --cors argument to serve", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 1, "created_at": "2017-11-13T17:16:19Z", "updated_at": "2017-11-13T18:17:52Z", "closed_at": "2017-11-13T18:17:52Z", "author_association": "OWNER", "pull_request": null, "body": "", "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/75/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": 273192789, "node_id": "MDU6SXNzdWUyNzMxOTI3ODk=", "number": 67, "title": "Command that builds a local docker container", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 2, "created_at": "2017-11-12T02:13:29Z", "updated_at": "2017-11-13T16:17:52Z", "closed_at": "2017-11-13T16:17:52Z", "author_association": "OWNER", "pull_request": null, "body": "Be nice to indicate that this isn't just for Now. Shouldn't be too hard either.", "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/67/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": 273283166, "node_id": "MDU6SXNzdWUyNzMyODMxNjY=", "number": 72, "title": "publish command should take an optional --name argument", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 0, "created_at": "2017-11-13T00:59:35Z", "updated_at": "2017-11-13T02:12:27Z", "closed_at": "2017-11-13T02:12:27Z", "author_association": "OWNER", "pull_request": null, "body": "To set the directory name so that now will inherit it as the name of the app.\r\n\r\nDefaults to datasette ", "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/72/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": 273278840, "node_id": "MDU6SXNzdWUyNzMyNzg4NDA=", "number": 71, "title": "Set up some example datasets on a Cloudflare-backed domain", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 2857392, "label": "Ship first public release"}, "comments": 10, "created_at": "2017-11-13T00:06:30Z", "updated_at": "2017-11-13T02:09:34Z", "closed_at": "2017-11-13T02:09:34Z", "author_association": "OWNER", "pull_request": null, "body": "To better demonstrate the caching and HTTP/2 features, I'd like to go live with some demos that are hosted behind Cloudflare.\r\n\r\n- [x] Redirect https://datasettes.com/ and https://www.datasettes.com/ to https://github.com/simonw/datasette\r\n- [x] Have `now domain add -e datasettes.com` run without errors (hopefully just a matter of waiting for the DNS to update)\r\n- [x] Alias an example dataset hosted on Now on a datasettes.com subdomain\r\n- [x] Confirm that HTTP caching and HTTP/2 redirect pushing works as expected - this may require another page rule", "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/71/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"}