NixOS / nix

Nix, the purely functional package manager
https://nixos.org/
GNU Lesser General Public License v2.1
12.32k stars 1.49k forks source link

nix flakes is too aggressive with caching when using things like `nix run github:...` #4007

Open colemickens opened 4 years ago

colemickens commented 4 years ago

Describe the bug

I need to be able to tell users that they can run the listed command.

But I really can't have much faith in which version they're getting because of the type of caching that's going on. I'm making fixes, pushing, and the command just spits out the same error. I don't see an intuitive way to bust the cast. I think it ought to be checking much more aggressively when given external references like github:.

# install nix from nixos.org/download
nix-env -iA nixpkgs.nixUnstable
nix build \
  --experimental-features 'nix-command flakes' \
  'github:colemickens/nixcfg#hosts.testipfsvm'

Expected behavior

A clear and concise description of what you expected to happen.

nix-env --version output nix-env (Nix) 3.0pre20200829_f156513 nix (Nix) 3.0pre20200829_f156513

Additional context

Add any other context about the problem here.

zimbatm commented 4 years ago

as a workaround, add /<commit_id> to the github URL. Eg: github:colemickens/nixcfg/a00c2b2e40f8c0a483883370c44fb45c7802ca20#hosts.testipfsvm

edolstra commented 4 years ago

You can pass --refresh to force a redownload.

stale[bot] commented 3 years ago

I marked this as stale due to inactivity. → More info

stale[bot] commented 2 years ago

I closed this issue due to inactivity. → More info

elikoga commented 1 year ago

We probably want to check the current git commit for all the git sources (github, git+https, git+ssh, git+file), right?

nixos-discourse commented 9 months ago

This issue has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/deployment-tools-evaluating-nixops-deploy-rs-and-vanilla-nix-rebuild/36388/27

LuNeder commented 4 months ago

You can pass --refresh to force a redownload.

Is there any equivalent for that on nixos-rebuild? Even if I add --refresh, nix doesn't seem to notice that the repo I'm importing in my flake changed so it just rebuilds from cache

dasj19 commented 1 month ago

@LuNeder maybe the following will help: --option eval-cache false