{
"$type": "site.standard.document",
"description": "A quiz (and a plea for consistency) on whether your package manager uses update or upgrade.",
"path": "/blog/2019/10/16/package-managers-update-or-upgrade",
"publishedAt": "2019-10-16T00:00:00.000Z",
"site": "at://did:plc:tevykrhi4kibtsipzci76d76/site.standard.publication/self",
"tags": [
"dev"
],
"textContent": "Quick quiz: for the following language/system package managers, what's the name of the subcommand to update[^or-upgrade] your project/system to the latest version of one (or more) of your project's dependencies? [^or-upgrade]: or, y'know, upgrade | package manager | language/system | | --------------- | --------------- | | bundle | Ruby | | pip | Python | | poetry | Python | | pipenv | Python | | npm | javascript | | yarn | javascript | | brew | macOS | | apt-get | Debian | | cargo | Rust | | stack | Haskell | | lein | Clojure | | dep | Go | | cpan | Perl | | mix | Elixir | | package manager | language/system | (sub)command name | | --------------- | --------------- | --------------------- | | bundle | Ruby | upgrade | | pip | Python | go away[^pip] | | poetry | Python | update | | pipenv | Python | update | | npm | javascript | update or upgrade | | yarn | javascript | upgrade | | brew | macOS | upgrade | | apt-get | Debian | upgrade | | cargo | Rust | update | | stack | Haskell | update | | lein | Clojure | ancient upgrade | | dep | Go | ensure -update | | cpan | Perl | upgrade | | mix | Elixir | deps.update | [^pip]: https://github.com/pypa/pip/issues/59 For bonus points, which of them also recognise the \"other\" subcommand but it does something different? For even more bonus points, when does that \"other\" option do something unwanted/destructive/irreversible (assuming that all you want to do is update that dependency to the latest version)? Look, I'm not at all saying that you should just go and blindly update/upgrade all of the things---that's clearly a bad idea. But it still takes me a non-zero amount of time as I switch between languages/tools to sit and think \"ok, for this project do I want to update or upgrade\"? And that makes me sad. If there's a deep, principled (or even a shallow, pragmatic) reason to pick one or the other then we should observe it, and do it consistently. Even if there's not, we should toss a coin and be consistent anyway. If any of the above commands are incorrect, or if there's a better way, then let me know.",
"title": "Package managers: <code>update</code> or <code>upgrade</code>?"
}