Skip to content

Latest commit

 

History

History
67 lines (51 loc) · 4.48 KB

CONTRIBUTING.md

File metadata and controls

67 lines (51 loc) · 4.48 KB

Contributing to Mewdeko

We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:

  • Reporting a bug
  • Discussing the current state of the code
  • Submitting a fix
  • Proposing new features
  • Becoming a maintainer

We develop with Github.

We use github to host code, to track issues and feature requests, as well as accept pull requests.

We use Github Flow.

All changes happen through pull requests. Pull requests are the best way to propose changes to the codebase (we use Github Flow). We actively welcome your pull requests:

  1. Fork the repo and create your branch from main.
  2. If you've changed APIs, update the documentation.
  3. Ensure the test suite passes.
  4. Make sure your code is properly formatted.
  5. Issue that pull request!

Side-note: You can contribute directly from GitHub, too.

If you're not already familiar with it, GitHub has powerful code-editing and submission workflows integrated, for quick fixes and changes.

  • Hit the ✏️ "Edit" button on any source file in this repo, and you'll be brought to an in-browser editor through which you can modify the code.
  • Underneath the edit box, you'll see a box to set up a commit.
  • Fill in the description of your changes - what they do, what they impact, any justifications as needed. If you can convey it well in a short description, do so - but if you use the extended description box, be detailed.
  • Finally, you will want to start a pull request. This will automatically fork, commit your changes to your fork, and begin your PR submission.
  • You shouldn't have to change anything here if you've already detailed it in the commit. Submit your PR, and we'll look it over!
  • Be sure to allow changes to your PR from contributors. We will be able to fix issues on-the-fly, that way.

Any contributions you make will be under the AGPLv3 License

In short, when you submit code changes, your submissions are understood to be under the same AGPLv3 License that covers the project. In short, this means:

  • You MUST provide source code, or a valid link to YOUR copy of the repo, WITH any changes you make, except for your personal configuration, credentials and tokens, and databases, of course.
  • Using the Fork feature from Github makes this easy and nearly automatic - just make sure that you do not forget to commit your changes to Github.
  • Substantial code changes do not count as your personal configuration. If you need to keep secrets, such as API access tokens, please put them in the creds file, and access them from there.
  • If Mewdeko is deployed on a Discord server, a link to your source repo MUST be provided on the server in some fashion - ideally, in a rules/join topics channel, as well as in a bot command like .source or .about for visibility. (We will have a place for that in the configuration.)

Feel free to contact the maintainers if that's a concern.

Report bugs using Github's issues

We use GitHub issues to track public bugs. Report a bug by opening a new issue - it's that easy!

Write bug reports with detail, background, and sample code where applicable.

Include information about where Mewdeko is running - OS, system specs, versions, and environment where applicable. Attach logs, screenshots, and anything else you can provide that indicates the issue clearly and presents a way to troubleshoot the issue.

Great Bug Reports tend to have:

  • A quick summary and/or background
  • Steps to reproduce
    • Be specific!
    • Give sample code, logs, system/environment details, etc. if you can.
  • What you expected would happen
  • What actually happens
  • Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)

People love thorough bug reports. I'm not even kidding.

Make sure to read through what you're sending us, first! If any sensitive or identifying information is in a log or screenshot, please redact it clearly if possible.

Use a consistent coding style.

Mewdeko is not just held together by jelly beans, sticky tape and string. For all our sakes, please ensure that your code style is consistent, and matches with ours. [TODO: document this more]

License

By contributing, you agree that your contributions will be licensed under the AGPLv3 License.