Here's how to do it, to the extent that I have thought about it so far:
Bug reports
Please open bug reports in the GitHub issue tracker for the corresponding component:
Code contributions
I you have found and fixed obvious bugs in a BASIC Engine software component, please submit a pull request in the corresponding GitHub repository. Make sure to include a concise and precise title and description for each of the commits, preceded by a tag indicating the affected platform, subsystem and/or file. (e.g. "sdl: audio: ...", "basic: EDIT: ...")
If you have a contribution that is not a straightforward bug fix (e.g. a new feature), please start a thread about it in this forum first.
Test cases
If you want to contribute test cases for the automated test suite, please do so using a pull request on the basicengine-firmware
repository. Place the test case in the tests/eb
directory. Each test consists of a BASIC program <program>.bas
and a corresponding expected output <program>.run
. Keep test cases small to make it easier to narrow down issues in case of test failures.
[TODO: There are no test cases for the graphical features yet; I still have to think about how to best handle those.]
Demos and modules
If you have a nifty demo, game, enhancement or something similar that should come with every BASIC Engine, post it here and I'll include it in the demos repository. For inclusion, the item in question must include a README
file, all files required to run it, and you must make clear somewhere which open-source license it is released under. The ideal BASIC Engine demo is small (it's included in every build), easy to understand and shows off the mighty power of the BASIC Engine system.
Localization
If you want to contribute new or amend existing translations for supported languages, add them to the corresponding files in the po
directory in the basicengine-firmware
repository and send a pull request as described above.
If you want to add support for additional languages, please post here first. There are a lot of languages, and every additional one increases the size of the system and the effort required to maintain it. Languages that are not listed in https://en.wikipedia.org/wiki/List_of_languages_by_total_number_of_speakers#Ethnologue_(2023) for having at least 45 million speakers need not apply. If the language requires additional infrastructure that is not already in EB (for instance RTL, combining characters, additional glyphs), you are required to provide them first.
If you have ideas on how to best handle other types of contributions, please comment.