id,node_id,number,state,locked,title,user,body,created_at,updated_at,closed_at,merged_at,merge_commit_sha,assignee,milestone,draft,head,base,author_association,repo,url,merged_by,auto_merge 560725714,MDExOlB1bGxSZXF1ZXN0NTYwNzI1NzE0,1203,closed,0,Easier way to run Prettier locally,9599,Refs #1167,2021-01-25T01:39:06Z,2021-01-25T01:41:46Z,2021-01-25T01:41:46Z,2021-01-25T01:41:46Z,ffff3a4c5398a9f40b61d59736f386444da19289,,,0,98acc8865aa7826a40a7a076ab548ba8597af734,b6a7b58fa01af0cd5a5e94bd17d686d283a46819,OWNER,107914493,https://github.com/simonw/datasette/pull/1203,, 560760145,MDExOlB1bGxSZXF1ZXN0NTYwNzYwMTQ1,1204,open,0,WIP: Plugin includes,9599,"Refs #1191 Next steps: - [ ] Get comfortable that this pattern is the right way to go - [ ] Implement it for all of the other pages, not just the table page - [ ] Add a new set of plugin tests that exercise ALL of these new hook locations - [ ] Document, then ship",2021-01-25T03:59:06Z,2021-12-17T07:10:49Z,,,98f06a766317a40035962416cf3211d7a374866a,,,1,05258469ae39bcaad17beb57c5b7eeab0d58a589,07e163561592c743e4117f72102fcd350a600909,OWNER,107914493,https://github.com/simonw/datasette/pull/1204,, 560831638,MDExOlB1bGxSZXF1ZXN0NTYwODMxNjM4,1206,closed,0,Release 0.54,9599,Refs #1201,2021-01-25T06:45:47Z,2021-01-25T17:33:30Z,2021-01-25T17:33:29Z,2021-01-25T17:33:29Z,0b9ac1b2e9c855f1b823a06a898891da87c720ef,,,0,571476d2cf8f7d7eac6098de8557264e69cac43f,a5ede3cdd455e2bb1a1fb2f4e1b5a9855caf5179,OWNER,107914493,https://github.com/simonw/datasette/pull/1206,, 572209243,MDExOlB1bGxSZXF1ZXN0NTcyMjA5MjQz,1222,closed,0,"--ssl-keyfile and --ssl-certfile, refs #1221",9599,,2021-02-12T00:45:58Z,2021-02-12T00:52:18Z,2021-02-12T00:52:17Z,2021-02-12T00:52:17Z,eda652cf6ee28a0babfb30ce3834512e9e33fb8e,,,0,8ec72ea3e3e0a9876d5e61e4a2260224f16db2e3,aa1fe0692c2abb901216738bfb35f9fcc5090e7d,OWNER,107914493,https://github.com/simonw/datasette/pull/1222,, 575940193,MDExOlB1bGxSZXF1ZXN0NTc1OTQwMTkz,1232,closed,0,--crossdb option for joining across databases,9599,"Refs #283. Still needs: - [x] Unit test for --crossdb queries - [x] Show warning on console if it truncates at ten databases (or on web interface) - [x] Show connected databases on the `/_memory` database page - [x] Documentation - [x] https://latest.datasette.io/ demo should demonstrate this feature",2021-02-18T19:48:50Z,2021-02-18T22:09:13Z,2021-02-18T22:09:12Z,2021-02-18T22:09:12Z,6f41c8a2bef309a66588b2875c3e24d26adb4850,,,0,887649942b02d70a0fe4e205e1e5eff4e745b016,4df548e7668b5b21d64a267964951e67894f4712,OWNER,107914493,https://github.com/simonw/datasette/pull/1232,, 598213565,MDExOlB1bGxSZXF1ZXN0NTk4MjEzNTY1,1271,open,0,Use SQLite conn.interrupt() instead of sqlite_timelimit(),9599,"Refs #1270, #1268, #1249 Before merging this I need to do some more testing (to make sure that expensive queries really are properly cancelled). I also need to delete a bunch of code relating to the old mechanism of cancelling queries. [See comment below: this doesn't actually cancel the query due to a thread-local confusion]",2021-03-22T17:34:20Z,2021-03-22T21:49:27Z,,,a4fd7e5a761523881c031b4fee266a366e1c97bd,,,1,fb2ad7ada0b86a7fe4a576fe23236757c41eb05e,c4f1ec7f33fd7d5b93f0f895dafb5351cc3bfc5b,OWNER,107914493,https://github.com/simonw/datasette/pull/1271,, 608323028,MDExOlB1bGxSZXF1ZXN0NjA4MzIzMDI4,1290,closed,0,Use pytest-xdist to speed up tests,9599,"Closes #1289, refs #1212.",2021-04-03T03:34:36Z,2021-04-03T03:42:29Z,2021-04-03T03:42:28Z,2021-04-03T03:42:28Z,0a7621f96f8ad14da17e7172e8a7bce24ef78966,,,0,2fb1e4284f1f0f6aaba7e889a6713c0f96e802e1,59ef4a20cba1533bc347378415f4ffcd025f32c8,OWNER,107914493,https://github.com/simonw/datasette/pull/1290,, 651492888,MDExOlB1bGxSZXF1ZXN0NjUxNDkyODg4,1339,closed,0,?_col=/?_nocol= to show/hide columns on the table page,9599,"See #615. Still to do: - [x] Allow combination of `?_col=` and `?_nocol=` (`_nocol` wins) - [x] Deduplicate same column if passed in `?_col=` multiple times - [x] Validate that user did not try to remove a primary key - [x] Add tests - [x] Ensure this works correctly for SQL views - [x] Add documentation ",2021-05-24T17:15:20Z,2021-05-27T04:17:44Z,2021-05-27T04:17:43Z,2021-05-27T04:17:43Z,f1c29fd6a184254aa68efadf096bcf21e848f921,,,0,387c8379b92e559180098f73017a1bf2e6370205,2bd9d54b2762c991e11950c22c88c0336158d49b,OWNER,107914493,https://github.com/simonw/datasette/pull/1339,, 655684477,MDExOlB1bGxSZXF1ZXN0NjU1Njg0NDc3,1346,closed,0,Re-display user's query with an error message if an error occurs,9599,Refs #619,2021-05-28T02:04:20Z,2021-06-02T03:46:21Z,2021-06-02T03:46:21Z,2021-06-02T03:46:21Z,9552414e1f968c6fc704031cec349c05e6bc2371,,,0,3bffc35ff9137a75024d2a8ef44828a50ec91071,7b106e106000713bbee31b34d694b3dadbd4818c,OWNER,107914493,https://github.com/simonw/datasette/pull/1346,, 662557240,MDExOlB1bGxSZXF1ZXN0NjYyNTU3MjQw,1357,closed,0,Make custom pages compatible with base_url setting,9599,Refs #1238.,2021-06-05T18:54:39Z,2021-06-05T18:59:54Z,2021-06-05T18:59:54Z,2021-06-05T18:59:54Z,a63412152518581c6a3d4e142b937e27dabdbfdb,,,0,1b27643d7bd192e1d2cc52e36ada0021c3f76bb8,6e9b07be92905011211d8df7a872fb7c1f2737b2,OWNER,107914493,https://github.com/simonw/datasette/pull/1357,, 691707409,MDExOlB1bGxSZXF1ZXN0NjkxNzA3NDA5,1397,closed,0,"Fix for race condition in refresh_schemas(), closes #1231",9599,,2021-07-16T19:44:43Z,2021-07-16T19:45:00Z,2021-07-16T19:44:58Z,2021-07-16T19:44:58Z,c00f29affcafce8314366852ba1a0f5a7dd25690,,,0,bf2453ab7cb876c91edab3df59b7f398df2f9727,dd5ee8e66882c94343cd3f71920878c6cfd0da41,OWNER,107914493,https://github.com/simonw/datasette/pull/1397,, 702422263,MDExOlB1bGxSZXF1ZXN0NzAyNDIyMjYz,1418,closed,0,Spelling corrections plus CI job for codespell,9599,Refs #1417.,2021-08-03T16:21:19Z,2021-08-03T16:36:39Z,2021-08-03T16:36:38Z,2021-08-03T16:36:38Z,2208c3c68e552d343e6a2872ff6e559fca9d1b38,,,0,532170fc606df04986104aacbd67b920c5fa0af9,54b6e96ee8aa553b6671e341a1944f93f3fb89c3,OWNER,107914493,https://github.com/simonw/datasette/pull/1418,, 711783616,MDExOlB1bGxSZXF1ZXN0NzExNzgzNjE2,1430,closed,0,Column metadata,9599,"Refs #942 Still needs: - [x] Tests - [x] Documentation",2021-08-12T23:34:39Z,2021-08-12T23:53:23Z,2021-08-12T23:53:23Z,2021-08-12T23:53:23Z,e837095ef35ae155b4c78cc9a8b7133a48c94f03,,,0,941994725dd41deb6f839c5063cff5d15d4abb1c,b1fed48a95516ae84c0f020582303ab50ab817e2,OWNER,107914493,https://github.com/simonw/datasette/pull/1430,, 712412883,MDExOlB1bGxSZXF1ZXN0NzEyNDEyODgz,1434,open,0,Enrich arbitrary query results with foreign key links and column descriptions,9599,"Refs #1293, follows #942.",2021-08-13T14:43:01Z,2021-08-19T21:18:58Z,,,d4d4f5566b1d43075cb52ded5d19a9dcf4350761,,,0,281c0872d5b8a462c9d7b2b2d77a924da4ed25a7,2883098770fc66e50183b2b231edbde20848d4d6,OWNER,107914493,https://github.com/simonw/datasette/pull/1434,, 716262829,MDExOlB1bGxSZXF1ZXN0NzE2MjYyODI5,1444,closed,0,Ability to deploy demos of branches,9599,See #1442.,2021-08-19T21:08:04Z,2021-08-19T21:09:44Z,2021-08-19T21:09:39Z,2021-08-19T21:09:39Z,d84e574e59c51ddcd6cf60a6f9b3d45182daf824,,,0,75f9fe6d6bc642ce5587dd74eed70064c11868be,adb5b70de5cec3c3dd37184defe606a082c232cf,OWNER,107914493,https://github.com/simonw/datasette/pull/1444,, 753513062,PR_kwDOBm6k_c4s6bJm,1481,closed,0,Fix compatibility with Python 3.10,9599,,2021-10-07T20:34:23Z,2021-10-24T22:19:55Z,2021-10-24T22:19:54Z,2021-10-24T22:19:54Z,96a823f2834a262ae97a90ebfb6847f14763c415,,,0,50005bd2d36219c3ae8b6220d38df918459a1812,63886178a649586b403966a27a45881709d2b868,OWNER,107914493,https://github.com/simonw/datasette/pull/1481,, 758569502,PR_kwDOBm6k_c4tNtoe,1490,closed,0,Upgrade to httpx 0.20,9599,Refs #1488 ,2021-10-14T17:51:05Z,2021-10-14T18:03:45Z,2021-10-14T18:03:44Z,2021-10-14T18:03:44Z,b267b5775436577a91a9f9655143908aecff05da,,,0,e0332d1f4788a561492965a09ef83fe122fd3d8c,2a8c6690399ee832ee62aafdede1794f5945d911,OWNER,107914493,https://github.com/simonw/datasette/pull/1490,, 782105066,PR_kwDOBm6k_c4unfnq,1512,closed,0,New pattern for async view classes,9599,Refs #878 - starting out with the new `AsyncBase` class implementing a pytest-inspired `asyncio` parallel execution mechanism.,2021-11-16T21:55:44Z,2021-11-17T01:39:54Z,2021-11-17T01:39:44Z,,fb57d4474cb1fdaef260e244b1b6f470f1992e40,,,1,8f757da0750fe7f27b4ed3839bc3ef3650832ad9,0156c6b5e52d541e93f0d68e9245f20ae83bc933,OWNER,107914493,https://github.com/simonw/datasette/pull/1512,, 801798514,PR_kwDOBm6k_c4vynly,1554,closed,0,TableView refactor,9599,"I'm starting a PR with almost nothing in it so I can use the GitHub code commenting feature to add a bunch of comments to the code I intend to refactor. Related issues: - #617 - #715 - #870 - #1518",2021-12-13T23:16:04Z,2021-12-20T23:52:11Z,2021-12-20T23:52:04Z,,a68545f9a4c3b3a68259be5c03abfc9ad7710875,,,0,1d08b46412410837f987c606b2307a121fa2641a,a6ff123de5464806441f6a6f95145c9a83b7f20b,OWNER,107914493,https://github.com/simonw/datasette/pull/1554,, 804924636,PR_kwDOBm6k_c4v-izc,1559,closed,0,"filters_from_request plugin hook, now used in TableView",9599,"New plugin hook, refs #473 Used it to extract the logic from TableView that handles _search and _through and _where - refs #1518",2021-12-16T23:59:33Z,2021-12-17T23:09:41Z,2021-12-17T19:02:15Z,2021-12-17T19:02:15Z,aa7f0037a46eb76ae6fe9bf2a1f616c58738ecdf,,,0,71af58d9392d42f45506cbc2370c1e9994126f63,0663d5525cc41e9260ac7d1f6386d3a6eb5ad2a9,OWNER,107914493,https://github.com/simonw/datasette/pull/1559,, 838724548,PR_kwDOBm6k_c4x_evE,1622,closed,0,Test against Python 3.11-dev,9599,Refs #1621,2022-02-02T21:39:38Z,2022-02-02T21:58:53Z,2022-02-02T21:58:53Z,2022-02-02T21:58:53Z,a9d8824617268c4d214dd3be2174ac452044f737,,,0,fbaf317ab723482e971688cda72ce51825bcf4d7,8d5779acf0041cfd0db7f68f468419f9008b86ec,OWNER,107914493,https://github.com/simonw/datasette/pull/1622,, 838755826,PR_kwDOBm6k_c4x_mXy,1626,open,0,Try test suite against macOS and Windows,9599,Refs #1625,2022-02-02T22:26:51Z,2022-02-03T01:22:44Z,,,83958f26a8458a108acb7c3c0a1c8aacb777586a,,,0,4b4d0e1ff9e2ee998cbd71abd5f5806f25444ed9,b5e6b1a9e1332fca3effe45d55dd06ee4249f163,OWNER,107914493,https://github.com/simonw/datasette/pull/1626,, 872324754,PR_kwDOBm6k_c4z_p6S,1648,closed,0,Use dash encoding for table names and row primary keys in URLs,9599,"Refs #1439. - [x] Build `dash_encode` / `dash_decode` functions - [x] Use dash encoding for row primary keys - [x] Use dash encoding for `?_next=` pagination tokens - [x] Use dash encoding for table names in URLs - [x] Use dash encoding for database name - ~~Implement redirects from previous `%` URLs that replace those with `-`~~ - separate issue: #1650",2022-03-05T19:50:45Z,2022-03-07T15:38:30Z,2022-03-07T15:38:30Z,2022-03-07T15:38:29Z,1baa030eca375f839f3471237547ab403523e643,,,0,32548b88fdb413429d960966decba8f6b3889190,5010d1359b9e9db90a5a69a3ca22d12862893e00,OWNER,107914493,https://github.com/simonw/datasette/pull/1648,, 880373442,PR_kwDOBm6k_c40eW7C,1659,closed,0,Tilde encoding,9599,Refs #1657,2022-03-15T16:19:07Z,2022-03-15T18:01:58Z,2022-03-15T18:01:57Z,2022-03-15T18:01:57Z,a35393b29cfb5b8abdc6a94e577af1c9a5c13652,,,0,99b8263806e81028af169f400352c26e5473ab44,c10cd48baf106659bf3f129ad7bfb2226be73821,OWNER,107914493,https://github.com/simonw/datasette/pull/1659,, 882973374,PR_kwDOBm6k_c40oRq-,1664,closed,0,Remove hashed URL mode,9599,Refs #1661.,2022-03-17T23:19:10Z,2022-03-19T00:12:04Z,2022-03-19T00:12:04Z,2022-03-19T00:12:03Z,d4f60c2388c01ddce1b16f95c16d310e037c9912,,,0,eae91fe8c2934c8674f5202b2d9f85b6f674c410,30e5f0e67c38054a8087a2a4eae3fc4d1779af90,OWNER,107914493,https://github.com/simonw/datasette/pull/1664,, 925926708,PR_kwDOBm6k_c43MIU0,1736,closed,0,Clean up compatibility with Pyodide,9599,"Closes #1735, closes #1733",2022-05-02T20:14:38Z,2022-05-02T20:15:28Z,2022-05-02T20:15:27Z,2022-05-02T20:15:27Z,3f00a29141bdea5be747f6d1c93871ccdb792167,,,0,784fe6a245a051ef6b42e153d3fae9cce7b0b148,a29c1277896b6a7905ef5441c42a37bc15f67599,OWNER,107914493,https://github.com/simonw/datasette/pull/1736,, 1034576054,PR_kwDOBm6k_c49qmC2,1792,closed,0,Test `--load-extension` in GitHub Actions,9599,"Refs: - #1789 ---- :books: Documentation preview :books:: https://datasette--1792.org.readthedocs.build/en/1792/ ",2022-08-23T18:43:29Z,2022-08-24T00:11:46Z,2022-08-24T00:11:45Z,2022-08-24T00:11:45Z,ba35105eee2d3ba620e4f230028a02b2e2571df2,,,0,f61cfb77056e2ee39ae827889c005b1e44c81165,456dc155d491a009942ace71a4e1827cddc6b93d,OWNER,107914493,https://github.com/simonw/datasette/pull/1792,, 1046767034,PR_kwDOBm6k_c4-ZGW6,1801,closed,0,"Don't use upper bound dependencies, refs #1800",9599,"See https://iscinumpy.dev/post/bound-version-constraints/ ---- :books: Documentation preview :books:: https://datasette--1801.org.readthedocs.build/en/1801/ ",2022-09-05T18:29:28Z,2022-09-05T18:35:41Z,2022-09-05T18:35:41Z,2022-09-05T18:35:41Z,51030df1869b3b574dd3584d1563415776b9cd4e,,,0,3f24edd6b29e7deff37d0e45827133fc5a9e5387,ba35105eee2d3ba620e4f230028a02b2e2571df2,OWNER,107914493,https://github.com/simonw/datasette/pull/1801,, 1046943107,PR_kwDOBm6k_c4-ZxWD,1803,closed,0,Workaround for test failure: RuntimeError: There is no current event loop,9599,"Closes #1802 ---- :books: Documentation preview :books:: https://datasette--1803.org.readthedocs.build/en/1803/ ",2022-09-06T00:31:06Z,2022-09-06T00:40:19Z,2022-09-06T00:40:19Z,2022-09-06T00:40:19Z,64288d827f7ff97f825e10f714da3f781ecf9345,,,0,7b6a2b48408697905bd93504b7f5554f4a7627ef,1c29b925d300d1ee17047504473f2517767aa05b,OWNER,107914493,https://github.com/simonw/datasette/pull/1803,, 1067890893,PR_kwDOBm6k_c4_prjN,1823,open,0,Keyword-only arguments for a bunch of internal methods,9599,"Refs #1822 ---- :books: Documentation preview :books:: https://datasette--1823.org.readthedocs.build/en/1823/ ",2022-09-27T00:44:59Z,2022-10-05T04:37:54Z,,,28068a62ad6a8b76a1c9223c4ca78099cfd2ece5,,,0,b545b6a04ed7b407331f991adce107691ac3ab97,5f9f567acbc58c9fcd88af440e68034510fb5d2b,OWNER,107914493,https://github.com/simonw/datasette/pull/1823,, 1086765659,PR_kwDOBm6k_c5Axrpb,1842,closed,0,check_visibility can now take multiple permissions into account,9599,"Refs #1829 - [x] Fix table page - [x] Fix database page - [x] Fix query page - [x] Fix row page - [x] Tests - [x] Updated documentation for `check_visibility` method, to cover the new `permissions=` keyword argument Also this fix is currently only applied on the table page - needs to be applied on database, row and query pages too. ---- :books: Documentation preview :books:: https://datasette--1842.org.readthedocs.build/en/1842/ ",2022-10-14T00:06:04Z,2022-10-24T02:11:36Z,2022-10-24T02:11:36Z,2022-10-24T02:11:34Z,78dad236df730212aa7172f885fd8ec575f0d3ad,,,0,362347574e3283d637243906af7d5e028e100180,79aa0de083d38a9975915d5a4cc68ca6c74fbe3d,OWNER,107914493,https://github.com/simonw/datasette/pull/1842,, 1139440836,PR_kwDOBm6k_c5D6nzE,1912,closed,0,Merge 1.0-dev (with initial write API) back into main,9599,"See: - #1892 ---- :books: Documentation preview :books:: https://datasette--1912.org.readthedocs.build/en/1912/ ",2022-11-29T19:31:21Z,2022-11-29T19:39:37Z,2022-11-29T19:39:36Z,2022-11-29T19:39:36Z,07aad511769da9242260c850e8d975cbd8c29552,,,0,b8fc8e2cd755b9cfc66838bdc1ca9ee87afdce8a,21f8aab53164a4f096737743d8cc624d2186327a,OWNER,107914493,https://github.com/simonw/datasette/pull/1912,, 1144085408,PR_kwDOBm6k_c5EMVug,1931,closed,0,/db/table/-/upsert,9599,"Refs #1878 Still todo: - [x] Support `""return"": true` properly for upserts (with tests) - [x] Require both `insert-row` and `update-row` permissions - [x] Tests are going to need to cover both rowid-only and compound primary key tables, including all of the error states - [x] Documentation ---- :books: Documentation preview :books:: https://datasette--1931.org.readthedocs.build/en/1931/ ",2022-12-03T07:01:44Z,2022-12-08T01:12:17Z,2022-12-08T01:12:16Z,2022-12-08T01:12:16Z,272982e8a6f45700ff93c3917b4688a86de0e672,,8711695,0,7cd6fd9f76913196d4f99a194a30e406f33aa363,93ababe6f7150454d2cf278dae08569e505d2a5b,OWNER,107914493,https://github.com/simonw/datasette/pull/1931,, 1154884166,PR_kwDOBm6k_c5E1iJG,1938,closed,0,"""permissions"" blocks in metadata.json/yaml",9599,"Refs #1636 - [x] Documentation - [ ] Implementation - [ ] Validate metadata to check there are no nonsensical permissions (like `debug-menu` set at the table level) - [ ] Tests ---- :books: Documentation preview :books:: https://datasette--1938.org.readthedocs.build/en/1938/ ",2022-12-08T22:07:36Z,2022-12-13T05:23:19Z,2022-12-13T05:23:18Z,,271ea3ae0c858de2d392b61a1a4a9f5837cbddf8,,8711695,0,6e35a6b4f7ea9ba3fb6f02f45452eeb41de69786,e539c1c024bc62d88df91d9107cbe37e7f0fe55f,OWNER,107914493,https://github.com/simonw/datasette/pull/1938,, 1155365505,PR_kwDOBm6k_c5E3XqB,1940,closed,0,register_permissions() plugin hook,9599,"Refs #1939 From this comment: https://github.com/simonw/datasette/issues/1939#issuecomment-1343872168 - [x] Unit test for the registration plugin hook itself - [x] Use them in `check_permission_actions_are_documented` test in `conftest.py` - [x] Add description field to `Permissions` (and update tests and docs) - [x] Documentation for `datasette.permissions` dictionary - [x] If no `default=` provided in call to `permission_allowed()` then use default from `datasette.permissions` list - [x] Remove `default=` from a bunch of places - [x] Throw an error if two permissions are registered with the same name or abbreviation (but other attributes differ) - [x] Update authentication and permissions documentation to explain that permissions are now registered and have a registered default ---- :books: Documentation preview :books:: https://datasette--1940.org.readthedocs.build/en/1940/ ",2022-12-09T05:09:28Z,2022-12-13T02:05:55Z,2022-12-13T02:05:54Z,2022-12-13T02:05:54Z,8bf06a76b51bc9ace7cf72cf0cca8f1da7704ea7,,8711695,0,94e5c75397a96b86a3349123808cd02cb20f7440,e539c1c024bc62d88df91d9107cbe37e7f0fe55f,OWNER,107914493,https://github.com/simonw/datasette/pull/1940,, 1167432070,PR_kwDOBm6k_c5FlZmG,1960,closed,0,Port as many tests as possible to async def tests against ds_client,9599,"Refs: - #1959 ---- :books: Documentation preview :books:: https://datasette--1960.org.readthedocs.build/en/1960/ ",2022-12-15T21:45:53Z,2022-12-17T21:47:56Z,2022-12-17T21:47:55Z,2022-12-17T21:47:55Z,89cffcf14cda830871c8ee81742eaa1e2dff017b,,,0,f42bca8fc2657cecde05eca644c28fac7c28101f,0b68996cc511b3a801f0cd0157bd66332d75f46f,OWNER,107914493,https://github.com/simonw/datasette/pull/1960,, 1167644140,PR_kwDOBm6k_c5FmNXs,1961,closed,0,Use click.echo() instead of print() for --root option,9599,"This ensures the URL is output correctly when running under Docker. Closes #1958 ---- :books: Documentation preview :books:: https://datasette--1961.org.readthedocs.build/en/1961/ ",2022-12-16T00:54:56Z,2022-12-16T00:55:19Z,2022-12-16T00:55:18Z,2022-12-16T00:55:18Z,013496862f4d4b441ab61255242b838b24287607,,,0,06d20c792f8c872118edd84973308fb3e5137b5e,0b68996cc511b3a801f0cd0157bd66332d75f46f,OWNER,107914493,https://github.com/simonw/datasette/pull/1961,, 1191716406,PR_kwDOBm6k_c5HCCY2,1984,closed,0,Upgrade Sphinx,9599,"Refs #1971 ---- :books: Documentation preview :books:: https://datasette--1984.org.readthedocs.build/en/1984/ ",2023-01-10T02:00:40Z,2023-01-10T02:02:33Z,2023-01-10T02:02:33Z,2023-01-10T02:02:32Z,8e7073404379d79a2d269167a12bbb58439edd39,,,0,0c8b3f5ca1385c804c696f1fa61c24de29ae4755,4880638f13c3a1abc53f395cde39ac848daf416d,OWNER,107914493,https://github.com/simonw/datasette/pull/1984,, 1212277427,PR_kwDOBm6k_c5IQeKz,1999,closed,0,?_extra= support (draft),9599,"Refs: - #262 ---- :books: Documentation preview :books:: https://datasette--1999.org.readthedocs.build/en/1999/ ",2023-01-21T04:55:18Z,2023-03-22T22:49:41Z,2023-03-22T22:49:40Z,2023-03-22T22:49:40Z,d97e82df3c8a3f2e97038d7080167be9bb74a68d,,,0,69a31cd5b61f0b62938efdeec5972090f1a1a508,56b0758a5fbf85d01ff80a40c9b028469d7bb65f,OWNER,107914493,https://github.com/simonw/datasette/pull/1999,, 1303909190,PR_kwDOBm6k_c5NuBNG,2053,closed,0,WIP new JSON for queries,9599,"Refs: - #2049 TODO: - [x] Read queries JSON - Implement error display with `""ok"": false` and an errors key - Read queries HTML - Read queries other formats (plugins) - Canned read queries (dispatched to from table) - Write queries (a canned query thing) - Implement different shapes, refactoring to share code with table - Implement a sensible subset of extras, also refactoring to share code with table - Get all tests passing ---- :books: Documentation preview :books:: https://datasette--2053.org.readthedocs.build/en/2053/ ",2023-04-05T23:26:15Z,2023-07-26T18:28:59Z,2023-07-26T18:26:45Z,,c69f7961e42c1103e281ca061edbe041e212cbb0,,,1,ee24ea94525ace221f1b4d141d01cf56410c2c6d,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,OWNER,107914493,https://github.com/simonw/datasette/pull/2053,, 1365439700,PR_kwDOBm6k_c5RYvTU,2080,closed,0,New View base class,9599,"Refs: - #2078 TODO: - [x] Teach router layer how to handle this - [x] Use it for something ---- :books: Documentation preview :books:: https://datasette--2080.org.readthedocs.build/en/2080/ ",2023-05-25T23:22:55Z,2023-05-26T00:18:45Z,2023-05-26T00:18:44Z,2023-05-26T00:18:44Z,dda99fc09fb0b5523948f6d481c6c051c1c7b5de,,,0,e990fbc00ef36c022986432e7706b3ad1c9c68a1,b49fa446d683ddcaf6faf2944dacc0d866bf2d70,OWNER,107914493,https://github.com/simonw/datasette/pull/2080,, 1451100029,PR_kwDOBm6k_c5Wfgd9,2118,closed,0,New JSON design for query views,9599,"WIP. Refs: - #2109 ---- :books: Documentation preview :books:: https://datasette--2118.org.readthedocs.build/en/2118/ ",2023-07-26T23:29:21Z,2023-08-08T01:47:40Z,2023-08-08T01:47:39Z,2023-08-08T01:47:39Z,1377a290cd85ba8d3338b1da47c4665ed4c6c625,,9700784,0,8b1dea3c0994d5875e372965eb5ca388ea08fe6a,08181823990a71ffa5a1b57b37259198eaa43e06,OWNER,107914493,https://github.com/simonw/datasette/pull/2118,, 1488154809,PR_kwDOBm6k_c5Ys3C5,2154,closed,0,Cascade for restricted token view-table/view-database/view-instance operations,9599,"Refs: - #2102 Also includes a prototype implementation of `--actor option` which I'm using for testing this, from: - #2153 ---- :books: Documentation preview :books:: https://datasette--2154.org.readthedocs.build/en/2154/ ",2023-08-24T14:24:23Z,2023-08-29T16:32:35Z,2023-08-29T16:32:34Z,2023-08-29T16:32:34Z,50da908213a0fc405ecd7a40090dfea7a2e7395c,,,0,1b38cba913b0a3515b4b1649276dc1ff973680bb,2e2825869fc2655b5fcadc743f6f9dec7a49bc65,OWNER,107914493,https://github.com/simonw/datasette/pull/2154,, 1492599485,PR_kwDOBm6k_c5Y90K9,2161,closed,0,"-s/--setting x y gets merged into datasette.yml, refs #2143, #2156",9599,"This change updates the `-s/--setting` option to `datasette serve` to allow it to be used to set arbitrarily complex nested settings in a way that is compatible with the new `-c datasette.yml` work happening in: - #2143 It will enable things like this: ``` datasette data.db --setting plugins.datasette-ripgrep.path ""/home/simon/code"" ``` For the moment though it just affects [settings](https://docs.datasette.io/en/1.0a4/settings.html) - so you can do this: ``` datasette data.db --setting settings.sql_time_limit_ms 3500 ``` I've also implemented a backwards compatibility mechanism, so if you use it this way (the old way): ``` datasette data.db --setting sql_time_limit_ms 3500 ``` It will notice that the setting you passed is one of Datasette's core settings, and will treat that as if you said `settings.sql_time_limit_ms` instead. ---- :books: Documentation preview :books:: https://datasette--2161.org.readthedocs.build/en/2161/ ",2023-08-28T19:30:42Z,2023-08-28T20:06:15Z,2023-08-28T20:06:14Z,2023-08-28T20:06:14Z,d9aad1fd042a25d226f2ace1f7827b4602761038,,,0,a5cbf80d795b599697b2b873566386abb0cd8b32,527cec66b0403e689c8fb71fc8b381a1d7a46516,OWNER,107914493,https://github.com/simonw/datasette/pull/2161,, 1496106142,PR_kwDOBm6k_c5ZLMSe,2165,closed,0,DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins,9599,"- #2164 TODO: - [x] Automated tests - [ ] Documentation - [x] Make sure `DATASETTE_LOAD_PLUGINS=''` works for loading zero plugins",2023-08-30T20:33:30Z,2023-08-30T22:12:25Z,2023-08-30T22:12:25Z,2023-08-30T22:12:25Z,6bfe104d47b888c70bfb7781f8f48ff11452b2b5,,,0,6321c9c055a640ed6ea98e231dc5813dcde1f773,30b28c8367a9c6870386ea10a202705b40862457,OWNER,107914493,https://github.com/simonw/datasette/pull/2165,, 1503774871,PR_kwDOBm6k_c5ZociX,2173,closed,0,click-default-group>=1.2.3,9599,"Now available as a wheel: - https://github.com/click-contrib/click-default-group/issues/21 ---- :books: Documentation preview :books:: https://datasette--2173.org.readthedocs.build/en/2173/ ",2023-09-06T02:33:28Z,2023-09-06T02:50:10Z,2023-09-06T02:50:10Z,2023-09-06T02:50:10Z,05707aa16b5c6c39fbe48b3176b85a8ffe493938,,,0,a481ebd495d0f87ebd6dcf360a9cff25a6e148d7,fd083e37ec53e7e625111168d324a572344a3b19,OWNER,107914493,https://github.com/simonw/datasette/pull/2173,, 1504918180,PR_kwDOBm6k_c5Zszqk,2175,closed,0,Test against Python 3.12 preview,9599,"https://dev.to/hugovk/help-test-python-312-beta-1508/ ---- :books: Documentation preview :books:: https://datasette--2175.org.readthedocs.build/en/2175/ ",2023-09-06T16:09:05Z,2023-09-06T16:16:28Z,2023-09-06T16:16:27Z,2023-09-06T16:16:27Z,e86eaaa4f371512689e973c18879298dab51f80a,,,0,21e77c3ff9e4aacaa9442a7b3b36aafd87025115,05707aa16b5c6c39fbe48b3176b85a8ffe493938,OWNER,107914493,https://github.com/simonw/datasette/pull/2175,, 1507122571,PR_kwDOBm6k_c5Z1N2L,2181,closed,0,actors_from_ids plugin hook and datasette.actors_from_ids() method,9599,"Refs: - #2180 This plugin hook is feature complete - including documentation and tests. I'm not going to land it in Datasette `main` until we've used it at least once though, which should happen promptly in development for [Datasette Cloud](https://www.datasette.cloud/). ---- :books: Documentation preview :books:: https://datasette--2181.org.readthedocs.build/en/2181/ ",2023-09-08T01:51:07Z,2023-09-08T04:24:00Z,2023-09-08T04:23:59Z,2023-09-08T04:23:59Z,b645174271aa08e8ca83b27ff83ce078ecd15da2,,,0,e1c5a9d92b7677eaf9eff58d05badb39d078d1bd,c26370485a4fd4bf130da051be9163d92c57f24f,OWNER,107914493,https://github.com/simonw/datasette/pull/2181,, 1522166951,PR_kwDOBm6k_c5aumyn,2192,closed,0,Stop using parallel SQL queries for tables,9599,"Refs: - #2189 ---- :books: Documentation preview :books:: https://datasette--2192.org.readthedocs.build/en/2192/ ",2023-09-20T01:28:43Z,2023-09-20T22:10:56Z,2023-09-20T22:10:55Z,2023-09-20T22:10:55Z,b0e5d8afa308759f4ee9f3ecdf61101dffc4a037,,,0,4e6a34179eaedec44c1263275d7592fd83d7e2ac,6ed7908580fa2ba9297c3225d85c56f8b08b9937,OWNER,107914493,https://github.com/simonw/datasette/pull/2192,, 1238017010,PR_kwDOBm6k_c5JyqPy,2025,open,0,Add database metadata to index.html template context,9993,"Fixes #2016 ---- :books: Documentation preview :books:: https://datasette--2025.org.readthedocs.build/en/2025/ ",2023-02-12T11:16:58Z,2023-02-12T11:17:14Z,,,a2d3bb02cf2c9b8ed7c788910fdda606108cd584,,,0,912ed9de92d1bb9a28f50a2e08c5e7df2b827c15,0b4a28691468b5c758df74fa1d72a823813c96bf,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2025,, 1169793638,PR_kwDOBm6k_c5FuaJm,1965,closed,0,Detect server start/stop more reliably.,11321,"This is useful, especially in testing, since your test hosts might not reliabliy start the server within two seconds, so we do a definite check before progressing. By the same token, after `kill $server_pid` wait for the pid to be gone from the process list. Since now the script can end prematurely, I also added a cleanup function to make sure the temporary certs are removed in any case. n.b. this could also be done with the use of `trap 'fn' ERR` but that felt like a bit too much magic for this short a script. ---- :books: Documentation preview :books:: https://datasette--1965.org.readthedocs.build/en/1965/ ",2022-12-18T10:03:42Z,2022-12-20T19:08:26Z,2022-12-18T16:01:51Z,2022-12-18T16:01:51Z,e03aed00026cc2e59c09ca41f69a247e1a85cc89,,,0,6a58fc71d481d27ef28a75b026b47713ca88eeec,a21c00b54dd6e0ecb17c60024fb1b55729c5d21e,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1965,, 152522762,MDExOlB1bGxSZXF1ZXN0MTUyNTIyNzYy,89,closed,0,SQL syntax highlighting with CodeMirror,15543,"Addresses #13 Future enhancements could include autocompletion of table and column names, e.g. with ```javascript extraKeys: {""Ctrl-Space"": ""autocomplete""}, hintOptions: {tables: { users: [""name"", ""score"", ""birthDate""], countries: [""name"", ""population"", ""size""] }} ``` (see https://codemirror.net/doc/manual.html#addon_sql-hint and source at http://codemirror.net/mode/sql/)",2017-11-14T14:43:33Z,2017-11-15T02:03:01Z,2017-11-15T02:03:01Z,2017-11-15T02:03:01Z,8252daa4c14d73b4b69e3f2db4576bb39d73c070,,,0,7f6ad095e9c41bf24d73b7724d898965c419965b,075d422c0a1c70259188dfbd940538c67419694a,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/89,, 1425647904,PR_kwDOBm6k_c5U-akg,2096,open,0,Clarify docs for descriptions in metadata,15906,"G'day! I got confused while debugging, earlier today. That's on me, but it does strike me a little repetition in the metadata documentation might help those flicking around it rather than reading it from top to bottom. No worries if you think otherwise. ---- :books: Documentation preview :books:: https://datasette--2096.org.readthedocs.build/en/2096/ ",2023-07-08T01:57:58Z,2023-07-08T01:58:13Z,,,88388864859b24707f4be9574e357910c368b0fe,,,0,3b787aae74b683414f3546bc9979e9f2c0ae13e9,8cd60fd1d899952f1153460469b3175465f33f80,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2096,, 971057476,PR_kwDOBm6k_c454SlE,1759,closed,0,Extract facet portions of table.html out into included templates,19872,To allow users customise the facet content as they would prefer such as sorting of facet results. ordering of suggested facets etc.,2022-06-17T22:04:04Z,2022-06-20T18:05:45Z,2022-06-20T18:05:45Z,2022-06-20T18:05:45Z,00e59ec461dc0150772b999c7cc15fcb9b507d58,,,0,b901bb0a8eb50bc966c3e1712d73c0822edf3861,2e9751672d4fe329b3c359d5b7b1992283185820,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1759,, 152870030,MDExOlB1bGxSZXF1ZXN0MTUyODcwMDMw,104,closed,0,[WIP] Add publish to heroku support,21148," Refs #90 ",2017-11-15T19:56:22Z,2017-11-21T20:55:05Z,2017-11-21T20:55:05Z,2017-11-21T20:55:05Z,e47117ce1d15f11246a3120aa49de70205713d05,,,0,de42240afd1e3829fd21cbe77a89ab0eaab20d78,0331666e346c68b86de4aa19fbb37f3a408d37ca,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/104,, 664072046,MDExOlB1bGxSZXF1ZXN0NjY0MDcyMDQ2,1370,closed,0,Ensure db.path is a string before trying to insert into internal database,25778,"Fixes #1365 This is the simplest possible fix, with a test that will fail without it. There are a bunch of places where `db.path` is getting converted to and from a `Path` type, so this fix errs on the side of calling `str(db.path)` right before it's inserted.",2021-06-08T01:16:48Z,2021-06-21T15:57:39Z,2021-06-21T15:57:39Z,2021-06-21T15:57:39Z,a6c55afe8c82ead8deb32f90c9324022fd422324,,,0,2de712e439097de1d31f00db312cb87764642a87,f4c5777c7e4ed406313583de09a3bf746552167f,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1370,, 985781142,PR_kwDOBm6k_c46wdOW,1766,closed,0,Keep track of config_dir,25778,"Closes #1764 Small change that adds `self.config_dir = config_dir` to `Datasette.__init__`. This will let plugins also use `config_dir`, if available.",2022-07-03T17:37:02Z,2022-07-18T01:12:45Z,2022-07-18T01:12:45Z,2022-07-18T01:12:45Z,01369176b0a8943ab45292ffc6f9c929b80a00e8,,,0,257fd240975abf9647217f5d22ccadbecd6ec9f2,9f1eb0d4eac483b953392157bd9fd6cc4df37de7,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1766,, 1201985064,PR_kwDOBm6k_c5HpNYo,1996,open,0,Document custom json encoder,25778,"Closes #1983 All documentation here. Edits welcome. ---- :books: Documentation preview :books:: https://datasette--1996.org.readthedocs.build/en/1996/ ",2023-01-18T16:54:14Z,2023-01-19T12:55:57Z,,,b608768f75e8e15ee4618ebac8bcba2da47b2aa3,,,0,96b8b7f1ecf3abaec5921aaedee251e36eed5339,6a352e99ab988dbf8fd22a100049caa6ad33f1ec,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1996,, 284743794,MDExOlB1bGxSZXF1ZXN0Mjg0NzQzNzk0,500,closed,0,Fix typo in install step: should be install -e,32314,,2019-06-03T21:50:51Z,2019-06-11T18:48:43Z,2019-06-11T18:48:40Z,2019-06-11T18:48:40Z,aa911122feab13f8e65875c98edb00fd3832b7b8,,,0,ff98f44d7f10ff65fc172df9155c77f169ab4c7f,5e8fbf7f6fbc0b63d0479da3806dd9ccd6aaa945,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/500,, 806136219,PR_kwDOBm6k_c4wDKmb,1574,closed,0,introduce new option for datasette package to use a slim base image,33631,"The official python images on docker hub come with a slim variant that is significantly smaller than the default. The diff does not change the default, but allows to switch to the `slim` variant with commandline switch (`--slim-base-image`) Size comparison: ``` $ datasette package some.db -t fat --install ""datasette-basemap datasette-cluster-map"" $ datasette package some.db -t slim --slim-base-image --install ""datasette-basemap datasette-cluster-map"" $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE fat latest 807b393ace0d 9 seconds ago 978MB slim latest 31bc5e63505c 8 minutes ago 191MB ```",2021-12-19T21:18:19Z,2022-08-15T08:49:31Z,2022-08-15T08:49:31Z,,92ca4a2a9fb44e4cffc71444196753ad4a75a5c8,,,0,8561f0343b2b4213416ca84c8071a5a290f15a42,8c401ee0f054de2f568c3a8302c9223555146407,NONE,107914493,https://github.com/simonw/datasette/pull/1574,, 181033024,MDExOlB1bGxSZXF1ZXN0MTgxMDMzMDI0,200,closed,0,Hide Spatialite system tables,45057,They were getting on my nerves.,2018-04-11T21:26:58Z,2018-04-12T21:34:48Z,2018-04-12T21:34:48Z,2018-04-12T21:34:48Z,d08a13314081ae2ce0313a17d3c07c1a7f2d94d5,,,0,765b5d677154c633b91e3e826dfffc53b7c4b5d3,bfb4e45a7bcb880758dbc18f66258de26c1d1904,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/200,, 181247568,MDExOlB1bGxSZXF1ZXN0MTgxMjQ3NTY4,202,closed,0,Raise 404 on nonexistent table URLs,45057,"Currently they just 500. Also cleaned the logic up a bit, I hope I didn't miss anything. This is issue #184.",2018-04-12T15:47:06Z,2018-04-13T19:22:56Z,2018-04-13T18:19:15Z,,134150933ade84327cfd97a88d536f5bff37a136,,,0,71bbf4e4be8a9ab7bcc4ddfb33760c7d902f4a34,bfb4e45a7bcb880758dbc18f66258de26c1d1904,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/202,, 181600926,MDExOlB1bGxSZXF1ZXN0MTgxNjAwOTI2,204,closed,0,Initial units support,45057,"Add support for specifying units for a column in metadata.json and rendering them on display using [pint](https://pint.readthedocs.io/en/latest/). Example table metadata: ```json ""license_frequency"": { ""units"": { ""frequency"": ""Hz"", ""channel_width"": ""Hz"", ""height"": ""m"", ""antenna_height"": ""m"", ""azimuth"": ""degrees"" } } ``` [Example result](https://wtr-api.herokuapp.com/wtr-663ea99/license_frequency/1) This works surprisingly well! I'd like to add support for using units when querying but this is PR is pretty usable as-is. (Pint doesn't seem to support decibels though - it thinks they're decibytes - which is an annoying omission.) (ref ticket #203)",2018-04-13T21:32:49Z,2018-04-14T09:44:33Z,2018-04-14T03:32:54Z,2018-04-14T03:32:54Z,ec6abc81e433c9bac1b9f085111785fc227e9e34,,,0,67c20a98a0cbb59a10247a49320c2feb7d0b1b41,fb988ace7c7e2bee5ac142a0eab22431d0675a77,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/204,, 181642114,MDExOlB1bGxSZXF1ZXN0MTgxNjQyMTE0,205,closed,0,Support filtering with units and more,45057,"The first commit: * Adds units to exported JSON * Adds units key to metadata skeleton * Adds some docs for units The second commit adds filtering by units by the first method I mentioned in #203: ![image](https://user-images.githubusercontent.com/45057/38767463-7193be16-3fd9-11e8-8a5f-ac4159415c6d.png) [Try it here](https://wtr-api.herokuapp.com/wtr-663ea99/license_frequency?frequency__gt=50GHz&height__lt=50ft). I think it integrates pretty neatly. The third commit adds support for registering custom units with Pint from metadata.json. Probably pretty niche, but I need decibels!",2018-04-14T10:47:51Z,2018-04-14T15:24:04Z,2018-04-14T15:24:04Z,,ed059c70e87a2930206652621e23a55167aa57c1,,,0,eb3a37c34813ecbbfdae015305fec1f2a4ec27a5,6b15a53cd3cd40880a5e2d38827d5fac10e4bb5f,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/205,, 181644805,MDExOlB1bGxSZXF1ZXN0MTgxNjQ0ODA1,206,closed,0,Fix sqlite error when loading rows with no incoming FKs,45057,"This fixes `ERROR: conn=, sql = 'select ', params = {'id': '1'}` caused by an invalid query loading incoming FKs when none exist. The error was ignored due to async but it still got printed to the console.",2018-04-14T12:08:17Z,2018-04-14T14:32:42Z,2018-04-14T14:24:25Z,2018-04-14T14:24:25Z,1cc5161089e559c8b16049b20f7a5b3a43290c21,,,0,93b038e2469bee07d36ae8a943aab8b9d8610c1d,ec6abc81e433c9bac1b9f085111785fc227e9e34,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/206,, 181647717,MDExOlB1bGxSZXF1ZXN0MTgxNjQ3NzE3,207,closed,0,Link foreign keys which don't have labels,45057,"This renders unlabeled FKs as simple links. I can't see why this would cause any major problems. ![image](https://user-images.githubusercontent.com/45057/38768722-ea15a000-3fef-11e8-8664-ffd7aa4894ea.png) Also includes bonus fixes for two minor issues: * In foreign key link hrefs the primary key was escaped using HTML escaping rather than URL escaping. This broke some non-integer PKs. * Print tracebacks to console when handling 500 errors.",2018-04-14T13:27:14Z,2018-04-14T15:00:00Z,2018-04-14T15:00:00Z,2018-04-14T15:00:00Z,f2b940d6026677f6859d46a4f16fa402745d261d,,,0,d9858672da8f74e5530deead140e2e633e1c2627,ec6abc81e433c9bac1b9f085111785fc227e9e34,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/207,, 181654839,MDExOlB1bGxSZXF1ZXN0MTgxNjU0ODM5,208,closed,0,Return HTTP 405 on InvalidUsage rather than 500,45057,"This also stops it filling up the logs. This happens for HEAD requests at the moment - which perhaps should be handled better, but that's a different issue.",2018-04-14T16:12:50Z,2018-04-14T18:00:39Z,2018-04-14T18:00:39Z,2018-04-14T18:00:39Z,efbb4e83374a2c795e436c72fa79f70da72309b8,,,0,20e5fcf827046adf76968d0e58f47e0b7d9271c3,8d394586f55bc4b8ab70476968d08fb6ec8339e5,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/208,, 181723303,MDExOlB1bGxSZXF1ZXN0MTgxNzIzMzAz,209,closed,0, Don't duplicate simple primary keys in the link column,45057,"When there's a simple (single-column) primary key, it looks weird to duplicate it in the link column. This change removes the second PK column and treats the link column as if it were the PK column from a header/sorting perspective. This might make it a bit more difficult to tell what the link for the row is, I'm not sure yet. I feel like the alternative is to change the link column to just have the text ""view"" or something, instead of repeating the PK. (I doubt it makes much more sense with compound PKs.) Bonus change in this PR: fix urlencoding of links in the displayed HTML. Before: ![image](https://user-images.githubusercontent.com/45057/38783830-e2ababb4-40ff-11e8-97fb-25e286a8c920.png) After: ![image](https://user-images.githubusercontent.com/45057/38783835-ebf6b48e-40ff-11e8-8c47-6a864cf21ccc.png)",2018-04-15T21:56:15Z,2018-04-18T08:40:37Z,2018-04-18T01:13:04Z,2018-04-18T01:13:04Z,136a70d88741e2a5892c3de437064a9d14494d66,,,0,4acde4e187795214af6fc86f46af48982ec5de46,bf5ec2d61148f9852441934dd206b3b1c07a512f,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/209,, 189318453,MDExOlB1bGxSZXF1ZXN0MTg5MzE4NDUz,277,closed,0,Refactor inspect logic,45057,"This pulls the logic for inspect out into a new file which makes it a bit easier to understand. This was going to be the first part of an implementation for #276, but it seems like that might take a while so I'm going to PR a few bits of refactoring individually.",2018-05-21T08:49:31Z,2018-05-22T16:07:24Z,2018-05-22T14:03:07Z,2018-05-22T14:03:07Z,58b5a37dbbf13868a46bcbb284509434e66eca25,,,0,0b81e047ad27b67ba17e8c176e38a94cf4548115,d59366d36e95b973d674e62edff0168d5bdd90eb,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/277,, 201451332,MDExOlB1bGxSZXF1ZXN0MjAxNDUxMzMy,345,closed,0,Allow app names for `datasette publish heroku`,45057,"Lets you supply the `-n` parameter for Heroku deploys, which also lets you update existing Heroku deployments.",2018-07-14T13:12:34Z,2018-07-14T14:09:54Z,2018-07-14T14:04:44Z,2018-07-14T14:04:44Z,58fec99ab0a31bcf25968f2aa05d37de8139b83c,,,0,864cf8c1b01a581d6dc9711efe7cb4f2a6ac87e8,31a5d8fa77be68d4f837f0a80a611675dce49f4b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/345,, 266035382,MDExOlB1bGxSZXF1ZXN0MjY2MDM1Mzgy,424,closed,0,Column types in inspected metadata,45057,"This PR does two things: * Adds the sqlite column type for each column to the inspected table info. * Stops binary columns from being rendered to HTML, unless a plugin handles it. There's a bit more detail in the changeset descriptions. These changes are intended as a precursor to a plugin which adds first-class support for Spatialite geographic primitives, and perhaps more useful geo-stuff.",2019-03-31T18:46:33Z,2019-04-29T18:30:50Z,2019-04-29T18:30:46Z,,a332d4e0b3fed7165a22880430664f1c3a00963d,,,0,92e7b8c67fe5bcd484f19576f20c9235aca9050b,0209a0a344503157351e625f0629b686961763c9,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/424,, 274174614,MDExOlB1bGxSZXF1ZXN0Mjc0MTc0NjE0,437,closed,0,Add inspect and prepare_sanic hooks,45057,"This adds two new plugin hooks: The `inspect` hook allows plugins to add data to the inspect dictionary. The `prepare_sanic` hook allows plugins to hook into the web router. I've attached a warning to this hook in the docs in light of #272 but I want this hook now... On quick inspection, I don't think it's worthwhile to try and make this hook independent of the web framework (but it looks like Starlette would make the hook implementation a bit nicer). Ref #14",2019-04-28T11:53:34Z,2019-06-24T16:38:57Z,2019-06-24T16:38:56Z,,7aeaac7c478acf572bda61bdaa6ac3247dc15811,,,0,f33a0a63a7442f0b665320ac3e2eb55de315f1f7,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/437,, 274313625,MDExOlB1bGxSZXF1ZXN0Mjc0MzEzNjI1,439,closed,0,[WIP] Add primary key to the extra_body_script hook arguments,45057,"This allows the row to be identified on row pages. The context here is that I want to access the row's data to plot it on a map. I considered passing the entire template context through to the hook function. This would expose the actual row data and potentially avoid a further fetch request in JS, but it does make the plugin API a lot more leaky. (At any rate, using the selected row data is tricky in my case because of Spatialite's infuriating custom binary representation...)",2019-04-29T10:08:23Z,2019-05-01T09:58:32Z,2019-05-01T09:58:30Z,,b3cbcfef4d11d2741cf00861734d726a4730afe5,,,0,76b2c8fa406063b436155a7d8995e07b7e718c13,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/439,, 274468836,MDExOlB1bGxSZXF1ZXN0Mjc0NDY4ODM2,441,closed,0,Add register_output_renderer hook,45057,"This changeset refactors out the JSON renderer and then adds a hook and dispatcher system to allow custom output renderers to be registered. The CSV output renderer is untouched because supporting streaming renderers through this system would be significantly more complex, and probably not worthwhile. We can't simply allow hooks to be called at request time because we need a list of supported file extensions when the request is being routed in order to resolve ambiguous database/table names. So, renderers need to be registered at startup. I've tried to make this API independent of Sanic's request/response objects so that this can remain stable during the switch to ASGI. I'm using dictionaries to keep it simple and to make adding additional options in the future easy. Fixes #440",2019-04-29T18:03:21Z,2019-05-01T23:01:57Z,2019-05-01T23:01:57Z,2019-05-01T23:01:57Z,cf406c075433882b656e340870adf7757976fa4c,,,0,c9f941f06eb0268841de49407725917c74a8a2dc,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/441,, 274478761,MDExOlB1bGxSZXF1ZXN0Mjc0NDc4NzYx,442,closed,0,Suppress rendering of binary data,45057,"Binary columns (including spatialite geographies) get shown as ugly binary strings in the HTML by default. Nobody wants to see that mess. Show the size of the column in bytes instead. If you want to decode the binary data, you can use a plugin to do it.",2019-04-29T18:36:41Z,2019-05-03T18:26:48Z,2019-05-03T16:44:49Z,2019-05-03T16:44:49Z,d555baf508de71a5e3dc9a9aed2c13f6f202956d,,,0,bbbd9ea5ad774f088bd963106fa5756bfd77c799,11b352b4d52fd02a422776edebb14f12e4994d3b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/442,, 275275610,MDExOlB1bGxSZXF1ZXN0Mjc1Mjc1NjEw,443,closed,0,Pass view_name to extra_body_script hook,45057,"At the moment it's not easy to tell whether the hook is being called in (for example) the row or table view, as in both cases the `database` and `table` parameters are provided. This passes the `view_name` added in #441 to the `extra_body_script` hook.",2019-05-02T08:38:36Z,2019-05-03T13:12:20Z,2019-05-03T13:12:20Z,2019-05-03T13:12:20Z,bf229c9bd88179c8ec16bd65fd4fb28ab4241c2e,,,0,83b6b82d4787b30d34eb26c22ad1ff9c5c118134,efc93b8ab5a21e3802f75f08d5e41409f5684b5d,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/443,, 275281307,MDExOlB1bGxSZXF1ZXN0Mjc1MjgxMzA3,444,closed,0,Add a max-line-length setting for flake8,45057,"This stops my automatic editor linting from flagging lines which are too long. It's been lingering in my checkout for ages. 160 is an arbitrary large number - we could alter it if we have any opinions (but I find the line length limit to be my least favourite part of PEP8).",2019-05-02T08:58:57Z,2019-05-04T09:44:48Z,2019-05-03T13:11:28Z,2019-05-03T13:11:28Z,470cf0b05d4fda0d2563f81c7e32af13fe346ccc,,,0,4f0d265951d7e95920298b46eff39bb9cc783984,efc93b8ab5a21e3802f75f08d5e41409f5684b5d,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/444,, 275909197,MDExOlB1bGxSZXF1ZXN0Mjc1OTA5MTk3,450,closed,0,Coalesce hidden table count to 0,45057,"For some reason I'm hitting a `None` here with a FTS table. I'm not entirely sure why but this makes the logic work the same as with non-hidden tables.",2019-05-04T09:37:10Z,2019-05-11T18:10:09Z,2019-05-11T18:10:09Z,,5918489a2a2f14b58c5c71773a9d4fb6bb0e3e0a,,,0,f81d9df985e8d054fc16ab91f72878fe71656354,55643430f7ac8d27e99b00e7cf79db741003e811,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/450,, 275923066,MDExOlB1bGxSZXF1ZXN0Mjc1OTIzMDY2,452,open,0,SQL builder utility classes,45057,"This adds a straightforward set of classes to aid in the construction of SQL queries. My plan for this was to allow plugins to manipulate the Datasette-generated SQL in a more structured way. I'm not sure that's going to work, but I feel like this is still a step forward - it reduces the number of intermediate variables in `TableView.data` which aids readability, and also factors out a lot of the boring string concatenation. There are a fair number of minor structure changes in here too as I've tried to make the ordering of `TableView.data` a bit more logical. As far as I can tell, I haven't broken anything...",2019-05-04T13:57:47Z,2019-05-04T14:03:04Z,,,45e7460d78c3f87c01f2e9e142cb7f646b23b156,,,0,c63762280d3bd66ad6ea24933dafe218861efef2,55643430f7ac8d27e99b00e7cf79db741003e811,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/452,, 183135604,MDExOlB1bGxSZXF1ZXN0MTgzMTM1NjA0,232,closed,0,Fix a typo,45281,It looks like this was the only instance of it: https://github.com/simonw/datasette/search?utf8=%E2%9C%93&q=SOLite&type=,2018-04-20T18:20:04Z,2018-04-21T00:19:08Z,2018-04-21T00:19:08Z,2018-04-21T00:19:08Z,a971718d2a5e1b61b5e5c27b0ef6c4ec65616e35,,,0,b0f0f16a1c1f48aba62dfa30fa039dc6d3c07802,3a5d7951ce8f35118ffdd7f8d86e09b909e1218c,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/232,, 508719567,MDExOlB1bGxSZXF1ZXN0NTA4NzE5NTY3,1043,closed,0,Include LICENSE in sdist,45380,"Hi, thanks for `datasette`! This PR adds the `LICENSE` to source distributions, which seems the norm for Apache-2.0 stuff. I noticed the [0.50.2 sdist](https://files.pythonhosted.org/packages/f2/ba/1b5f182c3f1769c0863bcaa77406bdcb81c92e31bb579959c01b1d8951c0/datasette-0.50.2.tar.gz) doesn't ship `LICENSE`, but the 0.5.2 `whl` does, so I'm assuming the intent _is_ to ship... and it's a one-liner! Motivation: It might be a bit of a slog, but I'm looking to see about getting `datasette` (and friends!) available on conda-forge. There are a few missing upstreams (`asgi-csrf`, `python-basecov`, `mergedeep`) and some of the plugins don't even appear to _have_ tarballs (just `whl`!), but the little stuff like licenses are nice to get out handled upstream vs separately grabbing them.",2020-10-23T05:04:12Z,2020-10-26T00:14:57Z,2020-10-23T20:54:35Z,2020-10-23T20:54:35Z,976e5f74aae1fa0d406df6691dc8b5feeebe8788,,,0,dc4129cb37060b52775d96e756f7cdb65ee76bc3,d0cc6f4c32e1f89238ddec782086b3122f445bd4,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1043,, 508720660,MDExOlB1bGxSZXF1ZXN0NTA4NzIwNjYw,1044,closed,0,Add minimum supported python,45380,"Thanks for `datasette`! This PR adds `python_requires` to formally signal the [minimum supported python version](https://packaging.python.org/guides/dropping-older-python-versions/#specify-the-version-ranges-for-supported-python-distributions) (which is pointed out with classifiers, so seems pretty straightforward).",2020-10-23T05:08:03Z,2020-10-23T20:53:08Z,2020-10-23T20:53:08Z,2020-10-23T20:53:08Z,cab8e65261b117b493af6a0b21aa2e1ae4564419,,,0,6453ab18e56b36bc912b6f24c4a43002c6084ade,d0cc6f4c32e1f89238ddec782086b3122f445bd4,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1044,, 226314862,MDExOlB1bGxSZXF1ZXN0MjI2MzE0ODYy,367,closed,0,Mark codemirror files as vendored,48517,"GitHub lists datasette as a Javascript project, primarily because of the vendored codemirror files. This is somewhat confusing when you're looking for datasette, knowing it's written in Python. Luckily it's possible exclude certain files from GitHub's code statistics: https://github.com/github/linguist#using-gitattributes",2018-10-27T18:41:25Z,2019-05-03T21:12:09Z,2019-05-03T21:11:20Z,2019-05-03T21:11:20Z,66c87cee0c7344c7877373c60b180c766c206101,,,0,8e23e4548eedd58b0ff0e69c9a5010fc1a0136d5,6b398c2971801d9a20cfdb7998f59020d5534e22,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/367,, 226315513,MDExOlB1bGxSZXF1ZXN0MjI2MzE1NTEz,368,closed,0,Update installation instructions,48517,"I was writing this as a response to your tweet, but decided I might just make it a pull request. I feel like it might be confusing to those unfamiliar with Python's `-m` flag and the built-in `venv` module to omit the space between the flag and its argument. By adding a space and prefixing the second occurrence of `venv` with a `./` it's maybe a bit clearer what the arguments are and what they do. By also using `python3 -m pip` it becomes even clearer that `-m` is a special flag that makes the python executable do neat things.",2018-10-27T18:52:31Z,2019-05-03T18:18:43Z,2019-05-03T18:18:42Z,2019-05-03T18:18:42Z,f853d5592ec7f901a50381de22a26a9ab098f885,,,0,8f8d6072820a13e2c698d9c326998b63810779c6,553314dcd699a84aa7cc806377150ca0d57a6024,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/368,, 434085235,MDExOlB1bGxSZXF1ZXN0NDM0MDg1MjM1,848,closed,0,Reload support for config_dir mode.,49260,"A reference implementation for adding support to reload when datasette is in the config_dir mode. This implementation is flawed since it is watching the entire directory and any changes to the database will reload the server and adding unrelated files to the directory will also reload the server. ",2020-06-14T02:34:46Z,2020-07-03T02:44:54Z,2020-07-03T02:44:53Z,,888538efdbf545c0df524ca590a17fb6c6fa2419,,,0,0d100d15aca93fae200b3bc2e29dfd60aaa4b384,57879dc8b346a435804a9e45ffaacbf2a0228bc6,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/848,, 443823040,MDExOlB1bGxSZXF1ZXN0NDQzODIzMDQw,890,closed,0,Load only python files from plugins-dir.,49260,"The current behavior for `--plugins-dir` is to load every file in that folder as a python module. This can result in errors if there are non-python files in the plugins dir (such as .mypy_cache). This PR restricts the module loading to only python files. ",2020-07-03T02:47:32Z,2020-07-03T03:08:33Z,2020-07-03T03:08:33Z,2020-07-03T03:08:33Z,ea99a4431ce5bc2d65a3496da5b38e1986550a96,,,0,745af3b72d95d91f3ccd703f4fab819bc9f4b6a4,57879dc8b346a435804a9e45ffaacbf2a0228bc6,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/890,, 152360740,MDExOlB1bGxSZXF1ZXN0MTUyMzYwNzQw,81,closed,0,:fire: Removes DS_Store,50527,,2017-11-13T22:07:52Z,2017-11-14T02:24:54Z,2017-11-13T22:16:55Z,2017-11-13T22:16:55Z,06a826c3188af82f27bb6b4e09cc89b782d30bd6,,,0,c66d297eac556a7f4fd4dcdb15cfb9466fddac77,d75f423b6fcfc074b7c6f8f7679da8876f181edd,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/81,, 528997614,MDExOlB1bGxSZXF1ZXN0NTI4OTk3NjE0,1112,closed,0,Fix --metadata doc usage,50527,"I stumbled on this while trying to figure out how to configure datasette-ripgrep via https://github.com/simonw/datasette-ripgrep/issues/15 You may not want to update the changelog (those are annoying) so I added two commits in case that's easier. ",2020-11-28T19:19:51Z,2020-11-28T23:28:21Z,2020-11-28T19:53:48Z,2020-11-28T19:53:48Z,bbde835a1fec01458e8d00929e7bab6d6a5ba948,,6055094,0,1a30fc259205df736daf068c57a0a6ae2c21ffa9,37d18a5bce08c9ee53c080f613bae84fc2ccc853,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1112,, 727436404,MDExOlB1bGxSZXF1ZXN0NzI3NDM2NDA0,1458,closed,0,Rework the `--static` documentation a bit,51016,"Per https://github.com/simonw/datasette/issues/1457, I was confused by the current docs and took a few minutes to sort out what the right combination of locations was. This is a PR that differentiates the docs to split out `/static/` in URL from `--static` option and `./static/` path. Not wedded to the details in any way, happy to change to suit. Fixes #1457.",2021-09-05T17:08:48Z,2021-10-15T13:24:29Z,2021-10-14T18:39:55Z,2021-10-14T18:39:55Z,0fdbf004843850f200e077a3c87427fe16c18b85,,,0,e00c3a274d073c09707f4b6edd2ed652efe03918,d57ab156b35ec642549fb69d08279850065027d2,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1458,, 729704537,MDExOlB1bGxSZXF1ZXN0NzI5NzA0NTM3,1465,open,0,add support for -o --get /path,51016,"Fixes https://github.com/simonw/datasette/issues/1459 Adds support for `--open --get /path` to be used in combination. If `--open` is provided alone, datasette will open a web page to a default URL. If `--get ` is provided alone, datasette will output the result of doing a GET to that URL and then exit. If `--open --get ` are provided together, datasette will open a web page to that URL. TODO items: - [ ] update documentation - [ ] print out error message when `--root --open --get ` is used - [ ] adjust code to require that `` start with a `/` when `-o --get ` is used - [ ] add test(s) note, '@CTB' is used in this PR to flag code that needs revisiting.",2021-09-08T14:30:42Z,2021-09-08T14:31:45Z,,,064e9511923fc4e50566bf9430b4a5b26f169357,,,1,9b66a7d9ba55bad8a3b409ede8855f4b4fff1f88,d57ab156b35ec642549fb69d08279850065027d2,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1465,, 153201945,MDExOlB1bGxSZXF1ZXN0MTUzMjAxOTQ1,114,closed,0,"Add spatialite, switch to debian and local build",54999,"Improves the Dockerfile to support spatial datasets, work with the local datasette code (Friendly with git tags and Dockerhub) and moves to slim debian, a small image easy to extend via apt packages for sqlite.",2017-11-17T02:37:09Z,2017-11-17T03:50:52Z,2017-11-17T03:50:52Z,2017-11-17T03:50:52Z,8b4c600d98b85655b3a1454ebf64f858b5fe54c8,,,0,6c6b63d890529eeefcefb7ab126ea3bd7b2315c1,b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/114,, 163523976,MDExOlB1bGxSZXF1ZXN0MTYzNTIzOTc2,180,closed,0,make html title more readable in query template,56477,tiny tweak to make this easier to visually parseā€”I think it matches your style in other templates,2018-01-17T18:56:03Z,2018-04-03T16:03:38Z,2018-04-03T15:24:05Z,2018-04-03T15:24:05Z,446d47fdb005b3776bc06ad8d1f44b01fc2e938b,,,0,dc900b2f587c839e97389aaca70140fb06b4d40b,56623e48da5412b25fb39cc26b9c743b684dd968,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/180,, 1488414606,PR_kwDOBm6k_c5Yt2eO,2155,open,0,Fix hupper.start_reloader entry point,79087,"Update hupper's entry point so that click commands are processed properly. Fixes #2123 ---- :books: Documentation preview :books:: https://datasette--2155.org.readthedocs.build/en/2155/ ",2023-08-24T17:14:08Z,2023-09-27T18:44:02Z,,,8b993f48927cfb89f31251a94dc7b48b6b2d3021,,,0,ba2c235a8ea7240549af38988b4cbff8d7ec55bd,bdf59eb7db42559e538a637bacfe86d39e5d17ca,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/2155,, 687298112,MDExOlB1bGxSZXF1ZXN0Njg3Mjk4MTEy,1392,closed,0,Update deploying.rst,80737,Use same base url for Apache as in the example,2021-07-11T08:43:19Z,2021-07-13T17:42:31Z,2021-07-13T17:42:27Z,2021-07-13T17:42:27Z,4054e96a3914e821d0880a40a7284aaa9db1eaaa,,,0,f57a8ab0905bb85a9334fe4bf87e2cd736c78cbb,f83c84fd51d144036924ae77d99f12b0a69e7e6f,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1392,, 687304242,MDExOlB1bGxSZXF1ZXN0Njg3MzA0MjQy,1393,closed,0,Update deploying.rst,80737,"Example on how to use Unix domain socket option on Apache. Not testet. (Usually I would have used [`ProxyPassReverse`](https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse) in combination with `ProxyPass` , i.e. ```apache ProxyPass /my-datasette/ http://127.0.0.1:8009/my-datasette/ ProxyPassReverse /my-datasette/ http://127.0.0.1:8009/my-datasette/ ``` and ```apache ProxyPass /my-datasette/ unix:/tmp/datasette.sock|http://localhost/my-datasette/ ProxyPassReverse /my-datasette/ unix:/tmp/datasette.sock|http://localhost/my-datasette/ ``` )",2021-07-11T09:32:16Z,2021-07-13T18:32:49Z,2021-07-13T18:32:49Z,2021-07-13T18:32:49Z,d71cac498138ddd86f18607b9043e70286ea884a,,,0,1bbb577e9e10e0225ab885d72defcbf6517cc096,f83c84fd51d144036924ae77d99f12b0a69e7e6f,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1393,, 161982711,MDExOlB1bGxSZXF1ZXN0MTYxOTgyNzEx,178,closed,0,"If metadata exists, add it to heroku launch command",82988,"The heroku build does seem to make use of any provided `metadata.json` file. Add the `--metadata` switch to the Heroku web launch command if a `metadata.json` file is available. Addresses: https://github.com/simonw/datasette/issues/177",2018-01-09T21:42:21Z,2018-01-15T09:42:46Z,2018-01-14T21:05:16Z,2018-01-14T21:05:16Z,3a56a2cd7eea5d477d5d936b01098be5cba0d98e,,,0,1bc9ed98c4f4fd91b70560ac8f507a2fddbd8317,306e1c6ac4f00cc25d676a6ee660938f5b27427c,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/178,, 509590205,MDExOlB1bGxSZXF1ZXN0NTA5NTkwMjA1,1049,closed,0,Add template block prior to extra URL loaders,82988,"To handle packages that require Javascript state setting prior to loading a package (eg [`thebelab`](https://thebelab.readthedocs.io/en/latest/examples/minimal_example.html), provide a template block before the URLs are loaded.",2020-10-25T13:08:55Z,2020-10-29T09:20:52Z,2020-10-29T09:20:34Z,,99f994b14e2dbe22fda18b67dd5c824d359443fb,,,0,50a743ad35684f09d3c3880f6af2019e59271237,42f4851e3e7885f1092f104d6c883cea40b12f02,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1049,, 998860509,PR_kwDOBm6k_c47iWbd,1772,open,0,Convert to setup.cfg,89725,"Recent versions of setuptools can run most things from setup.cfg so one can have a simpler version that does not require executing code on install. The bulk of the changes were automated by running https://pypi.org/project/setup-py-upgrade/ with a few minor edits for the bits that it can not auto convert (the initial `get_long_description()` and `get_version()` can not be automatically converted)",2022-07-18T03:39:53Z,2022-07-18T03:39:53Z,,,3abb0780f97901ae39f8a206c7c6d376f8574ffc,,,0,c1b2f539c8d4cabe0a48d07bd8ce3fd1439a8f08,01369176b0a8943ab45292ffc6f9c929b80a00e8,FIRST_TIME_CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1772,, 1123392399,PR_kwDOBm6k_c5C9ZuP,1893,closed,0,"Upgrade to CodeMirror 6, add SQL autocomplete",95570,"In an effort to get closer to table / column autocomplete I took a shot at https://github.com/simonw/datasette/issues/1796. I haven't done a lot of testing but would be curious if this fixes some of the concerns raised in https://github.com/simonw/datasette/issues/1796#issue-1355148385 for example. Done: * Changed to bundling using rollup as per https://codemirror.net/examples/bundle/ * Restored a fromTextArea-like function from https://codemirror.net/docs/migration/ * Removed old JS and CSS files (no external CSS needed anymore as per https://codemirror.net/examples/styling/) * Updated instructions for building the bundle Not done: * cmResize had an error, so commented out the resize handle * Add extraKeys option for shift+enter and tab ---- :books: Documentation preview :books:: https://datasette--1893.org.readthedocs.build/en/1893/ ",2022-11-15T20:52:35Z,2022-11-16T23:54:02Z,2022-11-16T23:49:06Z,2022-11-16T23:49:06Z,ae11fa5887e03376704c22e5d0969c1e0642d8d8,,,0,f254be4b38936e95e7a7f25866e7c6b0520db96f,6f610e1d94b7b8ec605b5b7fcb01537f6adf9c5b,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1893,, 1125261188,PR_kwDOBm6k_c5DEh-E,1898,closed,0,Use DOMContentLoaded instead of load event for CodeMirror initialization,95570," Closes #1894 ---- :books: Documentation preview :books:: https://datasette--1898.org.readthedocs.build/en/1898/ ",2022-11-17T00:19:21Z,2022-11-18T07:29:01Z,2022-11-18T07:29:01Z,2022-11-18T07:29:01Z,3ecd131e57add427d847b614c920c9624bb2e66b,,,0,5eb4ea45ce6cdc7003fc7c5175977b025b0f111e,00e233d7a7f6443cb95fb5227c23580c48551cad,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/1898,, 280204276,MDExOlB1bGxSZXF1ZXN0MjgwMjA0Mjc2,479,closed,0,doc typo fix,98555,Fix typo in performance doc page,2019-05-19T22:54:25Z,2019-05-20T16:42:29Z,2019-05-20T16:42:29Z,2019-05-20T16:42:29Z,70d2858067d3c4da0e17c1d39e03de89190e94b6,,,0,708e13ab87f8c8620796c3e8f2b0aa1b2fc26875,e513a80afba30bca9eeebd71c5e6aa6d8a811f33,CONTRIBUTOR,107914493,https://github.com/simonw/datasette/pull/479,,