You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: contributing.md
+47-4
Original file line number
Diff line number
Diff line change
@@ -163,11 +163,11 @@ Just write any labels that apply to your program, including any not listed here
163
163
164
164
### File Naming
165
165
166
-
Please use all lowercase and separate words with underscores for your program names. If additional resources are needed, such as image files, a directory with the same name and suffixed with `docs` can be included. e.g. the files associated with a program for a Sample and Hold function would look as follows:
166
+
Please use all lowercase and separate words with underscores for your program names. If additional resources are needed, such as image files, a directory with the same name and suffixed with `-docs` can be included. e.g. the files associated with a program for a Sample and Hold function would look as follows:
167
167
168
168
```
169
169
software/contrib
170
-
├── sample_and_hold_docs
170
+
├── sample_and_hold-docs
171
171
│ └── sample_and_hold.png
172
172
├── sample_and_hold.md
173
173
├── sample_and_hold.py
@@ -177,12 +177,33 @@ software/contrib
177
177
178
178
In order to be included in the menu a program needs to meet a few additional requirements. See [menu.md](/software/contrib/menu.md) for details. Programs are not required to participate in the menu in order to be accepted, but it is nice.
179
179
180
-
181
-
182
180
## Firmware
183
181
184
182
Changes to firmware code must adhere to more stringent requirements than other changes. Firmware changes have the potential to affect every contrib script that runs on the EuroPi as well as the behavior of the module itself. Any change must have a clear and well described purpose and be well tested against the suite of available contrib scripts.
185
183
184
+
### Experimental Libraries
185
+
186
+
User-contributed additions to the firmware, or code intended to be re-used across multiple `contrib` programs should be placed in the `firmware/experimental` directory:
187
+
188
+
```
189
+
software/
190
+
├── contrib/
191
+
│ └── my_program.md
192
+
│ └── my_program.py
193
+
│ └── your_program.md
194
+
├── firmware/
195
+
│ ├── experimental/
196
+
│ | └── my_common_features.py
197
+
```
198
+
199
+
Examples of user-contributed shared code include:
200
+
- lockable knobs
201
+
- screensaver
202
+
- quantizer
203
+
- euclidean pattern generator
204
+
- custom fonts
205
+
- additional `math` and `random` functions included in standard Python3, but not included in MicroPython
206
+
186
207
### Code Style Requirements
187
208
188
209
The main codebase (all code outside of `/software/contrib` and `/tests/contrib`) follows the Black style format and a GitHub CI Action will verify if this is the case for
@@ -203,3 +224,25 @@ Changes or additions to public API functions must include the corresponding upda
203
224
### Testing
204
225
205
226
All existing automated tests must pass. An effort should be made to improve the test suite by adding tests for new or changed functionality.
227
+
228
+
## License
229
+
230
+
All software in this repository is licensed under the [Apache 2.0](/software/LICENSE) license. In accordance with this license, please place a comment block at the top of your Python source files indicating the copyright and license:
231
+
232
+
```python
233
+
# Copyright [YEAR] Allen Synthesis
234
+
#
235
+
# Licensed under the Apache License, Version 2.0 (the "License");
236
+
# you may not use this file except in compliance with the License.
237
+
# You may obtain a copy of the License at
238
+
#
239
+
# http://www.apache.org/licenses/LICENSE-2.0
240
+
#
241
+
# Unless required by applicable law or agreed to in writing, software
242
+
# distributed under the License is distributed on an "AS IS" BASIS,
243
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
244
+
# See the License for the specific language governing permissions and
245
+
# limitations under the License.
246
+
```
247
+
248
+
Please substitute `[YEAR]` with the current year, e.g. `2025`.
0 commit comments