{"rowid": 934, "message": " /-/static-plugins/PLUGIN_NAME/ now serves static/ from plugins\n\n Refs #214", "commits_fts": 1, "rank": null} {"rowid": 504, "message": " Added datasette-render-binary plugin to ecosystem", "commits_fts": 1, "rank": null} {"rowid": 2774, "message": " Fix for race condition in refresh_schemas(), closes #1231", "commits_fts": 1, "rank": null} {"rowid": 717, "message": " Import pysqlite3 if available, closes #360 (#361)", "commits_fts": 1, "rank": null} {"rowid": 2524, "message": " Using pdb for errors thrown inside Datasette\n\nCloses #1207", "commits_fts": 1, "rank": null} {"rowid": 1774, "message": "\"$env\": \"X\" mechanism now works with nested lists, closes #837", "commits_fts": 1, "rank": null} {"rowid": 572, "message": "\"datasette inspect foo.db\" now just calculates table counts\n\nRefs #462\n\n* inspect command now just outputs table counts\n* test_inspect.py is now only tests for that CLI command\n* Updated some relevant documentation\n* Removed docs for /-/inspect since that is about to change", "commits_fts": 1, "rank": null} {"rowid": 730, "message": "\"datasette publish heroku\" improvements\n\n* Fixed bug where --title= didn't work if -m not provided\n* Now using Python 3.6.6 instead of Python 3.6.3", "commits_fts": 1, "rank": null} {"rowid": 594, "message": "\"python3 -m pip\" is clearer (thanks @jaap3) (#368)", "commits_fts": 1, "rank": null} {"rowid": 332, "message": "\"sort\" and \"sort_desc\" metadata properties, closes #702", "commits_fts": 1, "rank": null} {"rowid": 1870, "message": "\"white-space: pre-wrap\" for all table cells, refs #896", "commits_fts": 1, "rank": null} {"rowid": 2327, "message": "'-f' must now always be specified as '--fmt', refs #194", "commits_fts": 1, "rank": null} {"rowid": 2665, "message": "'Show all columns' menu item if any _col= set, closes #1341\n\nRefs #615", "commits_fts": 1, "rank": null} {"rowid": 2043, "message": "'Soundness check' is better", "commits_fts": 1, "rank": null} {"rowid": 559, "message": "'Try Datasette without installing anything using Glitch'\n\nAlso new 'Play with a live demo' section, both at the top of the Getting\nStarted documentation page.\n\nhttps://datasette.readthedocs.io/en/latest/getting_started.html\n\nCloses #464", "commits_fts": 1, "rank": null} {"rowid": 735, "message": "'Usage: datasette', not 'Usage: cli' - refs #336", "commits_fts": 1, "rank": null} {"rowid": 1952, "message": "'datasette --get' option, closes #926\n\nAlso made a start on the datasette.utils.testing module, refs #898", "commits_fts": 1, "rank": null} {"rowid": 650, "message": "'datasette serve -i immutable.db' option, refs #419", "commits_fts": 1, "rank": null} {"rowid": 83, "message": "'github-to-sqlite repos' command, closes #3", "commits_fts": 1, "rank": null} {"rowid": 75, "message": "'github-to-sqlite repos' now accepts multiple usernames", "commits_fts": 1, "rank": null} {"rowid": 3466, "message": "'just docs' command for running the livehtml docs server", "commits_fts": 1, "rank": null} {"rowid": 743, "message": "'publish now' uses force_https_urls:on - closes #333", "commits_fts": 1, "rank": null} {"rowid": 77, "message": "'releases' command to fetch releases, closes #11", "commits_fts": 1, "rank": null} {"rowid": 1428, "message": "'sqlite-utils add-column name type' command, closes #15", "commits_fts": 1, "rank": null} {"rowid": 2485, "message": "'sqlite-utils enable-counts' command, closes #214", "commits_fts": 1, "rank": null} {"rowid": 1488, "message": "'sqlite-utils insert tablename file.json' command", "commits_fts": 1, "rank": null} {"rowid": 2489, "message": "'sqlite-utils triggers' command, closes #218", "commits_fts": 1, "rank": null} {"rowid": 2227, "message": "--accept option for get, refs #50", "commits_fts": 1, "rank": null} {"rowid": 3085, "message": "--analyze option for create-index, insert, update commands, closes #379, closes #365", "commits_fts": 1, "rank": null} {"rowid": 268, "message": "--attach and --sql for users-lookup, refs #8", "commits_fts": 1, "rank": null} {"rowid": 74, "message": "--auth is now optional, closes #9", "commits_fts": 1, "rank": null} {"rowid": 3049, "message": "--convert --text for iterators, docs for --convert", "commits_fts": 1, "rank": null} {"rowid": 3062, "message": "--convert function can now modify row in place, closes #371", "commits_fts": 1, "rank": null} {"rowid": 2918, "message": "--cors Access-Control-Allow-Headers: Authorization\n\nRefs #1467, refs https://github.com/simonw/datasette-auth-tokens/issues/4", "commits_fts": 1, "rank": null} {"rowid": 3741, "message": "--cors Access-Control-Max-Age: 3600, closes #2079", "commits_fts": 1, "rank": null} {"rowid": 2263, "message": "--cors for /name.db downloads, refs #1057", "commits_fts": 1, "rank": null} {"rowid": 2797, "message": "--cpu option for datasette publish cloudrun, closes #1420", "commits_fts": 1, "rank": null} {"rowid": 2557, "message": "--crossdb option for joining across databases (#1232)\n\n* Test for cross-database join, refs #283\r\n* Warn if --crossdb used with more than 10 DBs, refs #283\r\n* latest.datasette.io demo of --crossdb joins, refs #283\r\n* Show attached databases on /_memory page, refs #283\r\n* Documentation for cross-database queries, refs #283", "commits_fts": 1, "rank": null} {"rowid": 2531, "message": "--delimiter and --quotechar, closes #223", "commits_fts": 1, "rank": null} {"rowid": 3749, "message": "--empty-null option for CSV and TSV imports, closes #563", "commits_fts": 1, "rank": null} {"rowid": 2213, "message": "--encoding option for non-utf8 CSV/TSV, closes #182", "commits_fts": 1, "rank": null} {"rowid": 2706, "message": "--encoding option for sqlite-utils memory, closes #280\n\nRefs #272", "commits_fts": 1, "rank": null} {"rowid": 3063, "message": "--fmt now implies --table, closes #374", "commits_fts": 1, "rank": null} {"rowid": 3494, "message": "--generate-dir option to publish heroku, refs #1905", "commits_fts": 1, "rank": null} {"rowid": 1959, "message": "--get now calls startup() plugin hooks, closes #934", "commits_fts": 1, "rank": null} {"rowid": 3617, "message": "--help output in README", "commits_fts": 1, "rank": null} {"rowid": 3097, "message": "--help summary for 'datasette inspect', closes #1597", "commits_fts": 1, "rank": null} {"rowid": 2572, "message": "--ignore for sqlite-utils drop-table and drop-view, closes #237", "commits_fts": 1, "rank": null} {"rowid": 1619, "message": "--image-url-prefix and --image-url-suffix, closes #24", "commits_fts": 1, "rank": null} {"rowid": 7, "message": "--install=datasette-json-html", "commits_fts": 1, "rank": null} {"rowid": 1551, "message": "--install=datasette-vega\n\nSo I can plot graphs using stargazers from #4", "commits_fts": 1, "rank": null} {"rowid": 37, "message": "--install=py-gfm", "commits_fts": 1, "rank": null} {"rowid": 1416, "message": "--json-cols option for outputting nested JSON, closes #20", "commits_fts": 1, "rank": null} {"rowid": 852, "message": "--limit= mechanism plus new limits for facets\n\nReplaced the --max_returned_rows and --sql_time_limit_ms options to\n\"datasette serve\" with a new --limit option, which supports a larger\nlist of limits.\n\nExample usage:\n\n\tdatasette serve --limit max_returned_rows:1000 \\\n\t\t--limit sql_time_limit_ms:2500 \\\n\t\t--limit default_facet_size:50 \\\n\t\t--limit facet_time_limit_ms:1000 \\\n\t\t--limit facet_suggest_time_limit_ms:500\n\nNew docs: https://datasette.readthedocs.io/en/latest/limits.html\n\nCloses #270\nCloses #264", "commits_fts": 1, "rank": null} {"rowid": 1979, "message": "--load-extension option for sqlite-utils query, closes #134", "commits_fts": 1, "rank": null} {"rowid": 2212, "message": "--load-extension= for many more commands, closes #137\n\nAlso added --load-extension=spatialite shortcut, closes #136", "commits_fts": 1, "rank": null} {"rowid": 2232, "message": "--load-extension=spatialite shortcut, closes #1028", "commits_fts": 1, "rank": null} {"rowid": 1848, "message": "--memory 2Gi, refs #41", "commits_fts": 1, "rank": null} {"rowid": 343, "message": "--memory option for publish cloudrun, refs #694", "commits_fts": 1, "rank": null} {"rowid": 318, "message": "--metadata accepts YAML as well as JSON - closes #713", "commits_fts": 1, "rank": null} {"rowid": 3389, "message": "--min-instances and --max-instances Cloud Run publish options, closes #1779", "commits_fts": 1, "rank": null} {"rowid": 3075, "message": "--nl now ignores blank lines, closes #376", "commits_fts": 1, "rank": null} {"rowid": 2545, "message": "--no-headers option for sqlite-utils insert --csv, closes #228", "commits_fts": 1, "rank": null} {"rowid": 3775, "message": "--no-skip-false option, plus docs - closes #527", "commits_fts": 1, "rank": null} {"rowid": 3302, "message": "--nolock mode to ignore locked files, closes #1744", "commits_fts": 1, "rank": null} {"rowid": 1401, "message": "--not-null and --default options to insert/update, closes #24", "commits_fts": 1, "rank": null} {"rowid": 1406, "message": "--not-null-default and not_null_default=, refs #24", "commits_fts": 1, "rank": null} {"rowid": 472, "message": "--plugin-secret option for datasette publish\n\nCloses #543\r\n\r\nAlso added new --show-files option to publish now and publish cloudrun - handy for debugging.", "commits_fts": 1, "rank": null} {"rowid": 379, "message": "--port argument for datasette package, plus tests - closes #661\n\nFrom pull request #663", "commits_fts": 1, "rank": null} {"rowid": 1895, "message": "--raw option, refs #123", "commits_fts": 1, "rank": null} {"rowid": 3783, "message": "--raw-lines option, closes #539", "commits_fts": 1, "rank": null} {"rowid": 684, "message": "--reload now also reloads if databases change on disk", "commits_fts": 1, "rank": null} {"rowid": 1035, "message": "--reload now reloads on metadata changes too", "commits_fts": 1, "rank": null} {"rowid": 1671, "message": "--root option and /-/auth-token view, refs #784", "commits_fts": 1, "rank": null} {"rowid": 1779, "message": "--secret command for datasette publish\n\nCloses #787", "commits_fts": 1, "rank": null} {"rowid": 38, "message": "--service github-to-sqlite", "commits_fts": 1, "rank": null} {"rowid": 2838, "message": "--silent option for sqlite-utils insert-files, closes #301", "commits_fts": 1, "rank": null} {"rowid": 239, "message": "--since and --since_id options for user-timeline, closes #19\n\nRefs #20\n\nAlso added some initial rate limit error handling code.", "commits_fts": 1, "rank": null} {"rowid": 2542, "message": "--ssl-keyfile and --ssl-certfile options to \"datasette serve\"\n\nCloses #1221", "commits_fts": 1, "rank": null} {"rowid": 1050, "message": "--static option for datasette serve\n\nYou can now tell Datasette to serve static files from a specific location at a\nspecific mountpoint.\n\nFor example:\n\n\tdatasette serve mydb.db --static extra-css:/tmp/static/css\n\nNow if you visit this URL:\n\n\thttp://localhost:8001/extra-css/blah.css\n\nThe following file will be served:\n\n\t/tmp/static/css/blah.css\n\nRefs #160", "commits_fts": 1, "rank": null} {"rowid": 3751, "message": "--stop-after option, closes #561", "commits_fts": 1, "rank": null} {"rowid": 2328, "message": "--tsv output option, closes #193", "commits_fts": 1, "rank": null} {"rowid": 2758, "message": "--uds option for binding to Unix domain socket, closes #1388", "commits_fts": 1, "rank": null} {"rowid": 789, "message": "--version-note for datasette, datasette publish and datasette package\n\nThis is a relatively obscure new command-line argument that helps solve the\nproblem of showing accurate version information in deployed instances of\nDatasette even if they were deployed directly from source code.\n\nYou can pass --version-note to datasette publish and package and it will then\nin turn be passed to datasette when it starts:\n\n datasette --version-note=hello fixtures.db\n\nNow if you visit /-/versions.json you will see this:\n\n {\n \"datasette\": {\n \"note\": \"hello\",\n \"version\": \"0+unknown\"\n },\n \"python\": {\n \"full\": \"3.6.5 (default, Jun 6 2018, 19:19:24) \\n[GCC 6.3.0 20170516]\",\n \"version\": \"3.6.5\"\n },\n ...\n }\n\nI plan to use this in some Travis CI configuration, refs #313", "commits_fts": 1, "rank": null} {"rowid": 2839, "message": "--where and -p options for sqlite-utils convert, closes #304", "commits_fts": 1, "rank": null} {"rowid": 2048, "message": "-d option to run indexer only against specific databases", "commits_fts": 1, "rank": null} {"rowid": 3659, "message": "-e/--expires-after in create-token docs", "commits_fts": 1, "rank": null} {"rowid": 2261, "message": "-o now opens to most relevant page, closes #976", "commits_fts": 1, "rank": null} {"rowid": 1899, "message": "-p for passing named params to query, closes #124", "commits_fts": 1, "rank": null} {"rowid": 367, "message": ".add_database() and .remove_database() methods, refs #671\n\nAlso made a start on the Datasette class documentation, refs #576", "commits_fts": 1, "rank": null} {"rowid": 1841, "message": ".add_message() now works inside plugins, closes #864\n\nRefs #870", "commits_fts": 1, "rank": null} {"rowid": 2503, "message": ".add_missing_columns() is now case insensitive, closes #221", "commits_fts": 1, "rank": null} {"rowid": 2287, "message": ".blob output renderer\n\n* _blob_hash= checking plus refactored to use new BadRequest class, refs #1050\r\n* Replace BlobView with new .blob renderer, closes #1050\r\n* .blob downloads on arbitrary queries, closes #1051", "commits_fts": 1, "rank": null} {"rowid": 3776, "message": ".convert(skip_false) option, refs #527", "commits_fts": 1, "rank": null} {"rowid": 2286, "message": ".csv now links to .blob downloads\n\nCloses #1063, closes #1034", "commits_fts": 1, "rank": null} {"rowid": 646, "message": ".database_url(database) no longer needs inspect, refs #420", "commits_fts": 1, "rank": null} {"rowid": 1285, "message": ".enable_fts() now works with columns with spaces in them, closes #90", "commits_fts": 1, "rank": null} {"rowid": 2099, "message": ".enable_fts(..., replace=True) argument, closes #160", "commits_fts": 1, "rank": null} {"rowid": 356, "message": ".execute_write() and .execute_write_fn() methods on Database (#683)\n\nCloses #682.", "commits_fts": 1, "rank": null} {"rowid": 1377, "message": ".get() method plus support for compound primary keys (#40)\n\n* create_table now handles compound primary keys\r\n* CLI now accepts multiple --pk for compound primary keys\r\n* Docs for compound primary keys with CLI and Python library\r\n* New .get() method plus documentation\r\n\r\nCloses #36, closes #39", "commits_fts": 1, "rank": null}