Comments (2)
I don't think auto-updating is a good idea. It feels wrong to me and would very much surprise me when it happened. (For whatever it's worth, I was a big Homebrew user in my former job and hated the auto-update behaviour.)
The following scenario, made possible by auto-updating, seems at best very rude and at worst infuriating:
- Person A is working on a pathogen build using
nextstrain build
, iterating on their work and steadily making progress. - They go to lunch having reached a good stopping point where things are working.
- We release a new image.
- They come back from lunch and the now their build is broken because when they ran
nextstrain build
again it pulled down the new image and hit some incompatibility.
If they're lucky, they'll see what happened. If they're not, well they might be pretty confused and waste a lot of time. They also, crucially, don't have a good nor obvious way to get back to the working state. We've forced them to understand what updated and fix it.
In the case of someone pulling down a new version of a build repo and needing a newer image, the error happens immediately and the situation is basically the same as when not using the image at all. The quickest way forward (when they don't care about why it's broken) is to check for updates by running nextstrain update
, the same way you'd have to check for updates to augur/auspice/etc but with less work.
It's possible to imagine ways of versioning our images and being "smart" about auto-updates, but that gets pretty complicated pretty quick. I don't think we really have the infrastructure/process for programmatically tracking what's a breaking change vs. what's not in our own software much less for all of our deps baked into the images. The simpler thing, and the thing abiding by the principle of least surprise, is just to not auto-update.
from cli.
I agree with this assessment @tsibley. Thank you. I'm going to close this issue.
from cli.
Related Issues (20)
- CI fails due to change in Python 3.6 deprecation warning from cryptography HOT 1
- Windows: Snakemake arguments with file paths containing backslashes produce file not found errors
- ENH: Print docker image used at beginning of aws-batch jobs HOT 2
- When using `--aws-batch`, the `--image` argument is ignored HOT 2
- BUG: `nextstrain update conda` doesn't seem to update to latest available conda-base HOT 18
- Confusing log message "runtime updated" when nothing was changed HOT 3
- `nextstrain update singularity` throws error about OCI indexes with Singularity 2.6 and 3.5.3 HOT 13
- Add command to self-upgrade HOT 3
- Auto-trigger Docker and Conda runtime builds on CLI releases
- `Your request was too big` error on stock RSV repo build via aws-batch HOT 7
- [build] `--cpus` isn't passed to thru when using `--exec` HOT 5
- Read-only filesystem errors from Snakemake in Singularity runtime HOT 2
- Installation fails when there is a space in the path HOT 1
- Docker runner assumes the Docker Hub (docker.io) registry HOT 4
- ENH: Detect and warn user if their environment deviates from nextstrain-base HOT 1
- Pyright failures with 1.1.309
- `nextstrain update conda` in 7.0.0 can error with "Invalid version" HOT 13
- Improve runtime documentation HOT 1
- pyparsing 3.1.0 causing test failures in Markdown image inlining HOT 4
- [batch] ZIP archive of build dir is stored without compression HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cli.