`uv pip compile --upgrade` can fail when `uv pip compile` succeeds if `requirements.txt` contains pre-release
My requirements.in contains a package which depends on betterproto>=2.0.0b6. The requirements.txt was initially generated using pip and contains betterproto==2.0.0b6.
Running uv pip compile works, but uv pip compile --upgrade refuses to pick up that pre-release version, and therefore fails resolution.
I would think it would be more intuitive for either:
uv pip compileto fail if any pre-release version is already inrequirements.txt, oruv pip compile --upgradeto accept pre-releases if they are already inrequirements.txt
I think "uv pip compile --upgrade to accept pre-releases if they are already in requirements.txt" does make sense.
I would probably say the same of yanked packages... If you run with --upgrade, and your lockfile uses a yanked package, we should probably allow you to continue using it...?
That's a little more dubious imo. If something is yanked you ought to be pushed to resolve it. If you want to keep using the yanked version you should have to pin? Can we consider that separately? (see #3644)
Yeah that's fine.