Rename spaced directories to kebab-case#9
Merged
Conversation
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>
niels9001
approved these changes
May 23, 2026
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Renames the two outlier spaced directories to kebab-case in lockstep across the signed top-level tree and the unsigned
src/tree: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
100%similarity).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:
The second example needs the
&call operator only because the path is a quoted string literal —.\Wsl Comfort\install.ps1without quotes is a PowerShell syntax error, and& .\Wsl Comfort\install.ps1(no surrounding quotes) calls.\WslwithComfort\install.ps1as 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:
No quoting, no
&, no%20.What this PR touches
README.md& ".\Wsl Comfort\install.ps1"to.\wsl-comfort\install.ps1.src/manifest.ymlinstallandconfigurationpaths for the manual-test flowscomfort-shellandcalm-os. The pre-existing asymmetry where these two flows declare paths without asrc/prefix (automated workloads usesrc/Workloads/...) is preserved — that's a separate cleanup, not in scope here.src/docs/development.md.pipelines/OneBranch.SignAndPackage.ymlCopyFiles@2Contentsglob lines for the signed release artifact.Windows Dev Config/**,src/Windows Dev Config/**,Wsl Comfort/**,src/Wsl Comfort/**git mvto kebab-case. File contents unchanged. Signed top-levelinstall.ps1s still carry their Authenticode signature block;src/copies remain unsigned.CI is unaffected:
.github/workflows/ci.ymlreads paths frommanifest.ymldynamically and does not hard-code any directory name. The two renamed flows aremanual_test: trueso they don't run in CI anyway.No script or
.csfile inside the moved directories references its parent directory by name — all PowerShell scripts use$PSScriptRootandcomfort-shell-bootstrap.shis self-relative. Verified by grep.Verification
Windows Dev Config/,Wsl Comfort/,Windows%20Dev%20Config,Wsl%20Comfort,".\Windows Dev Config,".\Wsl Comfortreturns no matches. The only remainingWindows Dev ConfigandWSL Comfortstrings are in human prose (the README section heading, the feature description paragraphs, and a Troubleshooting bullet — all naming the product, not the path).windows-dev-config/install.ps1andwsl-comfort/install.ps1still carry the# SIG # Begin signature blockAuthenticode block, while thesrc/...copies remain unsigned. The 12 git renames detect at100%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.mdplaceholder 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
docs/src-vs-signed, README "Repo layout: signed vs source" section) — open againstmain. The section in Docs: explain src/ vs the signed top-level copies in README #8 cites the current spaced paths in its 4-column table; whichever of these two PRs merges second will need a trivial rebase that re-tables the rows under the new kebab-case names. Both PRs are functionally independent — they touch different parts ofREADME.mdand no other files in common.