Use a `.cake` folder by default instead of a `tools` folder
- Dominant language
- C#
- Stars
- 4.2k
- Forks
- 778
- Avg merge
- 1h 15m
- Merged PRs (30d)
- 19
Description
> Tracking improvement originally from discussion https://github.com/cake-build/cake/discussions/2979 targeting Cake v2.0
As we all know, Cake uses a folder for downloading and extracting NuGet packages (and other things), and by default it uses a `./tools` folder.
There a couple of (small) issues I've seen because of that:
1. **Adding Cake to existing projects** (any language/platform)
`./tools` is a [common enough name that some projects use for other purposes](https://github.com/cake-build/website/issues/468) (even internal to the project) and when introducing Cake to existing projects that already define a `./tools` folder, one needs to be careful to ensure Cake won't touch that folder and will use a different folder instead, which is not as straightforward as changing the `cake.config` as sometimes that means [adapting bootstrappers that don't honor what's set in the `cake.config`](https://github.com/cake-build/resources/issues/84).
2. **Adding Cake to new projects** (.NET-specific)
When starting a new project, it's common for devs to use the default [`VisualStudio.gitignore`](https://github.com/github/gitignore/blob/6eff882467cbde7b4e293b4dd6abd7685fc67844/VisualStudio.gitignore) on GitHub. The good news is that [this .gitignore already brings a couple of lines specific to Cake](https://github.com/github/gitignore/blob/6eff882467cbde7b4e293b4dd6abd7685fc67844/VisualStudio.gitignore#L318-L320). The bad news is that [they are commented out](https://github.com/github/gitignore/blob/6eff882467cbde7b4e293b4dd6abd7685fc67844/VisualStudio.gitignore#L318-L320), because having a `./tools` by default would be too broad of a rule.
If Cake started using a `.cake` folder (or similar), it would avoid the issues above as it's unlikely users would have a `.cake` folder for a different purpose other than using Cake, and it would be specific enough to be included in the [`VisualStudio.gitignore`](https://github.com/github/gitignore/blob/6eff882467cbde7b4e293b4dd6abd7685fc67844/VisualStudio.gitignore) template.
Contributor guide
Assessment
This issue has not been assessed yet.