Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unclutter the root directory #1249

Closed
thomaslevesque opened this issue Nov 2, 2017 · 5 comments
Closed

Unclutter the root directory #1249

thomaslevesque opened this issue Nov 2, 2017 · 5 comments

Comments

@thomaslevesque
Copy link
Member

The root of the repo is currently a bit of a mess. There are 23 files in the root directory, and every new script we add makes it worse (especially for .csx scripts which need a .cmd bootstrapper). We should probably try to move some of these files to a subdirectory.

Files and directories that could be moved to a subdirectory:

  • build.csx: the .cmd bootstrapper probably needs to stay at the root, but we can move the actual script
  • prepare_release.csx: same reasoning
  • .githubtoken*: should probably be next to prepare_release.csx
  • deploy.ps1: only called by AppVeyor, we don't need it at the root
  • packages.config and packages/*: it's only used by csx scripts (all projects now use the package cache and PackageReference)
  • .nuget/*: the projects no longer need it, it's only used by scripts
  • FakeItEasy.Dictionary.xml, FakeItEasy.ruleset, FakeItEasy.snk: referenced from Directory.Build.props, which can specify a subdirectory
  • mkdocs.yml: according to the documentation, we could move it to the docs folder

Files that should stay at the root:

  • .editorconfig, .gitignore, .gitattributes: apply to the whole repo
  • .mailmap: Git looks for it at the root of the repo
  • appveyor.yml: AppVeyor looks for it at the root of the repo
  • build.cmd: should be easily accessible
  • CONTRIBUTING.md: it's the standard location on GitHub
  • Directory.Build.props: applies to projects in all subdirectories
  • FakeItEasy.sln: should be easily accessible, and the root is the only directory that contains all projects
  • GitVersion.yml: it has to be in the working directory, which is the root during build. Putting it somewhere else would be awkward
  • global.json: applies to projects in all subdirectories
  • Licence.txt: it's the standard location on GitHub
  • README.md: standard location on GitHub

Unsure:

  • how_to_build.md: could probably be in a subdirectory, but it needs to be easy to find. If we move it, we could add a link in the README.
  • prepare_release.cmd: it's more convenient to have it at the root, but on the other hand, it's only used by the maintainers, and we don't need it very often.

(files and folders with a * are excluded from source control, so they wouldn't appear in the GitHub repo anyway)

@blairconrad
Copy link
Member

Great analysis, @thomaslevesque. All the "sure" stuff sounds good to me. As far as prepare_release.cmd goes, I don't mind it moving to be slightly less convenient.

I'm torn on how_to_build.md. We already link to it from CONTRIBUTING.md, but I do like it being easy to find. I've checked out other repos and looked for a file with a similar name. Perhaps we should leave it.

@thomaslevesque
Copy link
Member Author

Let's leave how_to_build.md where it is then, at least for now. We can revisit later.

@blairconrad
Copy link
Member

I updated the path to prepare_release.cmd in #1240.

@thomaslevesque
Copy link
Member Author

I updated the path to prepare_release.cmd in #1240.

👍

@blairconrad
Copy link
Member

This change has been released as part of FakeItEasy 4.2.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants