{"html_url": "https://github.com/simonw/datasette/pull/631#issuecomment-553233439", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/631", "id": 553233439, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzIzMzQzOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T04:26:40Z", "updated_at": "2019-11-13T04:26:40Z", "author_association": "OWNER", "body": "Nice fix, thanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 521923131, "label": "bugfix issue 572"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/632#issuecomment-553264586", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/632", "id": 553264586, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzI2NDU4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T06:47:53Z", "updated_at": "2019-11-13T06:47:53Z", "author_association": "OWNER", "body": "https://github.com/simonw/datasette/blob/973f8f139df6ad425354711052cfc2256de2e522/datasette/publish/heroku.py#L167", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 521995039, "label": "Upgrade datasette publish Heroku runtime"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/633#issuecomment-553483419", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/633", "id": 553483419, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzQ4MzQxOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T16:35:34Z", "updated_at": "2019-11-13T16:35:34Z", "author_association": "OWNER", "body": "The problem is this code in uvicorn: https://github.com/encode/uvicorn/blob/020dd085a0a5b609f14ddd2b36fc0a97ba4df019/uvicorn/main.py#L297-L302\r\n```python\r\n if (config.reload or config.workers > 1) and not isinstance(app, str):\r\n logger = logging.getLogger(\"uvicorn.error\")\r\n logger.warn(\r\n \"You must pass the application as an import string to enable 'reload' or 'workers'.\"\r\n )\r\n sys.exit(1)\r\n```\r\nFrom this commit 4 days ago: https://github.com/encode/uvicorn/commit/b034f7a136c5e57a33ffd10ce2404cc1faee9033 - see Uvicorn https://github.com/encode/uvicorn/issues/478 and https://github.com/encode/uvicorn/pull/481\r\n\r\nThis is breaking because `--workers` \"Defaults to the $WEB_CONCURRENCY environment variable if available\" - and it turns out on Heroku WEB_CONCURRENCY is set to 2 by default!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 522334771, "label": "Publish to Heroku is broken: \"WARNING: You must pass the application as an import string to enable 'reload' or 'workers\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/633#issuecomment-553483633", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/633", "id": 553483633, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzQ4MzYzMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T16:36:02Z", "updated_at": "2019-11-13T16:36:35Z", "author_association": "OWNER", "body": "Short term fix: set `--workers=1` when publishing with Heroku. Or even easier - set WEB_CONCURRENCY to 1.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 522334771, "label": "Publish to Heroku is broken: \"WARNING: You must pass the application as an import string to enable 'reload' or 'workers\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/632#issuecomment-553487179", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/632", "id": 553487179, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzQ4NzE3OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T16:44:07Z", "updated_at": "2019-11-13T16:44:07Z", "author_association": "OWNER", "body": "Here's an instance deployed using the new code which shows Python 3.8.0: https://datasette-fixtures.herokuapp.com/-/versions", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 521995039, "label": "Upgrade datasette publish Heroku runtime"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553526685", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/66", "id": 553526685, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzUyNjY4NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T17:58:59Z", "updated_at": "2019-11-13T17:58:59Z", "author_association": "OWNER", "body": "This warrants making a backwards compatible change, which means I'll need to bump the major version number and release 2.0.\r\n\r\nI'm going to rename the existing `upsert()` and `upsert_all()` methods to `replace()` and `replace_all()` - then write new `upsert()` and `upsert_all()` methods that implement the correct behavior.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 521868864, "label": "The \".upsert()\" method is misnamed"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553527384", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/66", "id": 553527384, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzUyNzM4NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T18:00:41Z", "updated_at": "2019-11-13T18:00:41Z", "author_association": "OWNER", "body": "Is `replace()` a good name here? It doesn't really convey the idea that a brand new record will be created if there isn't an existing one to replace.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 521868864, "label": "The \".upsert()\" method is misnamed"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553528386", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/66", "id": 553528386, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzUyODM4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T18:03:10Z", "updated_at": "2019-11-13T18:03:54Z", "author_association": "OWNER", "body": "Maybe `inplace()` (combining \"insert\" and \"replace\")?\r\n\r\nIt could be an alias for `.insert(..., replace=True)`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 521868864, "label": "The \".upsert()\" method is misnamed"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553528850", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/66", "id": 553528850, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzUyODg1MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T18:04:20Z", "updated_at": "2019-11-13T18:04:20Z", "author_association": "OWNER", "body": "This is going to affect the design of the CLI subcommands as well.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 521868864, "label": "The \".upsert()\" method is misnamed"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553540146", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/66", "id": 553540146, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzU0MDE0Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T18:33:30Z", "updated_at": "2019-11-13T18:33:30Z", "author_association": "OWNER", "body": "Maybe instead of inventing a new term I should tell people to use `.insert(..., replace=True)` directly. That matches `ignore=True`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 521868864, "label": "The \".upsert()\" method is misnamed"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/578#issuecomment-553555517", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/578", "id": 553555517, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzU1NTUxNw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T19:13:15Z", "updated_at": "2019-11-13T19:13:15Z", "author_association": "OWNER", "body": "Yes I'm going to hold of on this until the Docker feature is less experimental.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 499954048, "label": "Added support for multi arch builds"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/389#issuecomment-553555669", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/389", "id": 553555669, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzU1NTY2OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T19:13:41Z", "updated_at": "2019-11-13T19:13:41Z", "author_association": "OWNER", "body": "This is very obsolete now.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 382471625, "label": "Bump dependency versions"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/66#issuecomment-553574011", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/66", "id": 553574011, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MzU3NDAxMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-11-13T19:53:45Z", "updated_at": "2019-11-13T19:53:45Z", "author_association": "OWNER", "body": "First step: add a `replace=True` argument to `insert()` and `insert_all()` that does the same thing as the current `upsert=True`\r\n\r\nhttps://github.com/simonw/sqlite-utils/blob/8dab9fd1ccf571e188eec9ccf606a0c50fccf200/sqlite_utils/db.py#L938-L946", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 521868864, "label": "The \".upsert()\" method is misnamed"}, "performed_via_github_app": null}