Hi! First of all, thanks for your interest in contributing. Help in various forms is almost always needed and in any case appreciated.
BLIMP is written in Python 3.9 with the discordpy commands framework. For dependency management we use Nix wrapping poetry. Complex input beyond the capabilities of discordpy is done using TOML, which is the least painful to write markup format i could come up with that has Python bindings.
If you want to add a new feature, please start out by creating an issue and opening a discussion about it. Pull Requests coming out of the blue won't be accepted. If you want to pick up an existing issue for implementation, leave a note there that you're doing so so that no one else starts on the same work as you do accidentally. Then, you can start actually working on it:
You will need git in any case. You probably also want a visual git interface, e.g. that of Visual Studio Code (which is a fine code editor too).
You also need a Discord bot token, which you can get from the Applications page of your Discord account. You might also need to create a server to test your bot in.
poetry shell, depending on what you installed earlier. This might take a while, so grab yourself a cup of tea.
blimp.cfg.examplewith your text editor and update at the very least the value of
discord.tokenwith the bot token you got from Discord. Without this, your bot won't be able to log in. You might also want to change other values. Save the file as
blimp.cfgin the same folder.
python -m blimpto start the bot for the first time. It will automatically create the needed database.
git checkout -b just-write-stuff-into-here. This allows you to develop your feature concurrently to others working on other things.
Ctrl-Cin your development shell to stop the bot and repeat
python -m blimpto restart it with your changes applied.
black blimpin your development shell to format the codebase, followed by
pylint blimpto see potential issues with your code. Once happy with the results, stage your changes with git:
git add src/file1 src/file2 src/file_nand commit them:
git commit. Please don't alter the version number of BLIMP, we'll change it after the merge is done.
git push origin the-previously-picked-branch-name. Then, go to the pull requests page and click the button that should appear to create a pull request based on your recently pushed branch. Write a short summary of your changes; if you think something you've done warrants extra explanations, do so.
git checkout mainand pulling from the main repository:
git pull upstream main.