Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
You can contribute in many ways:
Report bugs at https://github.com/m1n0rm1n3r/Kolkra-NG/issues
If you are reporting a bug, please include detailed steps to reproduce the bug.
Look through the GitHub issues for bugs. Anything tagged with "bug" and "help wanted" is open to whoever wants to implement a fix for it.
Look through the GitHub issues for features. Anything tagged with "enhancement" and "help wanted" is open to whoever wants to implement it.
The best way to send feedback is to file an issue at https://github.com/m1n0rm1n3r/Kolkra-NG/issues.
If you are proposing a new feature:
- Explain in detail how it would work.
- Keep the scope as narrow as possible, to make it easier to implement.
- Remember that this is a volunteer-driven project, and that contributions are welcome!
Ready to contribute? Here's how to set up Kolkra-NG
for local development.
Please note this documentation assumes you already have poetry
and Git
installed and ready to go.
-
Fork the
Kolkra-NG
repo on GitHub. -
Clone your fork locally:
cd <directory_in_which_repo_should_be_created> git clone [email protected]:YOUR_NAME/Kolkra-NG.git
-
Now we need to install the environment. Navigate into the directory
cd Kolkra-NG
If you are using
pyenv
, select a version to use locally. (See installed versions withpyenv versions
) (Kolkra-NG was built for Python 3.10 or later.)pyenv local <x.y.z>
Then, install and activate the environment with:
poetry install poetry shell
-
Install pre-commit to run various checks at commit time:
poetry run pre-commit install
-
Create a branch for local development:
git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
-
When you're done making changes, check that your changes pass the linting checks.
make check
-
Test all features you added or changed in an isolated environment to help catch any bugs.
Create a configuration file at
config/default.toml
.config/.example.toml
provides a template and explanation for what fields you need to provide.You will also need to set up MongoDB, whether on your local machine or through a cloud provider like Atlas. If you have Docker installed on your machine, you can quickly spin up an ephemeral MongoDB instance with
make docker-mongo
.Finally, run the bot using
make start-bot
or build and run in Docker.[!NOTE] You can also set the
KOLKRA_NG_CONFIG
environment variable to use different config files in theconfig
directory. When building a Docker image, use the--build-arg CONFIG="foo"
flag to specify a config file. Don't include theconfig
folder name or.toml
extension--for example, setfoo
to use the config file atconfig/foo.toml
. -
Commit your changes and push your branch to GitHub:
git add . git commit -m "Your detailed description of your changes." git push origin name-of-your-bugfix-or-feature
[!NOTE] Contributors are strongly encouraged, but not required, to follow Conventional Commits formatting in your commit messages.
If you use Visual Studio Code (or VSCodium), you may find the Conventional Commits extension useful.
-
Submit a pull request through the GitHub website.