This repository has been archived by the owner on Nov 27, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
/
copier.yaml
154 lines (132 loc) · 5.35 KB
/
copier.yaml
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
_subdirectory: template_content
_templates_suffix: ".jinja"
use_deprecated_template:
type: bool
help: |
WARNING: This template has been deprecated. Beaker for Algorand Smart Contract development is no longer supported.
Please use Algorand Python instead. The Algorand Python template can be found at https://github.com/algorandfoundation/algokit-python-template
Do you still want to proceed with using the deprecated template?
default: no
_tasks:
- '"{{ python_path if python_path else _copier_python }}" post_init.py {{ use_deprecated_template }} {{ use_workspace }}'
use_workspace:
type: bool
when: false # never prompted to user explicitly, expect CLI to auto-fill
help: Automatically filled by AlgoKit CLI (>1.13.x) - passes the --workspace/--no-workspace flag's value, can be used to reason whether this template is currently being instantiated as part of a workspace or not.
default: no
# Auto determined by algokit-cli from v1.11.3 to allow execution of python script
# in binary mode.
python_path:
type: str
help: Path to the sys.executable.
when: false
# questions
project_name:
type: str
help: Name for this project.
placeholder: "algorand-app"
when: "{{ use_deprecated_template }}"
author_name:
type: str
help: Package author name
placeholder: "Your Name"
default: "Your Name"
when: "{{ use_deprecated_template }}"
author_email:
type: str
help: Package author email
placeholder: "[email protected]"
default: "[email protected]"
when: "{{ use_deprecated_template }}"
contract_name:
type: str
help: Name of the default smart contract app.
placeholder: "hello_world"
default: "hello_world"
validator: >-
{% if not (contract_name | regex_search('^[a-z]+(?:_[a-z]+)*$')) %}
contract_name must be formatted in snake case.
{% endif %}
when: "{{ use_deprecated_template }}"
preset_name:
type: str
help: Name of the template preset to use.
choices:
"Starter - for a simpler starting point ideal for prototyping": "starter"
"Production - for confidently deploying to MainNet and/or more complex projects": "production"
"Custom - for tailoring the template output to your needs": "custom"
default: "starter"
when: "{{ use_deprecated_template }}"
deployment_language:
type: str
help: What programming language do you want to use for your contract deployment code?
choices:
Python: "python"
TypeScript: "typescript"
default: "python"
when: "{{ use_deprecated_template }}"
ide_vscode:
type: bool
help: Do you want to add VSCode configuration?
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
default: yes
code_tours:
type: bool
help: Do you want to add interactive VSCode CodeTour walkthrough?
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
default: yes
ide_jetbrains:
type: bool
help: Do you want to add JetBrains configuration (primarily optimized for PyCharm CE)?
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
default: "{{ 'yes' if preset_name == 'production' else 'no' }}"
when: "{{ use_deprecated_template }}"
use_python_pytest:
type: bool
when: "{{ deployment_language == 'python' and preset_name == 'custom' and use_deprecated_template }}"
help: Do you want to include unit tests (via pytest)?
default: "{{ 'yes' if preset_name == 'production' and deployment_language == 'python' else 'no' }}"
use_typescript_jest:
type: bool
when: "{{ deployment_language == 'typescript' and preset_name == 'custom' and use_deprecated_template }}"
help: Do you want to include unit tests (via jest)?
default: "{{ 'yes' if preset_name == 'production' and deployment_language == 'typescript' else 'no' }}"
python_linter:
type: str
help: Do you want to use a Python linter?
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
choices:
Ruff: "ruff"
Flake8: "flake8"
No thanks: "none"
default: "{{ 'ruff' if preset_name == 'production' else 'none' }}"
use_python_black:
type: bool
help: Do you want to use a Python formatter (via Black)?
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
default: "{{ 'yes' if preset_name == 'production' else 'no' }}"
use_python_mypy:
type: bool
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
help: Do you want to use a Python type checker (via mypy)?
default: "{{ 'yes' if preset_name == 'production' else 'no' }}"
use_python_pip_audit:
type: bool
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
help: Do you want to include Python dependency vulnerability scanning (via pip-audit)?
default: "{{ 'yes' if preset_name == 'production' else 'no' }}"
use_github_actions:
type: bool
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
help: Do you want to include Github Actions workflows for build and testnet deployment?
default: "{{ 'yes' if preset_name == 'production' else 'no' }}"
use_pre_commit:
type: bool
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
help: Do you want to include pre-commit for linting, type checking and formatting?
default: "{{ 'yes' if preset_name == 'production' else 'no' }}"
use_dispenser:
type: bool
when: "{{ preset_name == 'custom' and use_deprecated_template }}"
help: Do you want to fund your deployment account using an optional dispenser account?
default: "{{ 'yes' if preset_name == 'production' else 'no' }}"