Skip to content

Commit 5a12d9a

Browse files
committed
Move all template repo files into their own directory, and add ADR describing why
1 parent b8430e7 commit 5a12d9a

File tree

21 files changed

+1402
-0
lines changed

21 files changed

+1402
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# 001 - Use separate repo files for template
2+
3+
## Status
4+
5+
Accepted 2024-02-25
6+
7+
## Context
8+
9+
When I originally conceived of this template repository I was just going to have the template files be this actual repo's files, and I started out the implementation that way.
10+
When writing the script that would be used to initialize the template repository with the user's module information, I had to keep track of which files in the repo would need to be updated (e.g. the new module directory and files, License, Changelog, Smoke Tests).
11+
This had me questioning if it would be better to use totally separate files for all of the template files, and just have the initialization script overwrite all of the repo contents with the template files.
12+
13+
## Options Considered
14+
15+
1. Use this repo's files as the template files.
16+
1. Use separate files for all of the template files (stored in their own directory).
17+
18+
### Use this repo's files as the template files
19+
20+
Pros:
21+
22+
- Fewer files in the repo.
23+
- Possibly less confusing to the user, as it follows the traditional idea of what a template repository is.
24+
e.g. the files in the repo are where you start from.
25+
26+
### Use separate files for all of the template files
27+
28+
Pros:
29+
30+
- Less logic in the initialization script, as we don't need to keep track of which files are for the repo and which are for the template.
31+
- Easier to update the template files without having to worry about the repo files.
32+
- Less confusion about which files are for this repo vs. which are for the template.
33+
- Allows users to more easily create their own custom template files easier if they want to; they just need to update the template files.
34+
- Allows for the PowerShell module to be able to create new starter repos, rather than having to clone the GitHub repo template.
35+
36+
Cons:
37+
38+
- Some of the files in the repo will be duplicates of the template files, so when adding new feature/changes we may need to remember to make them in both this repo and the template files.
39+
40+
## Decision
41+
42+
We are going to store all of the template repo files in their own directory, as this separation makes it easier to understand which files are part of the template and which are part of this repo.
43+
It also allows for users to more easily create their own custom templates, and to use the PowerShell module to create new starter repos.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// This is the configuration file for cspell (code spell check).
2+
// Use this to define legitimate words not in the dictionary, and other words the spellcheck should ignore.
3+
// Used by the streetsidesoftware.code-spell-checker VS Code extension and streetsidesoftware/cspell-action@v3 GitHub Action.
4+
// For more information on configuration, see https://cspell.org/configuration/.
5+
{
6+
"version": "0.2",
7+
"language": "en",
8+
"ignorePaths": [],
9+
"words": [
10+
"hashtable"
11+
],
12+
"ignoreWords": [
13+
"CICD", // Continuous Integration/Continuous Deployment
14+
"CODEOWNERS", // GitHub CODEOWNERS
15+
"Codespace", // GitHub Codespaces
16+
"Codespaces", // GitHub Codespaces
17+
"devcontainer", // VS Code devcontainer
18+
"Hmmss", // Time format
19+
"jacoco", // Java code coverage
20+
"madrapps", // GitHub action author
21+
"nunit", // .NET unit testing framework
22+
"pwsh" // PowerShell Core
23+
]
24+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# This file should only include settings that affect the physical contents of the file, not just how it appears in an editor.
2+
# Do not include personal preference presentation settings like a tab's `indent_size` in this file; those should be specified
3+
# in a parent .editorconfig file outside of the repository.
4+
# v1.7
5+
6+
# Ensure that personal preference presentation settings can be inherited from parent .editorconfig files.
7+
root = false
8+
9+
#### Core EditorConfig Options ####
10+
11+
[*]
12+
charset = utf-8
13+
indent_style = tab
14+
end_of_line = crlf
15+
insert_final_newline = true
16+
trim_trailing_whitespace = true
17+
18+
# For some languages, the number of spaces used for indentation matters.
19+
[*.{tf,md,psd1,pp,yml,yaml}]
20+
indent_style = space
21+
indent_size = 2
22+
23+
24+
#### .NET Coding Conventions ####
25+
26+
csharp_style_namespace_declarations = file_scoped
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Use 'git add --renormalize .' to apply rules to files added to the repository before the .gitattributes file.
2+
3+
# Have GitHub language statistics ignore generated files.
4+
# More info: https://github.com/github-linguist/linguist/blob/master/docs/overrides.md
5+
#generatedFiles/** linguist-generated=true
6+
7+
# Auto detect text files and perform LF normalization.
8+
* text=auto
9+
10+
# Documents
11+
*.doc diff=astextplain
12+
*.DOC diff=astextplain
13+
*.docx diff=astextplain
14+
*.DOCX diff=astextplain
15+
*.dot diff=astextplain
16+
*.DOT diff=astextplain
17+
*.pdf diff=astextplain
18+
*.PDF diff=astextplain
19+
*.rtf diff=astextplain
20+
*.RTF diff=astextplain
21+
*.md text
22+
*.adoc text
23+
*.textile text
24+
*.mustache text
25+
*.csv text
26+
*.tab text
27+
*.tsv text
28+
*.sql text
29+
30+
# Graphics
31+
*.png binary
32+
*.jpg binary
33+
*.jpeg binary
34+
*.gif binary
35+
*.tif binary
36+
*.tiff binary
37+
*.ico binary
38+
# SVG treated as an asset (binary) by default, but it's actually just a text file so let's treat it as one.
39+
#*.svg binary
40+
*.svg text
41+
*.eps binary
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto-include these teams/individuals on all PRs.
2+
* @deadlydog
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# These are supported funding model platforms
2+
3+
github: deadlydog # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4+
patreon: # Replace with a single Patreon username
5+
open_collective: # Replace with a single Open Collective username
6+
ko_fi: # Replace with a single Ko-fi username
7+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
liberapay: # Replace with a single Liberapay username
10+
issuehunt: # Replace with a single IssueHunt username
11+
otechie: # Replace with a single Otechie username
12+
custom: https://www.paypal.me/deadlydogDan # Replace with a single custom sponsorship URL
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: 'Bug: '
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
### Describe the bug
11+
12+
A clear and concise description of what the bug is.
13+
14+
### To reproduce
15+
16+
Steps to reproduce the behavior:
17+
18+
1. Go to '...'
19+
2. Click on '....'
20+
3. Scroll down to '....'
21+
4. See error
22+
23+
### Expected behavior
24+
25+
A clear and concise description of what you expected to happen.
26+
27+
### Logs or error messages
28+
29+
Any error messages or logs that might help us understand the problem.
30+
31+
### Screenshots
32+
33+
If applicable, add screenshots or video to help explain the problem.
34+
35+
### System information
36+
37+
Information about the system you are using where the bug occurred.
38+
39+
- Device: (e.g. PC, iPhone6)
40+
- OS and version: (e.g. Windows 10, iOS 12.3.1)
41+
- Browser and version: (e.g. Chrome 121.0.6167.140, Safari 12.1.2)
42+
- Application version: (e.g. 1.0.6)
43+
44+
### Additional information
45+
46+
Add any other context or information about the problem or how to reproduce it.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: 'Feature Request: '
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
### Is your feature request related to a problem? Please describe
11+
12+
A clear and concise description of what the problem is.
13+
Ex. I'm always frustrated when '...'.
14+
Ex. I want to be able to '...'.
15+
16+
### Describe the solution you'd like
17+
18+
A clear and concise description of what you want to happen.
19+
20+
### Describe alternatives you've considered
21+
22+
A clear and concise description of any alternative solutions or features you've considered.
23+
24+
### Additional context
25+
26+
Add any other context or screenshots about the feature request here.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
### Summary
2+
3+
A brief summary of the change this PR brings.
4+
5+
### Checklist
6+
7+
Addresses issue #ISSUE_NUMBER (if applicable)
8+
9+
- [ ] Tests have been added for this code change (if applicable)
10+
- [ ] Docs have been added or updated (if applicable)
11+
- [ ] Code format follows the project style
12+
- [ ] All new and existing tests passed
13+
14+
### What type of changes does this PR include
15+
16+
- [ ] Bug fix (non-breaking change which fixes an issue)
17+
- [ ] New feature (non-breaking change which adds functionality)
18+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
19+
20+
### Describe the change in more detail
21+
22+
What is the motivation for this change? What does it do? What problem does it solve?
23+
24+
### Additional information
25+
26+
Any other information about the change, such as screenshots, example flows, etc.

0 commit comments

Comments
 (0)