microsoft/coreutils
58.8
Adequate · 30 September 2026
1.2k
lines of production code
Rust
primary language
2
measurements over time
What this system is
This system is a Windows-native port of GNU coreutils utilities, implemented in Rust and distributed via an Inno Setup installer. It provides a suite of command-line tools, including coreutils, findutils, grep, and ntsort, with a focus on Windows compatibility and integration. The system includes a dedicated manager utility for enabling or disabling specific tools and managing PowerShell profile aliases, while its build pipeline supports cross-architecture releases with code signing.
Behavioural changes
Installer overhaul: new coreutils-manager, Inno Setup 7, and PowerShell integration changes
The Windows installer has been significantly updated to use Inno Setup 7 (replacing version 6) and introduces a new 'coreutils-manager' utility for managing installed components. The installation process now uses this manager to refresh hardlinks instead of listing them directly, and the PowerShell profile integration has been adjusted to clarify that it rewrites interactive input rather than removing built-in aliases. Additionally, the installer now allows users to select the GUI installation directory, handles uninstallation more gracefully when PowerShell is missing, and supports the /SUPPRESSMSGBOXES flag. Documentation has also been updated to reflect these changes, including notes on PowerShell 7.4+ requirements, CRLF handling, and custom alias creation.
(repo-wide) · high confidence
Introduce coreutils-manager for utility enable/disable and PowerShell profile management
Users can now manage which coreutils utilities are active and control PowerShell profile integration via the new \coreutils-manager\ tool. This utility provides \enable\ and \disable\ subcommands to toggle specific utilities, persisting the state in the Windows registry under \HKLM\\SOFTWARE\\Microsoft\\coreutils\\DisabledUtilities\. The PowerShell installation script (\pwsh-install.ps1\) has been updated to support a \Refresh\ action, respects the disabled utilities list when generating profile snippets, and uses the \InstallLocation\ registry property for MSI installations. Additionally, the PowerShell profile template now checks for the existence of the command directory before rewriting commands, and skips updating signed profiles to prevent signature invalidation.
src · high confidence
Migrate Windows release pipeline to 1ES Pipeline Templates
The Windows release build process has been migrated from the legacy OneBranch pipeline to the 1ES Pipeline Template (1ES PT) system. This change introduces a new release definition (\.pipelines/1espt-release.yml\) that extends the official or unofficial 1ES templates, replacing the previous monolithic release script with a modular structure using shared templates for build jobs and ESRP code signing. The pipeline now explicitly supports building for both x86\_64 and aarch64 Windows targets, integrates with Azure Artifacts for Rust and NuGet dependencies, and enforces code signing for official releases using managed identity authentication.
.pipelines · high confidence
ntfind now returns exit codes via Result instead of calling exit()
The internal implementation of the ntfind utility has been refactored to propagate errors and exit codes through Rust's Result type rather than calling the process-exit function directly. This change allows the main entry point to return an integer status code, which is then handled by the entry wrapper to terminate the process, improving error handling consistency and testability.
deps/ntfind · high confidence
Dependencies
Update Rust dependencies and enable the paste utility
This release updates the project's Rust dependencies, including bumping the application version to 2026.9.3 and upgrading core libraries such as clap, itertools, and phf. It also enables the previously disabled paste utility by adding the uu\_paste package to the build configuration.
(dependencies) · high confidence
Updated coreutils, findutils, and grep submodules; fixed ntsort temp path API usage
The project has updated its vendored coreutils, findutils, and grep submodules to their latest commits, bringing in upstream changes. Additionally, the ntsort component now uses the standard GetTempPath API instead of the Windows-specific GetTempPath2, ensuring broader compatibility for temporary file location detection.
deps · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 62 → 59 (-3.6)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 92 → 92 (-0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 60 → 60 (+0.4)
- Readiness 47 → 39 (-7.2)
- Security 86 → 90 (+3.9)
Resolved (2)
- Documentation: no architecture or design documentation (README.md)
- Hotspot: src/main.rs (src/main.rs)
New (3)
- Outdated: cc
- Outdated: clap
- Outdated: textwrap
Changes since last survey
- 1 commits — 1 feature/other, 0 fixes
By area
- src/pwsh-install-template.ps1 — 1 commit
Notable commits
- change: Add a note about coreutils-manager disable (#179)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
microsoft/coreutils was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 09f098d288f08a8071acf6dce9671a63ffb2e575 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-505904ce13c1.