@@ -20,6 +20,10 @@ the following resources are a great place to start:
2020
2121We support a collection of templates, organized in this way:
2222
23+ - the root folder contains templates in common use, to help people get started
24+ with popular programming languages and technologies. These define a meaningful
25+ set of rules to help get started, and ensure you are not committing
26+ unimportant files into your repository
2327- [ ` Global ` ] ( ./Global ) contains templates for various editors, tools and
2428 operating systems that can be used in different situations. It is recommended
2529 that you either [ add these to your global template] ( https://help.github.com/articles/ignoring-files/#create-a-global-gitignore )
@@ -30,6 +34,23 @@ We support a collection of templates, organized in this way:
3034 templates. These should be added to your project-specific templates when you
3135 decide to adopt the framework or tool.
3236
37+ ## What makes a good template?
38+
39+ A template should contain a set of rules to help Git repositories work with a
40+ specific programming language, framework, tool or environment.
41+
42+ If it's not possible to curate a small set of useful rules for this situation,
43+ then the template is not a good fit for this collection.
44+
45+ If a template is mostly a list of files installed by a particular version of
46+ some software (e.g. a PHP framework), it should live under the ` ecosystem `
47+ directory. See [ versioned templates] ( ) for a guide to this setup.
48+
49+ Please also understand that we can’t list every tool that ever existed.
50+ Our aim is to curate a collection of the _ most common and helpful_ templates,
51+ not to make sure we cover every project possible. If we choose not to
52+ include your language, tool, or project, it’s not because it’s not awesome.
53+
3354## Contributing guidelines
3455
3556We’d love for you to help us improve this project. To help us keep this collection
@@ -60,15 +81,49 @@ high quality, we request that contributions adhere to the following guidelines.
6081In general, the more you can do to help us understand the change you’re making,
6182the more likely we’ll be to accept your contribution quickly.
6283
63- If a template is mostly a list of files installed by a particular version of
64- some software (e.g. a PHP framework) then it's brittle and probably no more
65- helpful than a simple ` ls ` . If it's not possible to curate a small set of
66- useful rules, then the template might not be a good fit for this collection.
84+ ## Versioned templates
6785
68- Please also understand that we can’t list every tool that ever existed.
69- Our aim is to curate a collection of the _ most common and helpful_ templates,
70- not to make sure we cover every project possible. If we choose not to
71- include your language, tool, or project, it’s not because it’s not awesome.
86+ Some templates can change greatly between versions, and if you wish to contribute
87+ to this repository we need to follow this specific flow:
88+
89+ - the template at the root should be the current supported version
90+ - the template at the root should not have a version in the filename (i.e.
91+ "evergreen")
92+ - previous versions of templates should live under ` ecosystem `
93+ - previous versions of the template should embed the version in the filename,
94+ for readability
95+
96+ This helps ensure users get the latest version (because they'll use whatever is
97+ at the root) but helps maintainers support older versions still in the wild.
98+
99+ ## Specialized templates
100+
101+ If you have a template that you would like to contribute, but it isn't quite
102+ mainstream, please consider adding this to the ` ecosystem ` directory under a
103+ folder that best suits where it belongs.
104+
105+ The rules in your specialized template should be specific to the framework or
106+ tool, and any additional templates should be mentioned in a comment in the
107+ header of the template
108+
109+ For example
110+
111+ ```
112+ # gitignore template for InforCRM (formerly SalesLogix)
113+ #
114+ # Recommended: VisualStudio.gitignore
115+
116+ # Ignore model files that are auto-generated
117+ ModelIndex.xml
118+ ExportedFiles.xml
119+
120+ # Ignore deployment files
121+ [Mm]odel/[Dd]eployment
122+
123+ # Force include portal SupportFiles
124+ !Model/Portal/*/SupportFiles/[Bb]in/
125+ !Model/Portal/PortalTemplates/*/SupportFiles/[Bb]in
126+ ```
72127
73128## Contributing workflow
74129
0 commit comments