chore: declutter repo root (fold dev-tools, untrack .claude)#44
Merged
Conversation
The root showed 11 folders, several of them overlapping or not meant to be in the repo at all. Tidied to a conventional, self-explanatory layout (9 folders), without touching anything packaging/tooling requires at the root. - Untrack .claude/ (local Claude Code config) and gitignore it — it was never meant to be versioned (it's the perennial "modified settings.local.json"). - Dissolve dev-tools/ (which duplicated examples/ and scripts/): - dev-tools/examples/* -> examples/ (incl. examples/repair/) - dev-tools/tools/ -> scripts/tools/ (diagnostic utilities) - dev-tools/build-scripts/* -> scripts/ (build_package/test_coverage .bat) - dev-tools/CODECOV_SETUP.md -> scripts/ - dev-tools/README.md -> dropped (was stale — described removed files) - MANIFEST.in: drop the now-dead `prune dev-tools`. - scripts/README.md: document the absorbed tools/ subdir + build/CI helpers. All moves are git renames (history preserved). No code touched; no references to the old paths remain (CI, pre-commit, pyproject, docs all clean). Tests pass. Root is now: .github/ src/ tests/ docs/ examples/ ml/ docker/ scripts/ assets/ (assets/ stays — the README/PyPI banner depends on its absolute main URL). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.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.
Landing on the repo, the root showed 11 folders + 11 files — several overlapping or not meant to be versioned. This tidies it to a conventional, self-explanatory layout (9 folders) without moving anything the Python/GitHub tooling needs at the root.
Before → after (root folders)
. github · assets · **dev-tools** · docker · docs · examples · ml · scripts · src · tests · **.claude**→.github · assets · docker · docs · examples · ml · scripts · src · testsChanges
.claude/(local Claude Code config) + gitignore it — it was never meant to be in the repo (the perennial "modifiedsettings.local.json").dev-tools/, which duplicatedexamples/andscripts/:dev-tools/examples/*→examples/(incl.examples/repair/)dev-tools/tools/→scripts/tools/(diagnostic utilities)dev-tools/build-scripts/*+CODECOV_SETUP.md→scripts/dev-tools/README.md→ dropped (it was stale — described files that no longer exist)MANIFEST.in: drop the now-deadprune dev-tools.scripts/README.md: document the absorbedtools/subdir + build/CI helpers.Why these and not others
Everything else at the root is mandatory by convention —
pyproject.toml,README,LICENSE,CHANGELOG,CITATION,MANIFEST.in, the dotfiles (.flake8can't move — flake8 doesn't read pyproject;.pre-commit-config,.readthedocs), and.github/src/tests/docs.assets/stays at the root on purpose: the README banner uses an absolute…/main/assets/…URL that the already-published PyPI page renders — moving it would break that banner.Safety
All moves are git renames (history preserved). No code touched. No references to the old paths remain anywhere (CI, pre-commit, pyproject, docs — all grepped clean). Local sanity tests pass; the required wheel-smoke gate will confirm packaging.
🤖 Generated with Claude Code