Skip to main content

Contributing

Being an open source project, contributing to the development of LibreNote is encouraged and welcomed. Contribution may be made, predominantly, by two means: submitting and participating in issues on the LibreNote GitHub repository; or submitting code changes throguh pull requests.

Issues#

Interacting with issues is the most basic form of contributing to the LibreNote project, and may be done on the aforementioned issues section of the LibreNote GitHub repository. While submitting an issue is easy, there are several expectations made of those who wish to submit.

  1. Firstly, it is important to remember that issues should not be treated as requests for technical support, which should be handled, especially for the main bot instance, via the LibreNote Discord Server. Issues are a way for LibreNote hosts and developers to exchange information about technical or code problems.
  2. Issues are not a place to offer futile feature suggestions. While issues can be used by developers to discuss missing features and how the developer aims to implement them, or even an envisioned route of implementation by a creative contributor, it is expected that this will be more verbose and rich than simply stating 'Please add $X feature', where X is a pointless and stupid idea that should be ignored.
  3. Issues should be comprehensive and offer an abundance of detail regarding the problem. Unless the issue is outstandingly trivial, it is expected that an issue will be submitted with, at least: a sequence of steps that need to be taken to reproduce the error; a stack trace; and, optionally, a list or assumption of which parts of the LibreNote codebase have caused this issue to transpire (e.g. 'the play command', 'the Spotify utility').
  4. Expectations also exist for individuals who are commenting on issues. Primarily, if a solution is found, the person who has found it should give an in-depth explanation of how the solution works, rather than ignoring the issue or, worse, commenting a single vague message such as 'I solved it'. While this cannot be enforced, it will hopefully stick in the conscience of inconsiderate fools who decide to treasure the secrets of the Discord music bot to themselves. In addition to this specific example of respect, it is important to note that civility is universally expected in the conduct of LibreNote business.

Pull Requests#

Pull requests are a way for developers to present their own changes to a source tree, which they wish to be merged to that source tree. There do not exist many restrictions on what a developer may wish contribute, as all pull requests are reviewed individually; however, some general expectations are made

  1. Firstly, the code must comply with the nature of the project. LibreNote is a configurable Discord music bot, requests which fail to recognise this and attempt to add irrelevant features will be rejected.
  2. Code style is to be kept consistent within the project. ESLint exists for this purpose.
  3. Requests which modify or add major portions of or to the codebase should be discussed during the development process of such changes. This can be done in the LibreNote Discord server or in the LibreNote GitHub issues section.
  4. It is recommended that first-time LibreNote contributors submit small changes to existing features for their first few commits. Beginning with small changes allows for easier accustomisation with the codebase and avoids, early, what may have become future obstructions.