2 ms·
> what happens if I want to check out a 1 year old commit and edit it? Your dev environment is version controlled too because it lives in your repository. You
by hugodutka 4y ago
> what happens if I want to check out a 1 year old commit and edit it?
Your dev environment is version controlled too because it lives in your repository. You would run a prebuild for that old commit and get a dev env from that time. It would only break if your old dev env can no longer be built, for example if it depended on some external resource which is no longer available on the internet.
> I'd rather see something on a (calendar) schedule with the potential to trigger a manual build if needed.
That's actually on our todo list, but it didn't make it into the 0.1 release. This feature is especially useful for monorepos, where rebuilding everything on every commit is too much.
- donmcronald 4y ago> It would only break if your old dev env can no longer be built, for example if it depended on some external resource which is no longer available on the internet. That's what I was getting at. Version controlling a config doesn't make a build deterministic when it depends on transient resources that aren't in version control. There's nothing repeatable about a container style build. They can change between runs that are 5 seconds apart. I see a lot of Docker builds where the author claims they're repeatable because they're version controlled and then they start with 'apt-get update && apt-get upgrade'. At least you don't claim yours repeatable, but I'd much rather build my dev environment on the first Monday of every month, check it in to an artifact repository, and use that for a full month. The re-build would be similar to (using Docker as an example): FROM mygroup/myproject:2023.04 RUN git checkout ... That way when I go back to a commit that's a year old I re-use the exact environment that was in use at the time, If I want an updated dev environment I create a branch and update the version of the dev environment. From the perspective of being the developer, I'd rather specify a release cadence and have the matching dev environment used. Ex: monthly, weekly, daily, ci. IMO container like systems that are used as part of the dev / build chain should be promoted and reused, not comitted and rebuilt. The only person using a CI based build environment should be the person responsible for maintaining it. Everyone else should be on a slower cadence. It's seems so weird to me to come to HN and see people livid about Windows auto-updates and then having no problem with their dev and build tools (potentially) change 50 times a day. To put it another way, would you auto-update VS Code, your runtime, and your dependencies every time you commit to Git? If not, why build the auto-magical dev environment so it works like that? Maybe I'm misunderstanding what it does. Admittedly, I didn't try it out yet.