-
Notifications
You must be signed in to change notification settings - Fork 3
/
copier.yml
228 lines (185 loc) · 6.23 KB
/
copier.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
# ----------------------------------------------------------------------
# META
# ----------------------------------------------------------------------
_answers_file: .copier/project.yml
_jinja_extensions:
- copier_templates_extensions.TemplateExtensionLoader
- extensions/context.py:DjangoNextVersion
- extensions/context.py:SecretKey
_min_copier_version: "9.1.0"
_secret_questions:
- django_twc_ui_token
_subdirectory: src/django_twc_project
template_version:
default: "2024.51"
when: false
# ----------------------------------------------------------------------
# GENERAL
# ----------------------------------------------------------------------
project_name:
type: str
help: What is the name of the project?
default: "example-project"
module_name:
type: str
help: What is the name of the project's module?
default: "{{ project_name.lower() | replace('-', '_') | replace(' ', '_') | trim() }}"
docs_site_name:
type: str
help: What is the display name of the project? (for use in documentation)
default: "{{ project_name.title() | replace('-', ' ') | trim() }}"
author_name:
type: str
help: What is the name of the primary author/maintainer?
validator: "{% if author_name == '' %}You must provide an name.{% endif %}"
author_email:
type: str
help: What is the email of the primary author/maintainer?
validator: "{% if author_email == '' %}You must provide an email.{% endif %}"
github_owner:
type: str
help: Who is the GitHub owner?
validator: "{% if github_owner == '' %}You must provide an GitHub owner.{% endif %}"
github_repo:
type: str
help: What is the name of the GitHub repo?
default: "{{ project_name | trim() }}"
current_version:
type: str
help: What is the current version of the project?
default: "{{ '%Y.%-m' | strftime }}.1"
# ----------------------------------------------------------------------
# VERSIONS
# ----------------------------------------------------------------------
python_version:
type: str
help: Which version of Python should be used?
choices:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
default: "3.12"
django_version:
type: str
help: Which version of Django should be used?
choices:
"4.2 (LTS)": "4.2"
"5.0": "5.0"
"5.1": "5.1"
default: "5.1"
node_version:
type: str
help: Which version of Node.js should be used?
default: "20"
tailwindcss_version:
type: str
help: Which version of Tailwind CSS should be used?
default: "3.4.9"
playwright_version:
type: str
help: Which version of Playwright should be used?
default: "1.46.0"
# ----------------------------------------------------------------------
# DEPENDENCIES
# ----------------------------------------------------------------------
django_twc_ui_token:
type: str
help: What is the OAuth token for accessing the `westerveltco/django-twc-ui` repository?
default: ""
django_twc_ui_version:
type: str
help: Which version of `django-twc-ui` should be used?
default: "2024.8.27"
# ----------------------------------------------------------------------
# FLY.IO
# ----------------------------------------------------------------------
fly_app_name:
type: str
help: What is the name of the app on Fly.io?
default: "{{ module_name }}-{{ github_owner }}"
fly_primary_region:
type: str
help: What is the primary region for the app on Fly.io?
default: "atl"
domain_name:
type: str
help: What is the domain name of the app?
default: "{{ module_name }}.westervelt.com"
# ----------------------------------------------------------------------
# POSTGRES
# ----------------------------------------------------------------------
postgres_docker_image:
type: str
help: Which PostgreSQL Docker image should be used?
choices:
- "postgres"
- "postgis/postgis"
- "pgautoupgrade/pgautoupgrade"
default: "postgres"
postgres_docker_version:
type: str
help: Which version to use for the {{ postgres_docker_image }} image?
default: "15"
postgis_version:
when: "{{ postgres_docker_image == 'postgis/postgis' }}"
type: str
help: Which version of PostGIS should be used?
default: "3.4"
postgres_version:
type: str
default: "{% if postgres_docker_image == 'postgis/postgis' %}{{ postgres_docker_version }}-{{ postgis_version }}{% else %}{{ postgres_docker_version }}{% endif %}"
when: false
postgres_uri_scheme:
type: str
default: "{% if postgres_docker_image == 'postgis/postgis' %}postgis{% else %}postgres{% endif %}"
when: false
# ----------------------------------------------------------------------
# SENTRY
# ----------------------------------------------------------------------
sentry_project:
type: str
help: What is the name of the Sentry project?
default: "{{ project_name }}"
sentry_org:
type: str
help: What is the name of the Sentry organization?
default: "the-westervelt-company"
sentry_dsn:
type: str
help: What is the Sentry DSN URL?
# ----------------------------------------------------------------------
# FRONTEND
# ----------------------------------------------------------------------
include_vite:
type: bool
help: Include Vite as a frontend build tool?
default: false
# ----------------------------------------------------------------------
# EMAIL
# ----------------------------------------------------------------------
default_from_email:
type: str
help: What email should be used for the `DEFAULT_FROM_EMAIL` Django setting?
admin_email:
type: str
help: What email should be used as the destination for any admin emails?
# ----------------------------------------------------------------------
# MISC
# ----------------------------------------------------------------------
include_weasyprint:
type: bool
help: Install WeasyPrint system packages for creating PDFs?
default: false
use_r2:
type: bool
help: Use Cloudflare R2 as an alternative S3 storage backend?
default: false
# ----------------------------------------------------------------------
# POST GENERATION TASKS
# ----------------------------------------------------------------------
_tasks:
# run pre-commit after generation, pipe any errors to /dev/null since if a file is
# formatted, that exits with an error and we want to continue anyway
- "pre-commit run --all-files 2>/dev/null || echo 'Pre-commit run on all files.'"