Skip to content

Rename spaced directories to kebab-case#9

Merged
crutkas merged 1 commit into
microsoft:mainfrom
crutkas:docs/rename-spaced-dirs
May 23, 2026
Merged

Rename spaced directories to kebab-case#9
crutkas merged 1 commit into
microsoft:mainfrom
crutkas:docs/rename-spaced-dirs

Conversation

@crutkas

@crutkas crutkas commented May 23, 2026

Copy link
Copy Markdown
Member

Summary

Renames the two outlier spaced directories to kebab-case in lockstep across the signed top-level tree and the unsigned src/ tree:

Windows Dev Config/      ->  windows-dev-config/
Wsl Comfort/             ->  wsl-comfort/
src/Windows Dev Config/  ->  src/windows-dev-config/
src/Wsl Comfort/         ->  src/wsl-comfort/

The sibling Workloads/<lang>/ directories (dotnet/, winforms/, python/, …) already use kebab/lowercase; this aligns the two outliers with that convention.

The friendly product names "Windows Dev Config" and "WSL Comfort" remain in section headings and prose. Only the four parent directory paths change. Filenames inside (dev-config.winget, install.ps1, README.md, readme.md, comfort-shell-bootstrap.sh) are unchanged.

Diff

16 files changed, 14 insertions(+), 14 deletions(-)
  • 12 of those are renames; file blobs are byte-identical (100% similarity).
  • 4 are text edits across README.md, src/manifest.yml, src/docs/development.md, .pipelines/OneBranch.SignAndPackage.yml.

Why

Every documented command and cross-link in the repo has to defend against the space:

winget configure -f ".\Windows Dev Config\dev-config.winget" `
    --accept-configuration-agreements --disable-interactivity

& ".\Wsl Comfort\install.ps1"

The second example needs the & call operator only because the path is a quoted string literal — .\Wsl Comfort\install.ps1 without quotes is a PowerShell syntax error, and & .\Wsl Comfort\install.ps1 (no surrounding quotes) calls .\Wsl with Comfort\install.ps1 as an argument. A user who copies the invocation and drops the quotes ends up with a confusing error. PowerShell tab completion auto-quotes the path (.\"Windows Dev Config"\), producing a different syntactic shape than what the README example shows. Every markdown cross-link has to URL-encode the space (./Windows%20Dev%20Config/...), which makes ripgrep miss the link target and trips up some local link-checkers.

None of these affect the sibling Workloads/<lang>/ flows, because none of those have a space. This PR brings the two outliers in line.

Post-rename the same commands are:

winget configure -f .\windows-dev-config\dev-config.winget `
    --accept-configuration-agreements --disable-interactivity

.\wsl-comfort\install.ps1

No quoting, no &, no %20.

What this PR touches

File Change
README.md Five command/link references. The WSL Comfort invocation simplifies from & ".\Wsl Comfort\install.ps1" to .\wsl-comfort\install.ps1.
src/manifest.yml install and configuration paths for the manual-test flows comfort-shell and calm-os. The pre-existing asymmetry where these two flows declare paths without a src/ prefix (automated workloads use src/Workloads/...) is preserved — that's a separate cleanup, not in scope here.
src/docs/development.md Two table cross-links + two repo-layout-tree lines.
.pipelines/OneBranch.SignAndPackage.yml The CopyFiles@2 Contents glob lines for the signed release artifact.
Windows Dev Config/**, src/Windows Dev Config/**, Wsl Comfort/**, src/Wsl Comfort/** git mv to kebab-case. File contents unchanged. Signed top-level install.ps1s still carry their Authenticode signature block; src/ copies remain unsigned.

CI is unaffected: .github/workflows/ci.yml reads paths from manifest.yml dynamically and does not hard-code any directory name. The two renamed flows are manual_test: true so they don't run in CI anyway.

No script or .cs file inside the moved directories references its parent directory by name — all PowerShell scripts use $PSScriptRoot and comfort-shell-bootstrap.sh is self-relative. Verified by grep.

Verification

  • Link scan: re-ran the same static markdown link scan that was used to find the five broken links fixed in Fix broken links in src/ docs #7. 0 broken out of 182 links on the renamed tree.
  • Residual references: grep on the working tree for the patterns Windows Dev Config/, Wsl Comfort/, Windows%20Dev%20Config, Wsl%20Comfort, ".\Windows Dev Config, ".\Wsl Comfort returns no matches. The only remaining Windows Dev Config and WSL Comfort strings are in human prose (the README section heading, the feature description paragraphs, and a Troubleshooting bullet — all naming the product, not the path).
  • Blob integrity: verified after the rename that windows-dev-config/install.ps1 and wsl-comfort/install.ps1 still carry the # SIG # Begin signature block Authenticode block, while the src/... copies remain unsigned. The 12 git renames detect at 100% similarity.

External impact

GitHub does not provide URL redirects for renamed paths. Any bookmark, blog post, Slack/Teams pin, or wiki page pointing at:

  • github.com/microsoft/WindowsDeveloperConfig/.../Windows%20Dev%20Config/
  • github.com/microsoft/WindowsDeveloperConfig/.../Wsl%20Comfort/

will start returning 404 once this merges. The proposal that drove this PR weighed leaving a single-file MOVED.md placeholder at each old path; the placeholder approach was rejected because it would re-introduce the spaced directory names just to host a redirect note, defeating the goal of the rename and re-creating the tab-completion ambiguity. The mitigation is a release announcement and a heads-up to any in-flight PR authors to rebase.

Relation to other open PRs

Renames the two outlier spaced directories in lockstep across the
signed top-level tree and the unsigned src/ tree:

    Windows Dev Config/      -> windows-dev-config/
    Wsl Comfort/             -> wsl-comfort/
    src/Windows Dev Config/  -> src/windows-dev-config/
    src/Wsl Comfort/         -> src/wsl-comfort/

The sibling Workloads/<lang>/ directories already use kebab/lowercase
(dotnet/, winforms/, etc.); this aligns the two outliers with that
convention. The friendly product names "Windows Dev Config" and "WSL
Comfort" remain in section headings and prose - only the four parent
directory names change. Filenames inside those directories
(dev-config.winget, install.ps1, README.md, readme.md,
comfort-shell-bootstrap.sh) are unchanged.

Why
---

Every documented command and cross-link in the repo had to defend
against the space:

    winget configure -f ".\Windows Dev Config\dev-config.winget" `
        --accept-configuration-agreements --disable-interactivity

    & ".\Wsl Comfort\install.ps1"

That second example needs the `&` call operator only because the path
is a quoted string literal - `.\Wsl Comfort\install.ps1` without quotes
is a PowerShell syntax error, and `& .\Wsl Comfort\install.ps1` (no
surrounding quotes) calls `.\Wsl` with `Comfort\install.ps1` as an
argument. Tab completion auto-quotes the path
(`.\"Windows Dev Config"\`), producing a different syntactic shape
than what the docs show. Every markdown cross-link had to URL-encode
the space (`%20`). None of these affect the sibling Workloads/<lang>/
flows, because none of those have a space.

Post-rename the same commands are:

    winget configure -f .\windows-dev-config\dev-config.winget `
        --accept-configuration-agreements --disable-interactivity

    .\wsl-comfort\install.ps1

No quoting, no `&`, no `%20`.

What changed
------------

* git mv across the four directories. File blobs are unchanged; the
  signed top-level install.ps1's still carry their Authenticode
  signature block (`# SIG # Begin signature block` ... `# SIG # End
  signature block`), the src/ copies remain unsigned. Verified
  on-disk after the rename.
* README.md: five command/link references updated; the WSL Comfort
  invocation simplifies from `& ".\Wsl Comfort\install.ps1"` to
  `.\wsl-comfort\install.ps1`.
* src/docs/development.md: two table links and two repo-layout-tree
  lines.
* src/manifest.yml: `install` and `configuration` paths for the
  manual-test flows (`comfort-shell`, `calm-os`). The pre-existing
  asymmetry where these two flows declare paths without a `src/`
  prefix (the automated workloads use `src/Workloads/...`) is
  preserved - that is a separate cleanup not in scope here.
* .pipelines/OneBranch.SignAndPackage.yml: the CopyFiles@2 `Contents`
  glob lines for the signed release artifact.
* No script or .cs file inside the moved directories references its
  parent dir by name. PowerShell scripts use $PSScriptRoot;
  comfort-shell-bootstrap.sh is self-relative. Verified by grep.

Inside the repo nothing else mentions the old names as a path. The
only remaining instances of the strings "Windows Dev Config" and "WSL
Comfort" are in human prose - the README's section heading, the
feature description paragraphs, and a Troubleshooting bullet that
names the product, not the path.

External impact (out of scope of the patch, called out for awareness)
---------------------------------------------------------------------

GitHub does not provide URL redirects for renamed paths. Any bookmark,
blog post, Slack/Teams link, or wiki page pointing at
github.com/microsoft/WindowsDeveloperConfig/.../Windows%20Dev%20Config/
or .../Wsl%20Comfort/ will start returning 404 once this merges. The
proposal weighed leaving a single-file MOVED.md placeholder at each
old path; the placeholder approach was rejected because it would
re-introduce the spaced directory names just to host a redirect note,
defeating the goal of the rename and re-creating the tab-completion
ambiguity. The mitigation is a release announcement and a heads-up to
any in-repo PR authors to rebase.

Verification
------------

* Re-ran the same static markdown link scan that was used to find the
  five broken links fixed in #7: 0 broken out of 182 links on the
  renamed tree.
* grep on the working tree for the patterns `Windows Dev Config/`,
  `Wsl Comfort/`, `Windows%20Dev%20Config`, `Wsl%20Comfort`,
  `".\Windows Dev Config`, `".\Wsl Comfort` returns no matches.
* git diff --stat confirms 16 files changed, 14 insertions(+), 14
  deletions(-) - all inside the four manifest+docs+pipeline files
  above. Body bytes of the moved scripts are unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@crutkas crutkas merged commit 247a143 into microsoft:main May 23, 2026
11 checks passed
@crutkas crutkas deleted the docs/rename-spaced-dirs branch May 23, 2026 06:59
crutkas added a commit that referenced this pull request May 23, 2026
When PRs #8 and #9 landed in that order, PR #8's 'Repo layout: signed vs source' section was merged with the spaced paths (Windows Dev Config/, Wsl Comfort/) baked in, and PR #9's rename did not retroactively update that table. After both PRs the README points readers at four paths that no longer exist on disk.

Three small fixes, all inside the Repo layout section:

- Update the 4-column path table to kebab-case: windows-dev-config/, wsl-comfort/, src/windows-dev-config/, src/wsl-comfort/.
- Update the inline 'every winget configure -f ...-style invocation in this README is correct as written' example to drop the now-unnecessary surrounding quotes and use windows-dev-config.
- Remove the stray '- ' empty bullet that landed at the end of the 'Don't' list (likely a stray trailing dash in the PR #8 source).

No new content. No structural changes elsewhere.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants