pull_requests
436 rows where repo = 107914493 sorted by closed_at
This data as json, CSV (advanced)
Suggested facets: state, title, body, updated_at, closed_at, milestone, draft, base, author_association, created_at (date), closed_at (date), merged_at (date)
updated_at (date) 290 ✖
- 2020-05-04 9
- 2019-05-03 8
- 2021-10-13 7
- 2022-03-06 6
- 2023-03-29 6
- 2018-04-14 5
- 2021-03-29 5
- 2021-05-22 5
- 2019-11-11 4
- 2021-11-30 4
- 2022-07-18 4
- 2022-09-05 4
- 2022-09-06 4
- 2023-08-07 4
- 2023-08-29 4
- 2017-11-17 3
- 2019-05-04 3
- 2019-07-03 3
- 2019-10-14 3
- 2019-11-12 3
- 2019-11-13 3
- 2020-05-27 3
- 2020-10-14 3
- 2020-10-29 3
- 2021-01-24 3
- 2021-04-29 3
- 2021-06-02 3
- 2021-08-25 3
- 2021-12-17 3
- 2022-10-27 3
- 2022-12-08 3
- 2022-12-13 3
- 2023-08-23 3
- 2023-09-06 3
- 2017-11-15 2
- 2018-04-03 2
- 2018-04-16 2
- 2018-04-18 2
- 2018-05-22 2
- 2018-09-11 2
- 2019-05-01 2
- 2019-06-24 2
- 2019-07-11 2
- 2019-10-30 2
- 2019-11-04 2
- 2019-12-19 2
- 2020-06-03 2
- 2020-06-06 2
- 2020-06-11 2
- 2020-07-03 2
- 2020-08-15 2
- 2020-10-09 2
- 2020-10-30 2
- 2021-01-25 2
- 2021-03-10 2
- 2021-05-27 2
- 2021-05-28 2
- 2021-06-05 2
- 2021-06-13 2
- 2021-07-10 2
- 2021-07-13 2
- 2021-08-19 2
- 2021-10-14 2
- 2021-10-24 2
- 2021-11-17 2
- 2021-12-13 2
- 2022-02-02 2
- 2022-02-03 2
- 2022-03-15 2
- 2022-04-08 2
- 2022-06-28 2
- 2022-10-07 2
- 2023-01-10 2
- 2023-03-24 2
- 2023-08-28 2
- 2023-09-08 2
- 2023-09-20 2
- 2023-10-12 2
- 2017-11-14 1
- 2017-11-18 1
- 2017-11-19 1
- 2017-11-21 1
- 2017-11-22 1
- 2017-12-09 1
- 2018-01-15 1
- 2018-04-09 1
- 2018-04-12 1
- 2018-04-13 1
- 2018-04-21 1
- 2018-05-02 1
- 2018-05-14 1
- 2018-05-16 1
- 2018-05-21 1
- 2018-05-26 1
- 2018-06-07 1
- 2018-06-16 1
- 2018-06-18 1
- 2018-06-21 1
- 2018-06-24 1
- 2018-06-28 1
- 2018-07-12 1
- 2018-07-14 1
- 2018-07-26 1
- 2018-08-05 1
- 2018-08-08 1
- 2018-08-16 1
- 2018-08-31 1
- 2018-12-29 1
- 2019-02-06 1
- 2019-03-15 1
- 2019-03-17 1
- 2019-03-22 1
- 2019-04-13 1
- 2019-04-22 1
- 2019-04-29 1
- 2019-05-11 1
- 2019-05-20 1
- 2019-06-03 1
- 2019-06-11 1
- 2019-06-25 1
- 2019-07-04 1
- 2019-07-06 1
- 2019-07-07 1
- 2019-07-08 1
- 2019-07-13 1
- 2019-07-26 1
- 2019-09-03 1
- 2019-10-18 1
- 2019-10-20 1
- 2019-11-14 1
- 2019-11-15 1
- 2019-11-18 1
- 2020-01-22 1
- 2020-01-29 1
- 2020-02-04 1
- 2020-02-05 1
- 2020-02-22 1
- 2020-02-25 1
- 2020-02-29 1
- 2020-03-09 1
- 2020-03-24 1
- 2020-03-25 1
- 2020-03-27 1
- 2020-04-02 1
- 2020-04-05 1
- 2020-04-26 1
- 2020-04-27 1
- 2020-04-29 1
- 2020-05-30 1
- 2020-06-01 1
- 2020-06-09 1
- 2020-06-13 1
- 2020-06-24 1
- 2020-06-28 1
- 2020-07-02 1
- 2020-07-21 1
- 2020-07-24 1
- 2020-07-29 1
- 2020-07-31 1
- 2020-08-12 1
- 2020-08-18 1
- 2020-09-02 1
- 2020-09-28 1
- 2020-10-01 1
- 2020-10-08 1
- 2020-10-17 1
- 2020-10-19 1
- 2020-10-21 1
- 2020-10-23 1
- 2020-10-24 1
- 2020-10-26 1
- 2020-10-27 1
- 2020-10-28 1
- 2020-11-12 1
- 2020-11-15 1
- 2020-11-28 1
- 2020-11-30 1
- 2020-12-01 1
- 2020-12-03 1
- 2020-12-06 1
- 2020-12-15 1
- 2021-02-12 1
- 2021-02-18 1
- 2021-03-04 1
- 2021-03-07 1
- 2021-03-11 1
- 2021-03-22 1
- 2021-04-03 1
- 2021-04-19 1
- 2021-04-28 1
- 2021-05-11 1
- 2021-05-17 1
- 2021-06-15 1
- 2021-06-20 1
- 2021-06-21 1
- 2021-06-26 1
- 2021-07-11 1
- 2021-07-16 1
- 2021-07-19 1
- 2021-07-20 1
- 2021-07-28 1
- 2021-08-03 1
- 2021-08-12 1
- 2021-09-04 1
- 2021-09-08 1
- 2021-09-13 1
- 2021-09-14 1
- 2021-09-20 1
- 2021-10-11 1
- 2021-10-15 1
- 2021-10-17 1
- 2021-11-18 1
- 2021-11-19 1
- 2021-12-20 1
- 2022-02-07 1
- 2022-03-07 1
- 2022-03-19 1
- 2022-03-23 1
- 2022-03-24 1
- 2022-04-22 1
- 2022-04-24 1
- 2022-05-02 1
- 2022-05-31 1
- 2022-06-20 1
- 2022-06-22 1
- 2022-08-15 1
- 2022-08-20 1
- 2022-08-23 1
- 2022-08-24 1
- 2022-09-16 1
- 2022-09-28 1
- 2022-09-30 1
- 2022-10-05 1
- 2022-10-10 1
- 2022-10-24 1
- 2022-11-16 1
- 2022-11-18 1
- 2022-11-29 1
- 2022-12-16 1
- 2022-12-17 1
- 2022-12-20 1
- 2022-12-31 1
- 2023-01-05 1
- 2023-01-06 1
- 2023-01-09 1
- 2023-01-19 1
- 2023-01-25 1
- 2023-01-29 1
- 2023-02-01 1
- 2023-02-07 1
- 2023-02-12 1
- 2023-02-16 1
- 2023-03-06 1
- 2023-03-22 1
- 2023-03-28 1
- 2023-04-15 1
- 2023-04-19 1
- 2023-04-25 1
- 2023-05-01 1
- 2023-05-14 1
- 2023-05-15 1
- 2023-05-18 1
- 2023-05-26 1
- 2023-05-31 1
- 2023-06-29 1
- 2023-07-08 1
- 2023-07-21 1
- 2023-07-25 1
- 2023-07-26 1
- 2023-07-27 1
- 2023-07-28 1
- 2023-07-31 1
- 2023-08-02 1
- 2023-08-08 1
- 2023-08-10 1
- 2023-08-17 1
- 2023-08-18 1
- 2023-08-21 1
- 2023-08-24 1
- 2023-08-25 1
- 2023-08-30 1
- 2023-09-13 1
- 2023-09-14 1
- 2023-09-27 1
- 2023-10-03 1
- 2023-10-14 1
- 2023-10-24 1
- 2023-11-08 1
- 2023-11-15 1
- 2023-12-08 1
user 114 ✖
- simonw 144
- dependabot[bot] 87
- dependabot-preview[bot] 21
- russss 19
- asg017 8
- fgregg 7
- abdusco 7
- rgieseke 5
- rixx 5
- eyeseast 3
- cldellow 3
- jaywgraves 3
- blairdrummond 3
- tmcl-it 3
- davidbgk 2
- bollwyvl 2
- jaap3 2
- amjith 2
- jefftriplett 2
- ctb 2
- aslakr 2
- psychemedia 2
- bgrins 2
- wragge 2
- frankier 2
- glasnt 2
- brandonrobertz 2
- raynae 2
- cclauss 2
- chris48s 2
- bobwhitelock 2
- jsancho-gpl 2
- danp 1
- benpickles 1
- runderwood 1
- palewire 1
- janl 1
- tomdyson 1
- garthk 1
- nsmgr8 1
- jacobian 1
- tmcw 1
- fs111 1
- lsb 1
- ingenieroariel 1
- ryanpitts 1
- cadeef 1
- kfdm 1
- IgnoredAmbience 1
- ghing 1
- dmr 1
- terrycojones 1
- ytjohn 1
- naveensrinivasan 1
- mroswell 1
- gerrymanoim 1
- humitos 1
- philroche 1
- macropin 1
- camallen 1
- UtahDave 1
- sethvargo 1
- gfrmin 1
- kevboh 1
- iMerica 1
- lovasoa 1
- r4vi 1
- dtrodrigues 1
- jsfenfen 1
- mhalle 1
- joshmgrant 1
- adipasquale 1
- heussd 1
- koaning 1
- asimpson 1
- rclement 1
- nathancahill 1
- meowcat 1
- choldgraf 1
- bsmithgall 1
- 4e1e0603 1
- jameslittle230 1
- durkie 1
- jamietanna 1
- cb160 1
- qwo 1
- abbbi 1
- stonebig 1
- wenhoujx 1
- ocdtrekkie 1
- kbaikov 1
- bram2000 1
- louispotok 1
- JBPressac 1
- eumiro 1
- hellerve 1
- hydrosquall 1
- rprimet 1
- redraw 1
- kevindkeogh 1
- minho42 1
- jthodge 1
- withshubh 1
- joelondon 1
- abeyerpath 1
- MrNaif2018 1
- RhetTbull 1
- publicmatt 1
- Alyetama 1
- MichaelTiemannOSC 1
- jgryko5 1
- 7lingyuan 1
- MobiWancode 1
- StudioCordillera 1
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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
211860706 | MDExOlB1bGxSZXF1ZXN0MjExODYwNzA2 | 363 | open | 0 | Search all apps during heroku publish | kevboh 436032 | Adds the `-A` option to include apps from all organizations when searching app names for publish. | 2018-08-29T19:25:10Z | 2018-08-31T14:39:45Z | b684b04c30f6b8779a3d11f7599329092fb152f3 | 0 | 2dd363e01fa73b24ba72f539c0a854bc901d23a7 | b7257a21bf3dfa7353980f343c83a616da44daa7 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/363 | ||||||
214653641 | MDExOlB1bGxSZXF1ZXN0MjE0NjUzNjQx | 364 | open | 0 | Support for other types of databases using external connectors | jsancho-gpl 11912854 | This PR is related to #293, but now all commits have been merged. The purpose is to support other file formats that aren't SQLite, like files with PyTables format. I've tried to accomplish that using external connectors published with entry points. The modifications in the original datasette code are minimal and many are in a separated file. | 2018-09-11T14:31:47Z | 2018-09-11T14:31:47Z | d84f3b1f585cb52b58aed0401c34214de2e8b47b | 0 | 592fd05f685859b271f0305c2fc8cdb7da58ebfb | b7257a21bf3dfa7353980f343c83a616da44daa7 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/364 | ||||||
275923066 | MDExOlB1bGxSZXF1ZXN0Mjc1OTIzMDY2 | 452 | open | 0 | SQL builder utility classes | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/452 | ||||||
295127213 | MDExOlB1bGxSZXF1ZXN0Mjk1MTI3MjEz | 546 | open | 0 | Facet by delimiter | simonw 9599 | Refs #510 | 2019-07-07T20:06:05Z | 2019-11-18T23:46:01Z | 68a6fb1a576a747b868771d00a10753f35aaa0cf | 0 | 47ac6c6e46da16716d295d7cda8f79cd0663ca5e | a9909c29ccac771c23c2ef22b89d10697b5256b9 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/546 | ||||||
301483613 | MDExOlB1bGxSZXF1ZXN0MzAxNDgzNjEz | 564 | open | 0 | First proof-of-concept of Datasette Library | simonw 9599 | Refs #417. Run it like this: datasette -d ~/Library Uses a new plugin hook - available_databases() | 2019-07-26T10:22:26Z | 2023-02-07T15:14:11Z | 4f425d2b39d1be10d7ef5c146480a3eb494d5086 | 1 | 947645d84710677ea50762016081a9fbc6b014a8 | a9453c4dda70bbf5122835e68f63db6ecbe1a6fc | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/564 | ||||||
323983732 | MDExOlB1bGxSZXF1ZXN0MzIzOTgzNzMy | 579 | open | 0 | New connection pooling | simonw 9599 | See #569 | 2019-10-02T23:22:19Z | 2019-11-15T22:57:21Z | 025b4024b1b43ea034b7fd331c30740165ff75f2 | 0 | 32cbfd2acd28bcefb97c442ac8e3ee2c07401e19 | a9909c29ccac771c23c2ef22b89d10697b5256b9 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/579 | ||||||
375180832 | MDExOlB1bGxSZXF1ZXN0Mzc1MTgwODMy | 672 | open | 0 | --dirs option for scanning directories for SQLite databases | simonw 9599 | Refs #417. | 2020-02-14T02:25:52Z | 2020-03-27T01:03:53Z | 0e0e544f1f23451f04d7ca576ace5b18ce168e6f | 0 | ee718b98b793df2a15b125cbf20816c9864bf7e9 | 6aa516d82dea9885cb4db8d56ec2ccfd4cd9b840 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/672 | ||||||
440735814 | MDExOlB1bGxSZXF1ZXN0NDQwNzM1ODE0 | 868 | open | 0 | initial windows ci setup | joshmgrant 702729 | Picking up the work done on #557 with a new PR. Seeing if I can get this working. | 2020-06-26T18:49:13Z | 2021-07-10T23:41:43Z | b99adb1720a0b53ff174db54d0e4a67357b47f33 | 0 | c99cabae638958ef057438a92cb9a182ba4f8188 | 180c7a5328457aefdf847ada366e296fef4744f1 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/868 | ||||||
442505088 | MDExOlB1bGxSZXF1ZXN0NDQyNTA1MDg4 | 883 | open | 0 | Skip counting hidden tables | abdusco 3243482 | Potential fix for https://github.com/simonw/datasette/issues/859. Disabling table counts for hidden tables speeds up database page quite a bit. In my setup it reduced load time by 2/3 (~300 -> ~90ms) | 2020-07-01T07:38:08Z | 2020-07-02T00:25:44Z | 527624338acd38b97bb33b0a0b913d80e8345fee | 0 | 251884f58895faf8056b3dfdeae3bb92c5bc58ac | 676bb64c877d73f8ff496cef4632f5a8a5a9283c | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/883 | ||||||
500798091 | MDExOlB1bGxSZXF1ZXN0NTAwNzk4MDkx | 1008 | open | 0 | Add json_loads and json_dumps jinja2 filters | mhalle 649467 | 2020-10-09T20:11:34Z | 2020-12-15T02:30:28Z | e33e91ca7c9b2fdeab9d8179ce0d603918b066aa | 0 | 40858989d47043743d6b1c9108528bec6a317e43 | 1bdbc8aa7f4fd7a768d456146e44da86cb1b36d1 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1008 | |||||||
505453900 | MDExOlB1bGxSZXF1ZXN0NTA1NDUzOTAw | 1030 | open | 0 | Make `package` command deal with a configuration directory argument | frankier 299380 | Currently if we run `datasette package` on a configuration directory we'll get an exception when we try to hard link to the directory. This PR copies the tree and makes the Dockerfile run inspect on all *.db files. | 2020-10-18T11:07:02Z | 2020-10-19T08:01:51Z | 124142e4d2710525b09ff2bd2a7a787cbed163a4 | 0 | e0825334692967fec195e104cb6aa11095807a8e | c37a0a93ecb847e66cfe7b6f9452ba210fcae91b | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1030 | ||||||
532348919 | MDExOlB1bGxSZXF1ZXN0NTMyMzQ4OTE5 | 1130 | open | 0 | Fix footer not sticking to bottom in short pages | abdusco 3243482 | Fixes https://github.com/simonw/datasette/issues/1129 | 2020-12-04T07:29:01Z | 2021-06-15T13:27:48Z | af3aa34786f134af8073342a3c4bb74b968750fd | 0 | 8d4c69c6fb0ef741a19070f5172017ea3522e83c | 49d8fc056844d5a537d6cfd96dab0dd5686fe718 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1130 | ||||||
545264436 | MDExOlB1bGxSZXF1ZXN0NTQ1MjY0NDM2 | 1159 | open | 0 | Improve the display of facets information | lovasoa 552629 | This PR changes the display of facets to hopefully make them more readable. Before | After ---|--- ![image](https://user-images.githubusercontent.com/552629/103084609-b1ec2980-45df-11eb-85bc-68ab8df3e8d9.png) | ![image](https://user-images.githubusercontent.com/552629/103085220-620e6200-45e1-11eb-8189-5dd5d3e2569e.png) | 2020-12-24T11:01:47Z | 2023-07-31T18:57:59Z | 0276c5609da34bfb660f65212e1a367e637979d7 | Datasette 1.0 3268330 | 0 | c820abd0bcb34d1ea5a03be64a2158ae7c42920c | a882d679626438ba0d809944f06f239bcba8ee96 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1159 | |||||
560760145 | MDExOlB1bGxSZXF1ZXN0NTYwNzYwMTQ1 | 1204 | open | 0 | WIP: Plugin includes | simonw 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/1204 | ||||||
598213565 | MDExOlB1bGxSZXF1ZXN0NTk4MjEzNTY1 | 1271 | open | 0 | Use SQLite conn.interrupt() instead of sqlite_timelimit() | simonw 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/1271 | ||||||
613178968 | MDExOlB1bGxSZXF1ZXN0NjEzMTc4OTY4 | 1296 | open | 0 | Dockerfile: use Ubuntu 20.10 as base | tmcl-it 82332573 | This PR changes the main Dockerfile to use ubuntu:20.10 as base image instead of python:3.9.2-slim-buster (itself based on debian:buster-slim). The Dockerfile is essentially the one from https://github.com/simonw/datasette/issues/1249#issuecomment-803698983 with some additional cleanups to slim it down. This fixes a couple of issues: 1. The SQLite version in Debian Buster (2.6.0) doesn't support generated columns 2. Installing SpatiaLite from the Debian sid repositories has the side effect of also installing updates to libc and libstdc++ from sid. As a bonus, the Docker image becomes smaller: ``` $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE datasette 0.56-ubuntu f7aca255140a 5 hours ago 212MB datasetteproject/datasette 0.56 efb3b282f390 13 days ago 258MB ``` ### Reproduction of the first issue ``` $ curl -O https://latest.datasette.io/fixtures.db % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 260k 0 260k 0 0 489k 0 --:--:-- --:--:-- --:--:-- 489k $ docker run -v `pwd`:/mnt datasetteproject/datasette:0.56 datasette /mnt/fixtures.db Traceback (most recent call last): File "/usr/local/bin/datasette", line 8, in <module> sys.exit(cli()) File "/usr/local/lib/python3.9/site-packages/click/core.py", line 829, in __call__ return self.main(*args, **kwargs) File "/usr/local/lib/python3.9/site-packages/click/core.py", line 782, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1066, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python3.9/site-packages/click/core.py", line 610, in invoke return callback(*args, … | 2021-04-12T00:23:32Z | 2021-07-20T08:52:13Z | 2ba522dbd7168a104a33621598c5a2460aae3e74 | 0 | 8f00c312f6b8ab5cecbb8a698ab4ad659aabf4ef | c73af5dd72305f6a01ea94a2c76d52e5e26de38b | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1296 | ||||||
655741428 | MDExOlB1bGxSZXF1ZXN0NjU1NzQxNDI4 | 1348 | open | 0 | DRAFT: add test and scan for docker images | blairdrummond 10801138 | **NOTE: I don't think this PR is ready, since the arm/v6 and arm/v7 images are failing pytest due to missing dependencies (gcc and friends). But it's pretty close.** Closes https://github.com/simonw/datasette/issues/1344 . Using a build-matrix for the platforms and [this test](https://github.com/simonw/datasette/issues/1344#issuecomment-849820019), we test all the platforms in parallel. I also threw in container scanning. ### Switch `pip install` to use either tags or commit shas Notably! This also [changes the Dockerfile](https://github.com/blairdrummond/datasette/blob/7fe5315d68e04fce64b5bebf4e2d7feec44f8546/Dockerfile#L20) so that it accepts tags or commit-shas. ``` # It's backwards compatible with tags, but also lets you use shas root@712071df17af:/# pip install git+git://github.com/simonw/datasette.git@0.56 Collecting git+git://github.com/simonw/datasette.git@0.56 Cloning git://github.com/simonw/datasette.git (to revision 0.56) to /tmp/pip-req-build-u6dhm945 Running command git clone -q git://github.com/simonw/datasette.git /tmp/pip-req-build-u6dhm945 Running command git checkout -q af5a7f1c09f6a902bb2a25e8edf39c7034d2e5de Collecting Jinja2<2.12.0,>=2.10.3 Downloading Jinja2-2.11.3-py2.py3-none-any.whl (125 kB) ``` This le… | 2021-05-28T03:02:12Z | 2021-05-28T03:06:16Z | eeea7cb835be0f0319cafccf50dffa6ad26826c5 | 0 | 56cba8fb837cd938c2f9d7423ee43d62a81c8f7c | 7b106e106000713bbee31b34d694b3dadbd4818c | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1348 | ||||||
692557381 | MDExOlB1bGxSZXF1ZXN0NjkyNTU3Mzgx | 1399 | open | 0 | Multiple sort | jgryko5 87192257 | Closes #197. I have added support for sorting by multiple parameters as mentioned in the issue above, and together with that, a suggestion on how to implement such sorting in the user interface. | 2021-07-19T12:20:14Z | 2021-07-19T12:20:14Z | 3161cd1202824921054cf78d82c1d8c07b140451 | 0 | 739697660382e4d2974619b4a5605baef87d233a | c73af5dd72305f6a01ea94a2c76d52e5e26de38b | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1399 | ||||||
712412883 | MDExOlB1bGxSZXF1ZXN0NzEyNDEyODgz | 1434 | open | 0 | Enrich arbitrary query results with foreign key links and column descriptions | simonw 9599 | Refs #1293, follows #942. | 2021-08-13T14:43:01Z | 2021-08-19T21:18:58Z | d4d4f5566b1d43075cb52ded5d19a9dcf4350761 | 0 | 281c0872d5b8a462c9d7b2b2d77a924da4ed25a7 | 2883098770fc66e50183b2b231edbde20848d4d6 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/1434 | ||||||
729704537 | MDExOlB1bGxSZXF1ZXN0NzI5NzA0NTM3 | 1465 | open | 0 | add support for -o --get /path | ctb 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 <url>` is provided alone, datasette will output the result of doing a GET to that URL and then exit. If `--open --get <url>` are provided together, datasette will open a web page to that URL. TODO items: - [ ] update documentation - [ ] print out error message when `--root --open --get <url>` is used - [ ] adjust code to require that `<url>` start with a `/` when `-o --get <url>` 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/1465 | ||||||
737690951 | PR_kwDOBm6k_c4r-EVH | 1475 | open | 0 | feat: allow joins using _through in both directions | bram2000 5268174 | Currently the `_through` clause can only work if the FK relationship is defined in a specific direction. I don't think there is any reason for this limitation, as an FK allows joining in both directions. This is an admittedly hacky change to implement bidirectional joins using `_through`. It does work for our use-case, but I don't know if there are other implications that I haven't thought of. Also if this change is desirable we probably want to make the code a little nicer. | 2021-09-20T15:28:20Z | 2021-09-20T15:28:20Z | aa2f1c103730c0ede4ab67978288d91bbe1e00a6 | 0 | edf3c4c3271c8f13ab4c28ad88b817e115477e41 | b28b6cd2fe97f7e193a235877abeec2c8eb0a821 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1475 | ||||||
764281468 | PR_kwDOBm6k_c4tjgJ8 | 1495 | open | 0 | Allow routes to have extra options | fgregg 536941 | Right now, datasette routes can only be a 2-tuple of `(regex, view_fn)`. If it was possible for datasette to handle extra options, like [standard Django does](https://docs.djangoproject.com/en/3.2/topics/http/urls/#passing-extra-options-to-view-functions), it would add flexibility for plugin authors. For example, if extra options were enabled, then it would be easy to make a single table the home page (#1284). This plugin would accomplish it. ```python from datasette import hookimpl from datasette.views.table import TableView @hookimpl def register_routes(datasette): return [ (r"^/$", TableView.as_view(datasette), {'db_name': 'DB_NAME', 'table': 'TABLE_NAME'}) ] ``` | 2021-10-22T15:00:45Z | 2021-11-19T15:36:27Z | 44969c5654748fb26ad05ab37245678f245f32e5 | 0 | fe7fa14b39846b919dfed44514a7d18d67e01dfd | ff9ccfb0310501a3b4b4ca24d73246a8eb3e7914 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1495 | ||||||
838755826 | PR_kwDOBm6k_c4x_mXy | 1626 | open | 0 | Try test suite against macOS and Windows | simonw 9599 | Refs #1625 | 2022-02-02T22:26:51Z | 2022-02-03T01:22:44Z | 83958f26a8458a108acb7c3c0a1c8aacb777586a | 0 | 4b4d0e1ff9e2ee998cbd71abd5f5806f25444ed9 | b5e6b1a9e1332fca3effe45d55dd06ee4249f163 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/1626 | ||||||
964640654 | PR_kwDOBm6k_c45fz-O | 1757 | open | 0 | feat: add a wildcard for _json columns | ytjohn 163156 | This allows _json to accept a wildcard for when there are many JSON columns that the user wants to convert. I hope this is useful. I've tested it on our datasette and haven't ran into any issues. I imagine on a large set of results, there could be some performance issues, but it will probably be negligible for most use cases. On a side note, I ran into an issue where I had to upgrade black on my system beyond the pinned version in setup.py. Here is the upstream issue <<https://github.com/psf/black/issues/2964> . I didn't include this in the PR yet since I didn't look into the issue too far, but I can if you would like. | 2022-06-11T01:01:17Z | 2022-09-06T00:51:21Z | f302b919cb78f1e353fc14cb449cab4a93dcedc6 | 0 | 1cdcd8894ce2bb76cf29f8ffcdadedbb6fa0dac1 | 2e9751672d4fe329b3c359d5b7b1992283185820 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1757 | ||||||
998860509 | PR_kwDOBm6k_c47iWbd | 1772 | open | 0 | Convert to setup.cfg | kfdm 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/1772 | ||||||
1067890893 | PR_kwDOBm6k_c4_prjN | 1823 | open | 0 | Keyword-only arguments for a bunch of internal methods | simonw 9599 | Refs #1822 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1823.org.readthedocs.build/en/1823/ <!-- readthedocs-preview datasette end --> | 2022-09-27T00:44:59Z | 2022-10-05T04:37:54Z | 28068a62ad6a8b76a1c9223c4ca78099cfd2ece5 | 0 | b545b6a04ed7b407331f991adce107691ac3ab97 | 5f9f567acbc58c9fcd88af440e68034510fb5d2b | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/1823 | ||||||
1102353255 | PR_kwDOBm6k_c5BtJNn | 1870 | open | 0 | don't use immutable=1, only mode=ro | fgregg 536941 | Opening db files in immutable mode sometimes leads to the file being mutated, which causes duplication in the docker image layers: see #1836, #1480 That this happens in "immutable" mode is surprising, because the sqlite docs say that setting this should open the database as read only. https://www.sqlite.org/c3ref/open.html > immutable: The immutable parameter is a boolean query parameter that indicates that the database file is stored on read-only media. When immutable is set, SQLite assumes that the database file cannot be changed, even by a process with higher privilege, and so the database is opened read-only and all locking and change detection is disabled. Caution: Setting the immutable property on a database file that does in fact change can result in incorrect query results and/or [SQLITE_CORRUPT](https://www.sqlite.org/rescode.html#corrupt) errors. See also: [SQLITE_IOCAP_IMMUTABLE](https://www.sqlite.org/c3ref/c_iocap_atomic.html). Perhaps this is a bug in sqlite? <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1870.org.readthedocs.build/en/1870/ <!-- readthedocs-preview datasette end --> | 2022-10-27T23:33:04Z | 2023-10-03T19:12:37Z | fc2d316f9e22593d48036e9d81fe972bb5973016 | 0 | 4faa4fd3b3e7f5eae758b713d0a121b960e2e261 | bf00b0b59b6692bdec597ac9db4e0b497c5a47b4 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1870 | ||||||
1201985064 | PR_kwDOBm6k_c5HpNYo | 1996 | open | 0 | Document custom json encoder | eyeseast 25778 | Closes #1983 All documentation here. Edits welcome. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--1996.org.readthedocs.build/en/1996/ <!-- readthedocs-preview datasette end --> | 2023-01-18T16:54:14Z | 2023-01-19T12:55:57Z | b608768f75e8e15ee4618ebac8bcba2da47b2aa3 | 0 | 96b8b7f1ecf3abaec5921aaedee251e36eed5339 | 6a352e99ab988dbf8fd22a100049caa6ad33f1ec | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/1996 | ||||||
1215742203 | PR_kwDOBm6k_c5IdsD7 | 2003 | open | 0 | Show referring tables and rows when the referring foreign key is compound | fgregg 536941 | sqlite foreign keys can be compound, but that is not as well supported by datasette as single column foreign keys. in particular, 1. in a table view, there is not a link from the row to the referenced row if the foreign key is compound 2. in a row view, there is no listing of tables and rows that refer to the focal row if those referencing foreign keys are compound. Both of these issues are discussed in #1099. This PR only fixes the second one, because it's not clear what the right UX is for the first issue. ![Screenshot 2023-01-24 at 19-47-40 nlrb bargaining_unit](https://user-images.githubusercontent.com/536941/214454749-d53deead-4151-4329-a5d4-8a7a454de7d3.png) Some things that might not be desirable about this approach. 1. it changes the external API, by changing `column` => `columns` and `other_column` => `other_columns` (see inline comment for more discussion. 2. There are various places where the plural foreign keys have to be checked for length and discarded or transformed to singular. | 2023-01-24T21:31:31Z | 2023-01-25T18:44:42Z | fb3abeceb2785a582d2c120c7c1bf7dc3cd1de05 | 0 | 1e5b42f9d6490926300953837cbaa571ef81d772 | e4ebef082de90db4e1b8527abc0d582b7ae0bc9d | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2003 | ||||||
1216059840 | PR_kwDOBm6k_c5Ie5nA | 2004 | open | 0 | use single quotes for string literals, fixes #2001 | cldellow 193185 | This modernizes some uses of double quotes for string literals to use only single quotes, fixes simonw/datasette#2001 While developing it, I manually enabled the stricter mode by using the code snippet at https://gist.github.com/cldellow/85bba507c314b127f85563869cd94820 I think that code snippet isn't generally safe/portable, so I haven't tried to automate it in the tests. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2004.org.readthedocs.build/en/2004/ <!-- readthedocs-preview datasette end --> | 2023-01-25T05:08:45Z | 2023-02-01T06:37:18Z | f678bfc05913a4b5ecf0c4cebe9ca8329c7d4a21 | 0 | dca7634c274e71fae0d95ea4ff1dfd987b9af63c | e4ebef082de90db4e1b8527abc0d582b7ae0bc9d | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2004 | ||||||
1220379312 | PR_kwDOBm6k_c5IvYKw | 2008 | open | 0 | array facet: don't materialize unnecessary columns | cldellow 193185 | The presence of `inner.*` causes SQLite to materialize a row with all the columns. Those columns will be discarded later. Instead, we can select only the column we'll use. This lets SQLite's optimizer realize that the other columns in the CTE definition aren't needed. On a test table with 278K rows, 98K of which had an array, this speeds up the facet calculation from 4 sec to 1 sec. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2008.org.readthedocs.build/en/2008/ <!-- readthedocs-preview datasette end --> | 2023-01-28T19:33:40Z | 2023-01-29T18:17:40Z | 0eda5a57ead9bda8be4c9e5cd2fdb9f22e69222e | 0 | f529a3001d35a114d2e622dcc7913c4c25a95ed8 | 0b4a28691468b5c758df74fa1d72a823813c96bf | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2008 | ||||||
1238017010 | PR_kwDOBm6k_c5JyqPy | 2025 | open | 0 | Add database metadata to index.html template context | palewire 9993 | Fixes #2016 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2025.org.readthedocs.build/en/2025/ <!-- readthedocs-preview datasette end --> | 2023-02-12T11:16:58Z | 2023-02-12T11:17:14Z | a2d3bb02cf2c9b8ed7c788910fdda606108cd584 | 0 | 912ed9de92d1bb9a28f50a2e08c5e7df2b827c15 | 0b4a28691468b5c758df74fa1d72a823813c96bf | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2025 | ||||||
1243080434 | PR_kwDOBm6k_c5KF-by | 2026 | open | 0 | Avoid repeating primary key columns if included in _col args | runderwood 8513 | ...while maintaining given order. Fixes #1975 (if I'm understanding correctly). <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2026.org.readthedocs.build/en/2026/ <!-- readthedocs-preview datasette end --> | 2023-02-16T04:16:25Z | 2023-02-16T04:16:41Z | ad2bfc72186e7af2244a6f27e02754f4c2f64910 | 0 | f15adf1d6211e05250e5492826dd3f8e8e328077 | 0b4a28691468b5c758df74fa1d72a823813c96bf | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2026 | ||||||
1259276997 | PR_kwDOBm6k_c5LDwrF | 2031 | open | 0 | Expand foreign key references in row view as well | tmcl-it 82332573 | Unlike the table view, the single row view does not resolve foreign key references into labels. This patch extracts the foreign key reference expansion code from TableView.data() into a standalone function that is then called by both TableView.data() and RowView.data(). <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2031.org.readthedocs.build/en/2031/ <!-- readthedocs-preview datasette end --> | 2023-03-01T18:43:09Z | 2023-03-24T18:35:25Z | ee7aec6175d0934c0420002529d21a767d2a527d | 0 | ef25867492ce6eb69492aa37fcde98936a95365c | 3feed1f66e2b746f349ee56970a62246a18bb164 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2031 | ||||||
1266742462 | PR_kwDOBm6k_c5LgPS- | 2034 | open | 0 | remove an unused `app` var in cli.py | wenhoujx 4370201 | this var `app` isn't actually used? unless init it does some side-effect outside of the event loop, idon't think it's necessary. Feel free to ignore this PR if the deleted line actually does something. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2034.org.readthedocs.build/en/2034/ <!-- readthedocs-preview datasette end --> | 2023-03-07T18:19:05Z | 2023-03-29T20:56:20Z | 9bd2128399e6dff33f97b3aa7adbd8f3a36daad7 | 0 | 28239c5bed362f2b9ee9e780bf23e5f31b680b5d | 1ad92a1d87d79084ebe524ed186c900ff042328c | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2034 | ||||||
1289476973 | PR_kwDOBm6k_c5M29tt | 2044 | open | 0 | Expand labels in row view as well (patch for 0.64.x branch) | tmcl-it 82332573 | This is a version of #2031 for the 0.64.x branch. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2044.org.readthedocs.build/en/2044/ <!-- readthedocs-preview datasette end --> | 2023-03-24T18:44:44Z | 2023-03-24T18:44:57Z | 175202f5238c23fc6b76a0119d3ce9917d1570d1 | 0 | c039d23a730448a7d82f9239cfb445aa1f7a4f16 | 2a0a94fe972e4b1556e73026dc381d297bc906bc | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2044 | ||||||
1308472112 | PR_kwDOBm6k_c5N_bMw | 2056 | open | 0 | GitHub Action to lint Python code with ruff | cclauss 3709715 | [Ruff](https://beta.ruff.rs/) supports [over 500 lint rules](https://beta.ruff.rs/docs/rules) and can be used to replace [Flake8](https://pypi.org/project/flake8/) (plus dozens of plugins), [isort](https://pypi.org/project/isort/), [pydocstyle](https://pypi.org/project/pydocstyle/), [yesqa](https://github.com/asottile/yesqa), [eradicate](https://pypi.org/project/eradicate/), [pyupgrade](https://pypi.org/project/pyupgrade/), and [autoflake](https://pypi.org/project/autoflake/), all while executing (in Rust) tens or hundreds of times faster than any individual tool. The ruff Action uses minimal steps to run in ~5 seconds, rapidly providing intuitive GitHub Annotations to contributors. ![image](https://user-images.githubusercontent.com/3709715/223758136-afc386d2-70aa-4eff-953a-2c2d82ceea23.png) <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2056.org.readthedocs.build/en/2056/ <!-- readthedocs-preview datasette end --> | 2023-04-11T06:41:27Z | 2023-04-15T14:24:46Z | 608507fe15679221ff74d437339ee66e3d21a7ae | 0 | f53b78029321cd9bd5661accb5bd043d62e35a85 | 5890a20c374fb0812d88c9b0ef26a838bfa06c76 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2056 | ||||||
1319390463 | PR_kwDOBm6k_c5OpEz_ | 2061 | open | 0 | Add "Packaging a plugin using Poetry" section in docs | rclement 1238873 | This PR adds a new section about packaging a plugin using `poetry` within the "Writing plugins" page of the documentation. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2061.org.readthedocs.build/en/2061/ <!-- readthedocs-preview datasette end --> | 2023-04-19T07:23:28Z | 2023-04-19T07:27:18Z | e777f394dc770714055e48c952e04c1620454e3e | 0 | 2650e3ca2c5ae4f21efe216f9959be31d9e58eed | 5890a20c374fb0812d88c9b0ef26a838bfa06c76 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2061 | ||||||
1349830554 | PR_kwDOBm6k_c5QdMea | 2074 | open | 0 | sort files by mtime | abbbi 3919561 | serving multiple database files and getting tired by the default sort, changes so the sort order puts the latest changed databases to be on top of the list so don't have to scroll down, lazy as i am ;) <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2074.org.readthedocs.build/en/2074/ <!-- readthedocs-preview datasette end --> | 2023-05-14T15:25:15Z | 2023-05-14T15:25:29Z | 4fe4822c999a3003a9e3093814274190ea05e522 | 0 | 689e3b0155612c766607feea10bc2e67e1c2a6da | 49184c569cd70efbda4f3f062afef3a34401d8d5 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2074 | ||||||
1355563020 | PR_kwDOBm6k_c5QzEAM | 2076 | open | 0 | Datsette gpt plugin | StudioCordillera 130708713 | <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2076.org.readthedocs.build/en/2076/ <!-- readthedocs-preview datasette end --> | 2023-05-18T11:22:30Z | 2023-05-18T11:22:45Z | 71658bfe72b75bdceb2b29e13fd610511c8b908c | 0 | 093693edd2a177a38cbc5570aaef769e5cbffac1 | 49184c569cd70efbda4f3f062afef3a34401d8d5 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2076 | ||||||
1372714762 | PR_kwDOBm6k_c5R0fcK | 2082 | open | 0 | Catch query interrupted on facet suggest row count | redraw 10843208 | Just like facet's `suggest()` is trapping `QueryInterrupted` for facet columns, we also need to trap `get_row_count()`, which can reach timeout if database tables are big enough. I've included `get_columns()` inside the block as that's just another query, despite it's a really cheap one and might never raise the exception. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2082.org.readthedocs.build/en/2082/ <!-- readthedocs-preview datasette end --> | 2023-05-31T18:42:46Z | 2023-05-31T18:45:26Z | eadc26004d50f38f28b032056821ba319c9f2e87 | 0 | dfe99af36c11b88ffcb5ca602d72cee1b8acd8bc | dda99fc09fb0b5523948f6d481c6c051c1c7b5de | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2082 | ||||||
1425647904 | PR_kwDOBm6k_c5U-akg | 2096 | open | 0 | Clarify docs for descriptions in metadata | garthk 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. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2096.org.readthedocs.build/en/2096/ <!-- readthedocs-preview datasette end --> | 2023-07-08T01:57:58Z | 2023-07-08T01:58:13Z | 88388864859b24707f4be9574e357910c368b0fe | 0 | 3b787aae74b683414f3546bc9979e9f2c0ae13e9 | 8cd60fd1d899952f1153460469b3175465f33f80 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2096 | ||||||
1432754160 | PR_kwDOBm6k_c5VZhfw | 2100 | open | 0 | Make primary key view accessible to render_cell hook | meowcat 1563881 | <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2100.org.readthedocs.build/en/2100/ <!-- readthedocs-preview datasette end --> | 2023-07-13T09:30:36Z | 2023-08-10T13:15:41Z | 37e72ded81cba41c7597a4287e73c47570dca2c7 | 0 | 5639f9d943e55d6990b40db726aa59790724899a | 33251d04e78d575cca62bb59069bb43a7d924746 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2100 | ||||||
1487124196 | PR_kwDOBm6k_c5Yo7bk | 2151 | open | 0 | Test Datasette on multiple SQLite versions | asg017 15178711 | still testing, hope it works! <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2151.org.readthedocs.build/en/2151/ <!-- readthedocs-preview datasette end --> | 2023-08-23T22:42:51Z | 2023-08-23T22:58:13Z | 3d2c7cbf727c0ca31161a7acb8ea51f1ee7dcd58 | 1 | b895cd2fb308154de67972c485e54497c006f47e | bdf59eb7db42559e538a637bacfe86d39e5d17ca | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2151 | ||||||
1488414606 | PR_kwDOBm6k_c5Yt2eO | 2155 | open | 0 | Fix hupper.start_reloader entry point | cadeef 79087 | Update hupper's entry point so that click commands are processed properly. Fixes #2123 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2155.org.readthedocs.build/en/2155/ <!-- readthedocs-preview datasette end --> | 2023-08-24T17:14:08Z | 2023-09-27T18:44:02Z | 8b993f48927cfb89f31251a94dc7b48b6b2d3021 | 0 | ba2c235a8ea7240549af38988b4cbff8d7ec55bd | bdf59eb7db42559e538a637bacfe86d39e5d17ca | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2155 | ||||||
1488782498 | PR_kwDOBm6k_c5YvQSi | 2158 | open | 0 | add brand option to metadata.json. | publicmatt 52261150 | This adds a brand link to the top navbar if 'brand' key is populated in metadata.json. The link will be either '#' or use the contents of 'brand_url' in metadata.json for href. I was able to get this done on my own site by replacing `templates/_crumbs.html` with a custom version, but I thought it would be nice to incorporate this in the tool directly. ![image](https://github.com/simonw/datasette/assets/52261150/fdfe9bb5-fee4-466c-8074-6132071d94e6) <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2158.org.readthedocs.build/en/2158/ <!-- readthedocs-preview datasette end --> | 2023-08-24T22:37:41Z | 2023-08-24T22:37:57Z | 20fad9361ea7173a3543fa16e4b6913a3a0f4b9e | 0 | 0d89c4bd19732487232ab2637cf5e8632f48986b | 527cec66b0403e689c8fb71fc8b381a1d7a46516 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2158 | ||||||
1489526658 | PR_kwDOBm6k_c5YyF-C | 2159 | open | 0 | Implement Dark Mode colour scheme | jamietanna 3315059 | Closes #2095. <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2159.org.readthedocs.build/en/2159/ <!-- readthedocs-preview datasette end --> | 2023-08-25T10:46:23Z | 2023-08-25T10:46:35Z | 97687cea4bd9c94ae76a780311e044b3c77ef902 | 1 | 4b969945d106e48b50545fc029ec020593ee1db0 | 527cec66b0403e689c8fb71fc8b381a1d7a46516 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2159 | ||||||
1504915653 | PR_kwDOBm6k_c5ZszDF | 2174 | open | 0 | Use $DATASETTE_INTERNAL in absence of --internal | asg017 15178711 | #refs 2157, specifically [this comment](https://github.com/simonw/datasette/issues/2157#issuecomment-1700291967) Passing in `--internal my_internal.db` over and over again can get repetitive. This PR adds a new configurable env variable `DATASETTE_INTERNAL_DB_PATH`. If it's defined, then it takes place as the path to the internal database. Users can still overwrite this behavior by passing in their own `--internal internal.db` flag. In draft mode for now, needs tests and documentation. Side note: Maybe we can have a sections in the docs that lists all the "configuration environment variables" that Datasette respects? I did a quick grep and found: - `DATASETTE_LOAD_PLUGINS` - `DATASETTE_SECRETS` <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2174.org.readthedocs.build/en/2174/ <!-- readthedocs-preview datasette end --> | 2023-09-06T16:07:15Z | 2023-09-08T00:46:13Z | 0fc2896ffc5b49adba967a3d0ab8ac9ca119ba0e | 0 | d75b51950f6836d6e5a58accb48b1d7687dbdd1c | 05707aa16b5c6c39fbe48b3176b85a8ffe493938 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2174 | ||||||
1592615419 | PR_kwDOBm6k_c5e7WH7 | 2206 | open | 0 | Bump the python-packages group with 1 update | dependabot[bot] 49699333 | Bumps the python-packages group with 1 update: [black](https://github.com/psf/black). <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/black/releases">black's releases</a>.</em></p> <blockquote> <h2>23.11.0</h2> <h3>Highlights</h3> <ul> <li>Support formatting ranges of lines with the new <code>--line-ranges</code> command-line option (<a href="https://redirect.github.com/psf/black/issues/4020">#4020</a>)</li> </ul> <h3>Stable style</h3> <ul> <li>Fix crash on formatting bytes strings that look like docstrings (<a href="https://redirect.github.com/psf/black/issues/4003">#4003</a>)</li> <li>Fix crash when whitespace followed a backslash before newline in a docstring (<a href="https://redirect.github.com/psf/black/issues/4008">#4008</a>)</li> <li>Fix standalone comments inside complex blocks crashing Black (<a href="https://redirect.github.com/psf/black/issues/4016">#4016</a>)</li> <li>Fix crash on formatting code like <code>await (a ** b)</code> (<a href="https://redirect.github.com/psf/black/issues/3994">#3994</a>)</li> <li>No longer treat leading f-strings as docstrings. This matches Python's behaviour and fixes a crash (<a href="https://redirect.github.com/psf/black/issues/4019">#4019</a>)</li> </ul> <h3>Preview style</h3> <ul> <li>Multiline dicts and lists that are the sole argument to a function are now indented less (<a href="https://redirect.github.com/psf/black/issues/3964">#3964</a>)</li> <li>Multiline unpacked dicts and lists as the sole argument to a function are now also indented less (<a href="https://redirect.github.com/psf/black/issues/3992">#3992</a>)</li> <li>In f-string debug expressions, quote types that are visible in the final string are now preserved (<a href="https://redirect.github.com/psf/black/issues/4005">#4005</a>)</li> <li>Fix a bug where long <code>case</code> blocks were not split into multiple lines. Also enable general trailing comma rules on <code>case</code> blocks (<a href="https://redirect.github.com/psf/black/issues/4024">#4024</a>)… | 2023-11-08T13:18:56Z | 2023-12-08T13:46:24Z | 57f4b139eaf0a394606b76c6281470c42c116dfa | 0 | eec10df01afbb4489feb7c97544fa10db041e6b0 | 452a587e236ef642cbc6ae345b58767ea8420cb5 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2206 | ||||||
1602618258 | PR_kwDOBm6k_c5fhgOS | 2209 | open | 0 | Fix query for suggested facets with column named value | rgieseke 198537 | See discussion in https://github.com/simonw/datasette/issues/2208 <!-- readthedocs-preview datasette start --> ---- :books: Documentation preview :books:: https://datasette--2209.org.readthedocs.build/en/2209/ <!-- readthedocs-preview datasette end --> | 2023-11-15T14:13:30Z | 2023-11-15T15:31:12Z | d628c1520160c030c26353792221925fdcd5cbe4 | 0 | c88414be391a2e64208e35d33a69a246170499a6 | 452a587e236ef642cbc6ae345b58767ea8420cb5 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/2209 | ||||||
152360740 | MDExOlB1bGxSZXF1ZXN0MTUyMzYwNzQw | 81 | closed | 0 | :fire: Removes DS_Store | jefftriplett 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/81 | |||||
152522762 | MDExOlB1bGxSZXF1ZXN0MTUyNTIyNzYy | 89 | closed | 0 | SQL syntax highlighting with CodeMirror | tomdyson 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/89 | ||||
152631570 | MDExOlB1bGxSZXF1ZXN0MTUyNjMxNTcw | 94 | closed | 0 | Initial add simple prod ready Dockerfile refs #57 | macropin 247192 | Multi-stage build based off official python:3.6-slim Example usage: ``` docker run --rm -t -i -p 9000:8001 -v $(pwd)/db:/db datasette datasette serve /db/chinook.db ``` | 2017-11-14T22:09:09Z | 2017-11-15T03:08:04Z | 2017-11-15T03:08:04Z | 2017-11-15T03:08:04Z | 86755503d26b4a83c2ec59f08ec1b8de791fd954 | 0 | 147195c2fdfa2b984d8f9fc1c6cab6634970a056 | 075d422c0a1c70259188dfbd940538c67419694a | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/94 | ||||
153201945 | MDExOlB1bGxSZXF1ZXN0MTUzMjAxOTQ1 | 114 | closed | 0 | Add spatialite, switch to debian and local build | ingenieroariel 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/114 | ||||
152914480 | MDExOlB1bGxSZXF1ZXN0MTUyOTE0NDgw | 107 | closed | 0 | add support for ?field__isnull=1 | raynae 3433657 | Is this what you had in mind for [this issue](https://github.com/simonw/datasette/issues/64)? | 2017-11-15T23:36:36Z | 2017-11-17T15:12:29Z | 2017-11-17T13:29:22Z | 2017-11-17T13:29:22Z | ed2b3f25beac720f14869350baacc5f62b065194 | 0 | 14d5bb572fadbd45973580bd9ad2a16c2bf12909 | b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/107 | ||||
153306882 | MDExOlB1bGxSZXF1ZXN0MTUzMzA2ODgy | 115 | closed | 0 | Add keyboard shortcut to execute SQL query | rgieseke 198537 | Very cool tool, thanks a lot! This PR adds a `Shift-Enter` short cut to execute the SQL query. I used CodeMirrors keyboard handling. | 2017-11-17T14:13:33Z | 2017-11-17T15:16:34Z | 2017-11-17T14:22:56Z | 2017-11-17T14:22:56Z | eda848b37f8452dba7913583ef101f39d9b130ba | 0 | bb514164e69400fc0be4e033c27f45f90b1ef651 | ed2b3f25beac720f14869350baacc5f62b065194 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/115 | ||||
153324301 | MDExOlB1bGxSZXF1ZXN0MTUzMzI0MzAx | 117 | closed | 0 | Don't prevent tabbing to `Run SQL` button | rgieseke 198537 | Mentioned in #115 Here you go! | 2017-11-17T15:27:50Z | 2017-11-19T20:30:24Z | 2017-11-18T00:53:43Z | 2017-11-18T00:53:43Z | 6d39429daa4655e3cf7a6a7671493292a20a30a1 | 0 | 7b4d00e87ed8ac931e6f5458599aece1a95d4e82 | eda848b37f8452dba7913583ef101f39d9b130ba | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/117 | ||||
153432045 | MDExOlB1bGxSZXF1ZXN0MTUzNDMyMDQ1 | 118 | closed | 0 | Foreign key information on row and table pages | simonw 9599 | 2017-11-18T03:13:27Z | 2017-11-18T03:15:57Z | 2017-11-18T03:15:50Z | 2017-11-18T03:15:50Z | 1b04662585ea1539014bfbd616a8112b650d5699 | 0 | 2fa60bc5e3c9d75c19e21a2384f52b58e1872fa8 | 6d39429daa4655e3cf7a6a7671493292a20a30a1 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/118 | |||||
152870030 | MDExOlB1bGxSZXF1ZXN0MTUyODcwMDMw | 104 | closed | 0 | [WIP] Add publish to heroku support | jacobian 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/104 | ||||
154246816 | MDExOlB1bGxSZXF1ZXN0MTU0MjQ2ODE2 | 145 | closed | 0 | Fix pytest version conflict | simonw 9599 | https://travis-ci.org/simonw/datasette/jobs/305929426 pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), Requirement.parse('pytest==3.2.3')) | 2017-11-22T20:15:34Z | 2017-11-22T20:17:54Z | 2017-11-22T20:17:52Z | 2017-11-22T20:17:52Z | f96e55bce55d26c4d5b198edc536e1b8e9bbea43 | 0 | e319478c4a34fb5afbff2b2a8c3b9ef9f859bb10 | fa8eb0bf1b113ab17ede9cd107b7c3bd5cde39c3 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/145 | ||||
157365811 | MDExOlB1bGxSZXF1ZXN0MTU3MzY1ODEx | 168 | closed | 0 | Upgrade to Sanic 0.7.0 | simonw 9599 | 2017-12-09T01:25:08Z | 2017-12-09T03:00:34Z | 2017-12-09T03:00:34Z | 2017-12-09T03:00:34Z | 446f4b832272b2286f6f65af19714eb64afb7aa6 | 0 | d9e13a5cc2b77637a6cdd8bd21b9b8fc1350051a | 61e3c5a1e904a6e1cbee86ba1494b5cb4b5820cf | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/168 | |||||
161982711 | MDExOlB1bGxSZXF1ZXN0MTYxOTgyNzEx | 178 | closed | 0 | If metadata exists, add it to heroku launch command | psychemedia 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/178 | ||||
179108961 | MDExOlB1bGxSZXF1ZXN0MTc5MTA4OTYx | 192 | closed | 0 | New ?_shape=objects/object/lists param for JSON API | simonw 9599 | Refs #122 | 2018-04-03T14:02:58Z | 2018-04-03T14:53:00Z | 2018-04-03T14:52:55Z | 2018-04-03T14:52:55Z | 0abd3abacb309a2bd5913a7a2df4e9256585b1bb | 0 | a759e09e8599e2cf54f6c5ab4d1cf8adf8608793 | dd0566ff8eda7fa2f0d92e51809581fae62cffed | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/192 | ||||
163523976 | MDExOlB1bGxSZXF1ZXN0MTYzNTIzOTc2 | 180 | closed | 0 | make html title more readable in query template | ryanpitts 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/180 | ||||
180188397 | MDExOlB1bGxSZXF1ZXN0MTgwMTg4Mzk3 | 196 | closed | 0 | _sort= and _sort_desc= parameters to table view | simonw 9599 | See #189 | 2018-04-09T00:07:21Z | 2018-04-09T05:10:29Z | 2018-04-09T05:10:23Z | 2018-04-09T05:10:23Z | c1d37fdf2be84fb07155bb1b1f61057444b03300 | 0 | fdd6b71e40c8aa9a93e95802a8b6291099d4db2c | b2188f044265c95f7e54860e28107c17d2a6ed2e | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/196 | ||||
181033024 | MDExOlB1bGxSZXF1ZXN0MTgxMDMzMDI0 | 200 | closed | 0 | Hide Spatialite system tables | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/200 | ||||
181247568 | MDExOlB1bGxSZXF1ZXN0MTgxMjQ3NTY4 | 202 | closed | 0 | Raise 404 on nonexistent table URLs | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/202 | |||||
181600926 | MDExOlB1bGxSZXF1ZXN0MTgxNjAwOTI2 | 204 | closed | 0 | Initial units support | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/204 | ||||
181644805 | MDExOlB1bGxSZXF1ZXN0MTgxNjQ0ODA1 | 206 | closed | 0 | Fix sqlite error when loading rows with no incoming FKs | russss 45057 | This fixes `ERROR: conn=<sqlite3.Connection object at 0x10bbb9f10>, 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/206 | ||||
181647717 | MDExOlB1bGxSZXF1ZXN0MTgxNjQ3NzE3 | 207 | closed | 0 | Link foreign keys which don't have labels | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/207 | ||||
181642114 | MDExOlB1bGxSZXF1ZXN0MTgxNjQyMTE0 | 205 | closed | 0 | Support filtering with units and more | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/205 | |||||
181654839 | MDExOlB1bGxSZXF1ZXN0MTgxNjU0ODM5 | 208 | closed | 0 | Return HTTP 405 on InvalidUsage rather than 500 | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/208 | ||||
181731956 | MDExOlB1bGxSZXF1ZXN0MTgxNzMxOTU2 | 210 | closed | 0 | Start of the plugin system, based on pluggy | simonw 9599 | Refs #14 | 2018-04-16T00:51:30Z | 2018-04-16T00:56:16Z | 2018-04-16T00:56:16Z | 2018-04-16T00:56:16Z | 33c7c53ff87c25445c68088ede49d062d9c31fe8 | 0 | d75e57060d9ef4ef6ebab3600e542885b7467272 | efbb4e83374a2c795e436c72fa79f70da72309b8 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/210 | ||||
181755220 | MDExOlB1bGxSZXF1ZXN0MTgxNzU1MjIw | 212 | closed | 0 | New --plugins-dir=plugins/ option | simonw 9599 | Refs #211 | 2018-04-16T05:19:28Z | 2018-04-16T05:22:18Z | 2018-04-16T05:22:01Z | 2018-04-16T05:22:01Z | b2955d9065ea019500c7d072bcd9d49d1967f051 | 0 | 33c6bcadb962457be6b0c7f369826b404e2bcef5 | 92396ae5bacedfcb3d7c81319ccdd04483fd7fd4 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/212 | ||||
181723303 | MDExOlB1bGxSZXF1ZXN0MTgxNzIzMzAz | 209 | closed | 0 | Don't duplicate simple primary keys in the link column | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/209 | ||||
182357613 | MDExOlB1bGxSZXF1ZXN0MTgyMzU3NjEz | 222 | closed | 0 | Fix for plugins in Python 3.5 | simonw 9599 | 2018-04-18T03:21:01Z | 2018-04-18T04:26:50Z | 2018-04-18T03:24:21Z | 2018-04-18T03:24:21Z | 4be6deb94776744071311777f0b18efb993c0cfa | 0 | 420cdcb88ee41c15a90fce30fdec5832c03295bd | 1c36d07dd432b9960f4f2d096739460b4fcf8877 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/222 | |||||
183135604 | MDExOlB1bGxSZXF1ZXN0MTgzMTM1NjA0 | 232 | closed | 0 | Fix a typo | lsb 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/232 | ||||
185307407 | MDExOlB1bGxSZXF1ZXN0MTg1MzA3NDA3 | 246 | closed | 0 | ?_shape=array and _timelimit= | simonw 9599 | 2018-05-02T00:18:54Z | 2018-05-02T00:20:41Z | 2018-05-02T00:20:40Z | 2018-05-02T00:20:40Z | 690736436bac599ca042d1caa465c6d66d2651f9 | 0 | 3807d93b98573e142858c5871b8b4aadda71d28f | aa954382c3776d596f459897b0d984161293529d | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/246 | |||||
187668890 | MDExOlB1bGxSZXF1ZXN0MTg3NjY4ODkw | 257 | closed | 0 | Refactor views | simonw 9599 | * Split out view classes from main `app.py` * Run [black](https://github.com/ambv/black) against resulting code to apply opinionated source code formatting * Run [isort](https://github.com/timothycrosley/isort) to re-order my imports Refs #256 | 2018-05-13T13:00:50Z | 2018-05-14T03:04:25Z | 2018-05-14T03:04:24Z | 2018-05-14T03:04:24Z | 2b79f2bdeb1efa86e0756e741292d625f91cb93d | 0 | 0e2b41f3fa38456af32548c536f955c48c7637e8 | 4301a8f3ac69f2f54916e73cc90fcf216a9a3746 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/257 | ||||
188312411 | MDExOlB1bGxSZXF1ZXN0MTg4MzEyNDEx | 261 | closed | 0 | Facets improvements plus suggested facets | simonw 9599 | Refs #255 | 2018-05-16T03:52:39Z | 2018-05-16T15:27:26Z | 2018-05-16T15:27:25Z | 2018-05-16T15:27:25Z | 9959a9e4deec8e3e178f919e8b494214d5faa7fd | 0 | af0e91e7769891949198fb1e1760886424f34b16 | 2b79f2bdeb1efa86e0756e741292d625f91cb93d | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/261 | ||||
187770345 | MDExOlB1bGxSZXF1ZXN0MTg3NzcwMzQ1 | 258 | closed | 0 | Add new metadata key persistent_urls which removes the hash from all database urls | philroche 247131 | Add new metadata key "persistent_urls" which removes the hash from all database urls when set to "true" This PR is just to gauge if this, or something like it, is something you would consider merging? I understand the reason why the substring of the hash is included in the url but there are some use cases where the urls should persist across deployments. For bookmarks for example or for scripts that use the JSON API. This is the initial commit for this feature. Tests and documentation updates to follow. | 2018-05-14T09:39:18Z | 2018-05-21T07:38:15Z | 2018-05-21T07:38:15Z | 457fcdfc82a0260db543d49006d49f8486f233b5 | 0 | 0d77a896ccb16b34c86fdeef7738f2d056e27e02 | 2b79f2bdeb1efa86e0756e741292d625f91cb93d | NONE | datasette 107914493 | https://github.com/simonw/datasette/pull/258 | |||||
189318453 | MDExOlB1bGxSZXF1ZXN0MTg5MzE4NDUz | 277 | closed | 0 | Refactor inspect logic | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/277 | ||||
189707374 | MDExOlB1bGxSZXF1ZXN0MTg5NzA3Mzc0 | 279 | closed | 0 | Add version number support with Versioneer | rgieseke 198537 | I think that's all for getting Versioneer support, I've been happily using it in a couple of projects ... ``` In [2]: datasette.__version__ Out[2]: '0.22+3.g6e12445' ``` Repo: https://github.com/warner/python-versioneer Versioneer Licence: Public Domain (CC0-1.0) Closes #273 | 2018-05-22T15:39:45Z | 2018-05-22T19:35:23Z | 2018-05-22T19:35:22Z | 2018-05-22T19:35:22Z | 49f317752cfe89c5641165a490eef49e025752a7 | 0 | d0d19453e8623cc98a2baa2cadaaff4cd2fee973 | 58b5a37dbbf13868a46bcbb284509434e66eca25 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/279 | ||||
189723716 | MDExOlB1bGxSZXF1ZXN0MTg5NzIzNzE2 | 280 | closed | 0 | Build Dockerfile with recent Sqlite + Spatialite | r4vi 565628 | This solves #278 without bloating the Dockerfile too much, the image size is now 495MB (original was ~240MB) but it could be reduced significantly if we only copied the output of the compilation of spatialite and friends to /usr/local/lib, instead of the entirety of it however that will take more time. In the python code change references to `import sqlite3` to `import pysqlite3` and it should use the compiled version of sqlite3.23.1. You don't need to try/except because pysqlite3 falls back to builtin sqlite3 if there is no compiled version. ```bash $ docker run --rm -it datasette spatialite SpatiaLite version ..: 4.4.0-RC0 Supported Extensions: - 'VirtualShape' [direct Shapefile access] - 'VirtualDbf' [direct DBF access] - 'VirtualXL' [direct XLS access] - 'VirtualText' [direct CSV/TXT access] - 'VirtualNetwork' [Dijkstra shortest path] - 'RTree' [Spatial Index - R*Tree] - 'MbrCache' [Spatial Index - MBR cache] - 'VirtualSpatialIndex' [R*Tree metahandler] - 'VirtualElementary' [ElemGeoms metahandler] - 'VirtualKNN' [K-Nearest Neighbors metahandler] - 'VirtualXPath' [XML Path Language - XPath] - 'VirtualFDO' [FDO-OGR interoperability] - 'VirtualGPKG' [OGC GeoPackage interoperability] - 'VirtualBBox' [BoundingBox tables] - 'SpatiaLite' [Spatial SQL - OGC] PROJ.4 version ......: Rel. 4.9.3, 15 August 2016 GEOS version ........: 3.5.1-CAPI-1.9.1 r4246 TARGET CPU ..........: x86_64-linux-gnu the SPATIAL_REF_SYS table already contains some row(s) SQLite version ......: 3.23.1 Enter ".help" for instructions SQLite version 3.23.1 2018-04-10 17:39:29 Enter ".help" for instructions Enter SQL statements terminated with a ";" spatialite> ``` ```bash $ docker run --rm -it datasette python -c "import pysqlite3; print(pysqlite3.sqlite_version)" 3.23.1 ``` | 2018-05-22T16:33:50Z | 2018-06-28T11:26:23Z | 2018-05-23T17:43:35Z | 2018-05-23T17:43:35Z | bd30c696e18927207358ee9d63174a5c41c8297e | 0 | 5cf78eded61cacec435b854e18f1e94511cf2da8 | 58b5a37dbbf13868a46bcbb284509434e66eca25 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/280 | ||||
189860052 | MDExOlB1bGxSZXF1ZXN0MTg5ODYwMDUy | 281 | closed | 0 | Reduces image size using Alpine + Multistage (re: #278) | iMerica 487897 | Hey Simon! I got the image size down from 256MB to 110MB. Seems to be working okay, but you might want to test it a bit more. Example output of `docker run --rm -it <my-tag> datasette` ``` Serve! files=() on port 8001 [2018-05-23 05:23:08 +0000] [1] [INFO] Goin' Fast @ http://127.0.0.1:8001 [2018-05-23 05:23:08 +0000] [1] [INFO] Starting worker [1] ``` Related: https://github.com/simonw/datasette/issues/278 | 2018-05-23T05:27:05Z | 2018-05-26T02:10:38Z | 2018-05-26T02:10:38Z | 0d6c8fa841ae5d28e151e4ba43370289d1e2e22c | 0 | 3af65075c430d94647f8a1b1f215e82f563bc46f | 49f317752cfe89c5641165a490eef49e025752a7 | NONE | datasette 107914493 | https://github.com/simonw/datasette/pull/281 | |||||
193361341 | MDExOlB1bGxSZXF1ZXN0MTkzMzYxMzQx | 307 | closed | 0 | Initial sketch of custom URL routing, refs #306 | simonw 9599 | See #306 for background on this. | 2018-06-07T15:26:48Z | 2018-06-07T15:29:54Z | 2018-06-07T15:29:41Z | 8c6663d3cc8043fc6f5c796275e80b0445bdff12 | 0 | 018af454f286120452e33d2568dd40908474a8a8 | a246f476b4fe490f5450836b22961bc607e6b4b0 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/307 | |||||
195339111 | MDExOlB1bGxSZXF1ZXN0MTk1MzM5MTEx | 311 | closed | 0 | ?_labels=1 to expand foreign keys (in csv and json), refs #233 | simonw 9599 | Output looks something like this: { "rowid": 233, "TreeID": 121240, "qLegalStatus": { "value" 2, "label": "Private" } "qSpecies": { "value": 16, "label": "Sycamore" } "qAddress": "91 Commonwealth Ave", ... } | 2018-06-16T16:31:12Z | 2018-06-16T22:20:31Z | 2018-06-16T22:20:31Z | 9fe59e54ad65eb1c8239b1a78edb5219d3ab8ab0 | 0 | 40287b1ba09d6e75f0db1458fe78d8c055f128af | d0a578c0fc07b9d9208cd9de981bdf7385a26c49 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/311 | |||||
195413241 | MDExOlB1bGxSZXF1ZXN0MTk1NDEzMjQx | 315 | closed | 0 | Streaming mode for downloading all rows as a CSV | simonw 9599 | Refs #266 | 2018-06-18T03:06:59Z | 2018-06-18T03:29:13Z | 2018-06-18T03:21:02Z | 2018-06-18T03:21:02Z | fc3660cfad7668dbce6ead12766e048fc1f78b11 | 0 | b15f412e04ce9ff21983986e661fbe4396f97b43 | 0d7ba1ba676828dc7c8dda78ebe7921f7986fc18 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/315 | ||||
196526861 | MDExOlB1bGxSZXF1ZXN0MTk2NTI2ODYx | 322 | closed | 0 | Feature/in operator | 4e1e0603 2691848 | 2018-06-21T17:41:51Z | 2018-06-21T17:45:25Z | 2018-06-21T17:45:25Z | 80b7bcefa1c07202779d98c9e2214f3ebad704e3 | 0 | 1acc562a2f60a7289438df657db8fd6dd3a7391d | e7566cc59d4b02ef301054fd35fdde6c925a8e38 | NONE | datasette 107914493 | https://github.com/simonw/datasette/pull/322 | ||||||
196628304 | MDExOlB1bGxSZXF1ZXN0MTk2NjI4MzA0 | 324 | closed | 0 | Speed up Travis by reusing pip wheel cache across builds | simonw 9599 | From https://atchai.com/blog/faster-ci/ - refs #323 | 2018-06-22T03:20:08Z | 2018-06-24T01:03:47Z | 2018-06-24T01:03:47Z | 2018-06-24T01:03:47Z | 47e689a89b3f5f0969595b17d2ec59ea3caffb3b | 0 | 7d7f5f61fd6dca3385386a657a13057680d8ddd7 | e7566cc59d4b02ef301054fd35fdde6c925a8e38 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/324 | ||||
201075532 | MDExOlB1bGxSZXF1ZXN0MjAxMDc1NTMy | 341 | closed | 0 | Bump aiohttp to fix compatibility with Python 3.7 | simonw 9599 | Tests failed here: https://travis-ci.org/simonw/datasette/jobs/403223333 | 2018-07-12T17:41:24Z | 2018-07-12T18:07:38Z | 2018-07-12T18:07:38Z | 2018-07-12T18:07:38Z | 31a5d8fa77be68d4f837f0a80a611675dce49f4b | 0 | 8d34ed776168dcac530859c51f22e8b48829a513 | 130dc8823ebdcc1834fc7c4a03c996b13fc1e444 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/341 | ||||
201451332 | MDExOlB1bGxSZXF1ZXN0MjAxNDUxMzMy | 345 | closed | 0 | Allow app names for `datasette publish heroku` | russss 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 | datasette 107914493 | https://github.com/simonw/datasette/pull/345 | ||||
204029142 | MDExOlB1bGxSZXF1ZXN0MjA0MDI5MTQy | 349 | closed | 0 | publish_subcommand hook + default plugins mechanism, used for publish heroku/now | simonw 9599 | This change introduces a new plugin hook, publish_subcommand, which can be used to implement new subcommands for the "datasette publish" command family. I've used this new hook to refactor out the "publish now" and "publish heroku" implementations into separate modules. I've also added unit tests for these two publishers, mocking the subprocess.call and subprocess.check_output functions. As part of this, I introduced a mechanism for loading default plugins. These are defined in the new "default_plugins" list inside datasette/app.py Closes #217 (Plugin support for "datasette publish") Closes #348 (Unit tests for "datasette publish") Refs #14, #59, #102, #103, #146, #236, #347 | 2018-07-26T05:03:22Z | 2018-07-26T05:28:54Z | 2018-07-26T05:16:00Z | 2018-07-26T05:16:00Z | dbbe707841973b50a76d2703003ae2c40e7ad1fd | 0 | 7abdfd55daa9c617da02fd768b8e7476e89f0f94 | 3ac21c749881d0fb1c35b0f9b7a819e29f61c5c1 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/349 | ||||
204851511 | MDExOlB1bGxSZXF1ZXN0MjA0ODUxNTEx | 353 | closed | 0 | render_cell(value) plugin hook | simonw 9599 | Closes #352. | 2018-07-30T15:57:08Z | 2018-08-05T00:14:57Z | 2018-08-05T00:14:57Z | 2018-08-05T00:14:57Z | 4ac913224061f2dc4f673efab1a5ac6bc748854f | 0 | 2e538d924f3b17f82e94e8e8b5a05abcf9e1e697 | 295d005ca48747faf046ed30c3c61e7563c61ed2 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/353 | ||||
206863803 | MDExOlB1bGxSZXF1ZXN0MjA2ODYzODAz | 358 | closed | 0 | Bump versions of pytest, pluggy and beautifulsoup4 | simonw 9599 | 2018-08-08T00:44:38Z | 2018-08-08T01:11:13Z | 2018-08-08T01:11:13Z | 2018-08-08T01:11:13Z | e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5 | 0 | 848ed0e0420d2e8c95a96b4cf73082da4c65d8f6 | fe5b6ea95a973534fe8a44907c0ea2449aae7602 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/358 | |||||
208719043 | MDExOlB1bGxSZXF1ZXN0MjA4NzE5MDQz | 361 | closed | 0 | Import pysqlite3 if available, closes #360 | simonw 9599 | 2018-08-16T00:52:21Z | 2018-08-16T00:58:57Z | 2018-08-16T00:58:57Z | 2018-08-16T00:58:57Z | aae49fef3b75848628d824077ec063834e3e5167 | 0 | da41daa168af8f29a1beb5278aed833cf3dc48ce | e1db8194e8c1d7f361fd0c1c3fc1b91d6aa920e5 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/361 | |||||
190901429 | MDExOlB1bGxSZXF1ZXN0MTkwOTAxNDI5 | 293 | closed | 0 | Support for external database connectors | jsancho-gpl 11912854 | I think it would be nice that Datasette could work with other file formats that aren't SQLite, like files with PyTables format. I've tried to accomplish that using external connectors published with entry points. These external connectors must have a structure similar to the structure [PyTables Datasette connector](https://github.com/PyTables/datasette-pytables) has. | 2018-05-28T11:02:45Z | 2018-09-11T14:32:45Z | 2018-09-11T14:32:45Z | ad2cb12473025ffab738d4df6bb47cd8b2e27859 | 0 | 59c94be46f9ccd806dd352fa28a6dba142d5ab82 | b7257a21bf3dfa7353980f343c83a616da44daa7 | FIRST_TIME_CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/293 | |||||
216651317 | MDExOlB1bGxSZXF1ZXN0MjE2NjUxMzE3 | 365 | closed | 0 | fix small doc typo | jaywgraves 418191 | 2018-09-19T14:02:02Z | 2019-12-19T02:30:33Z | 2018-09-19T17:15:43Z | 2018-09-19T17:15:43Z | 1bcd54a834a2f9730d21095df855f6708c85c200 | 0 | d3fb6a80c5878c73befa2a35e11a9ce28a6e1ab6 | b7257a21bf3dfa7353980f343c83a616da44daa7 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/365 | |||||
235194286 | MDExOlB1bGxSZXF1ZXN0MjM1MTk0Mjg2 | 390 | closed | 0 | tiny typo in customization docs | jaywgraves 418191 | was looking to add some custom templates to my use of datasette and saw this small typo. | 2018-12-01T13:44:42Z | 2019-12-19T02:30:35Z | 2018-12-16T21:32:56Z | 2018-12-16T21:32:56Z | ed78922ae38b51513319b60ac39990b7c2aca810 | 0 | f8c01373dad3b8dcd10577a2e541f88ef34c77bc | 3de8fac1d322cbab6c8c55899e0e8511b36337d0 | CONTRIBUTOR | datasette 107914493 | https://github.com/simonw/datasette/pull/390 | ||||
241418443 | MDExOlB1bGxSZXF1ZXN0MjQxNDE4NDQz | 392 | closed | 0 | Fix some regex DeprecationWarnings | simonw 9599 | 2018-12-29T02:10:28Z | 2018-12-29T02:22:28Z | 2018-12-29T02:22:28Z | 2018-12-29T02:22:28Z | a2bfcfc1b1c60dac3526364af17c2fa2f3d41a0a | 0 | d245982aedaf7c54bf41d60ea7f0e0cf419c2b2f | eac08f0dfc61a99e8887442fc247656d419c76f8 | OWNER | datasette 107914493 | https://github.com/simonw/datasette/pull/392 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [pull_requests] ( [id] INTEGER PRIMARY KEY, [node_id] TEXT, [number] INTEGER, [state] TEXT, [locked] INTEGER, [title] TEXT, [user] INTEGER REFERENCES [users]([id]), [body] TEXT, [created_at] TEXT, [updated_at] TEXT, [closed_at] TEXT, [merged_at] TEXT, [merge_commit_sha] TEXT, [assignee] INTEGER REFERENCES [users]([id]), [milestone] INTEGER REFERENCES [milestones]([id]), [draft] INTEGER, [head] TEXT, [base] TEXT, [author_association] TEXT, [repo] INTEGER REFERENCES [repos]([id]), [url] TEXT, [merged_by] INTEGER REFERENCES [users]([id]) , [auto_merge] TEXT); CREATE INDEX [idx_pull_requests_merged_by] ON [pull_requests] ([merged_by]); CREATE INDEX [idx_pull_requests_repo] ON [pull_requests] ([repo]); CREATE INDEX [idx_pull_requests_milestone] ON [pull_requests] ([milestone]); CREATE INDEX [idx_pull_requests_assignee] ON [pull_requests] ([assignee]); CREATE INDEX [idx_pull_requests_user] ON [pull_requests] ([user]);