uutils / uutils/coreutils

Remove `env::set_var` / `env::remove_var` in tests and build scripts

Open
#12,238 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
24.1k
Forks
2k
Avg merge
1d 5h
Merged PRs (30d)
365

Description

https://github.com/uutils/coreutils/pull/12228 demonstrates a good step toward removing unnecessary unsafe usage and global environment mutation in tests. This change highlights a broader pattern in the codebase: extensive use of std::env::set_var and std::env::remove_var, which is both unsafe in practice (even if not marked unsafe) and makes code harder to reason about.

We should generalize this approach across the codebase, maybe by using Command::env.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing PR 12228, then search the codebase for std::env::set_var and std::env::remove_var in tests and build scripts. Identify cases that can use Command::env instead, and consider the work done when unnecessary global environment mutation has been removed across the relevant uses.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, cli, testing
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.