-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathschema.yaml
170 lines (146 loc) · 5.69 KB
/
schema.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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# yaml-language-server: $schema=https://json-schema.org/draft/2020-12/schema#
$schema: "https://json-schema.org/draft/2020-12/schema"
description: >-
You will be prompted to fill these values when you create your Python project.
If you do not know what value to provide, press _enter_ and a default value will be used.
additionalProperties: false
properties:
full_name:
type: string
default: "Ove Arup"
description: Your full name.
email:
type: string
default: "ove.arup@arup.com"
description: Your email address.
github_username:
type: string
default: "ovearup"
description: Your GitHub username.
project_title:
type: string
default: "Python Boilerplate"
description: The headline name of your new Python package project. This is used in documentation, so spaces and any characters are fine here.
repository_owner:
type: string
default: "arup-group"
description: >-
The owner of your GitHub repository (referring to e.g., https://github.com/arup-group).
For personal projects, this can be your GitHub username. For Arup projects, this should be `arup-group`.
repository_name:
type: string
default: "Lower case equivalent of [project_title] with spaces and dashes (-) replaced with an underscore (_)"
description: >-
Name of the github repository where you will host your project (i.e., https://github.com/[repository_owner]/[repository_name]).
Typically, it is the "slugified" version of `project_title` (e.g. `My software package` -> `my_software_package`) or an abbreviation derived from it (e.g., `Population Activity Modeller` -> `pam`).
package_name:
type: string
default: "[repository_name]"
description: >-
The name given to your package. This should be available on package indexing sites (PyPI/Anaconda).
Typically, it is the same as the `module_name`, but if your preferred package name is already taken online, you should rename your project entirely or prepend the package name with e.g. `arup-`.
For example, our PAM package is `pam` when imported in Python, but `cml-pam` online.
module_name:
type: string
default: "[repository_name]"
description: >-
The name given to your module in Python.
This should be available on package indexing sites (PyPI/Anaconda).
Typically, it is the same as the `package_name`, assuming your preferred package name is available online.
This is what users will call when importing your module in Python (e.g. `import pam`, even though the package name is `cml-pam`) or when calling your package from the command line (if you have a command line interface).
project_short_description:
type: string
default: "Python Boilerplate contains all the boilerplate you need to create a Python package."
description: A 1-sentence description of what your Python package does.
upload_pip_package:
type: array
description: Whether to upload the package to PyPI on each release of a new version.
uniqueItems: true
minItems: 1
items: &n_y_items
type: string
default: "n"
enum: ["y", "n"]
upload_conda_package:
type: array
description: Whether to upload the package to an Anaconda channel on each release of a new version.
uniqueItems: true
minItems: 1
items: *n_y_items
upload_aws_image:
type: array
description: >-
Whether to upload the repository to AWS to build and host a Docker image of the project.
NOTE: requires CodeBuild configuration to be updated separately to have the image built on AWS.
uniqueItems: true
minItems: 1
items: *n_y_items
conda_channel:
type: string
default: "[github_username]"
description: Your anaconda channel, if releases of your package will be uploaded to Anaconda.
create_jupyter_notebook_directory:
type: array
description: >-
If "y", an `examples` directory will be created in which Jupyter Notebooks can be saved.
These notebooks will be rendered in the documentation and will be formatted with Black and Ruff.
uniqueItems: true
minItems: 1
items: &y_n_items
type: string
default: "y"
enum: ["y", "n"]
check_docs_accessibility_in_CI:
type: array
description: >-
If "y", documentation will be checked for accessibility, according to the WCAG2AA standard, in Pull Request CI.
uniqueItems: true
minItems: 1
items: *n_y_items
command_line_interface:
type: array
description: If "y", a `cli.py` file will be included in the project source code based on using `Click`.
uniqueItems: true
minItems: 1
items: *y_n_items
create_author_file:
type: array
description: If "y", create an authors file.
uniqueItems: true
minItems: 1
items: *n_y_items
create_docker_file:
type: array
description: If "y", create an Dockerfile which allows a Docker image of the project to be built in a linux virtual machine with a basic Bash entry-point.
uniqueItems: true
minItems: 1
items: *y_n_items
project_visibility:
type: array
description: Set the project visibility on GitHub.
uniqueItems: true
minItems: 1
items:
type: string
default: "internal"
enum:
- internal
- public
open_source_license:
type: array
description: Choose a [license](https://choosealicense.com/).
uniqueItems: true
minItems: 1
items:
type: string
default: "Not open source"
enum:
- MIT license
- BSD license
- ISC license
- Apache Software License 2.0
- GNU General Public License v3
- Not open source
__prompts__:
type: object
description: Long descriptions for all properties.