mirror of
https://github.com/astral-sh/uv.git
synced 2025-12-09 11:16:25 +00:00
chore: unify all env vars used (#8151)
## Summary This PR declares and documents all environment variables that are used in one way or another in `uv`, either internally, or externally, or transitively under a common struct. I think over time as uv has grown there's been many environment variables introduced. Its harder to know which ones exists, which ones are missing, what they're used for, or where are they used across the code. The docs only documents a handful of them, for others you'd have to dive into the code and inspect across crates to know which crates they're used on or where they're relevant. This PR is a starting attempt to unify them, make it easier to discover which ones we have, and maybe unlock future posibilities in automating generating documentation for them. I think we can split out into multiple structs later to better organize, but given the high influx of PR's and possibly new environment variables introduced/re-used, it would be hard to try to organize them all now into their proper namespaced struct while this is all happening given merge conflicts and/or keeping up to date. I don't think this has any impact on performance as they all should still be inlined, although it may affect local build times on changes to the environment vars as more crates would likely need a rebuild. Lastly, some of them are declared but not used in the code, for example those in `build.rs`. I left them declared because I still think it's useful to at least have a reference. Did I miss any? Are their initial docs cohesive? Note, `uv-static` is a terrible name for a new crate, thoughts? Others considered `uv-vars`, `uv-consts`. ## Test Plan Existing tests
This commit is contained in:
parent
0a23be4a6a
commit
01c44af3c3
86 changed files with 1572 additions and 1104 deletions
|
|
@ -14,6 +14,7 @@ use reqwest_middleware::ClientWithMiddleware;
|
|||
use tracing::debug;
|
||||
use url::Url;
|
||||
use uv_fs::Simplified;
|
||||
use uv_static::EnvVars;
|
||||
|
||||
/// A file indicates that if present, `git reset` has been done and a repo
|
||||
/// checkout is ready to go. See [`GitCheckout::reset`] for why we need this.
|
||||
|
|
@ -604,13 +605,13 @@ fn fetch_with_cli(
|
|||
// rebase`), the GIT_DIR is set by git and will point to the wrong
|
||||
// location (this takes precedence over the cwd). Make sure this is
|
||||
// unset so git will look at cwd for the repo.
|
||||
.env_remove("GIT_DIR")
|
||||
.env_remove(EnvVars::GIT_DIR)
|
||||
// The reset of these may not be necessary, but I'm including them
|
||||
// just to be extra paranoid and avoid any issues.
|
||||
.env_remove("GIT_WORK_TREE")
|
||||
.env_remove("GIT_INDEX_FILE")
|
||||
.env_remove("GIT_OBJECT_DIRECTORY")
|
||||
.env_remove("GIT_ALTERNATE_OBJECT_DIRECTORIES")
|
||||
.env_remove(EnvVars::GIT_WORK_TREE)
|
||||
.env_remove(EnvVars::GIT_INDEX_FILE)
|
||||
.env_remove(EnvVars::GIT_OBJECT_DIRECTORY)
|
||||
.env_remove(EnvVars::GIT_ALTERNATE_OBJECT_DIRECTORIES)
|
||||
.cwd(&repo.path);
|
||||
|
||||
// We capture the output to avoid streaming it to the user's console during clones.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue