# Community guide ## Getting involved ### Social media contacts The ledgerSMB project monitors the following social media platforms. Feel free to reach out with any questions. * [Matrix (for users *and* developers)](https://app.element.io/#/room/#ledgersmb:matrix.org) * [Mastodon](https://mastodon.social/@LedgerSMB) * [Facebook](https://www.facebook.com/LedgerSMB) * [X (Twitter)](https://x.com/LedgerSMB) * [LinkedIn](https://www.linkedin.com/groups/13199807/) * [reddit](https://www.reddit.com/r/LedgerSMB/) ### Contributing There are lots of ways to donate back to the LedgerSMB community, even if you can't write computer programs. If you are able to help out with the development, there's [a page explaining how to get started](https://ledgersmb.org/content/getting-started-developing). There are a few other types of contributions we have immediate need for: * **Support the developers** - If you're not able to contribute to the project by doing any of the activities below, please support the developers by becoming a GitHub sponsor. See [https://github.com/ledgersmb/LedgerSMB](https://github.com/ledgersmb/LedgerSMB) for details. * **Help others** - If you have time to get involved in discussions on the mailing lists, IRC channel or other places, supporting other users with the workflows you have worked out to work for you, that just might help them get their challenges resolved quickly. * **Testimonials** - sending your [testimonial](https://ledgersmb.org/testimonials) could help others. Maybe they can help you next time! * **Chat** - The main user and developer chat channel is [Matrix](https://ledgersmb.org/content/chat-support-matrix) * **Mail list** - While more activity happens on [Matrix](https://ledgersmb.org/content/chat-support-matrix), the [LedgerSMB mail lists](https://lists.ledgersmb.org/mailman3/lists/) are also available. * **Provide feedback** - Help the developers understand your needs. * **Specific Needs** - if you like or dislike specific things, or you have a specific need, let us know through [the mailing lists](https://lists.ledgersmb.org/) or [Matrix](https://app.element.io/#/room/#ledgersmb:matrix.org)! Alternatively, you could start a [discussion on GitHub](https://github.com/ledgersmb/LedgerSMB/discussions/categories/ideas) * **Bug reports** - Please report your problems in the [GitHub issue tracker](https://github.com/ledgersmb/LedgerSMB/issues) or ask your questions in a [GitHub Discussion (Q&A category)](https://github.com/ledgersmb/LedgerSMB/discussions/categories/q-a). * **Localization** * **Translations** - We always need help with translations. More details about translations can be found [on ledgersmb.org](https://ledgersmb.org/community-guide/community-guide/translating). * **Tax rules** - While we cover a lot of countries we can always use review and additions to our tax functions. * **Chart of accounts** - Our chart of accounts are localized and always in need of review and improvements. See [the examples](https://github.com/ledgersmb/LedgerSMB/tree/master/locale/coa). * **Regulatory compliance** - While we cover a lot of countries we can always use review and additions to our to our regulatory compliance functions. * **Documentation** * **FAQ items** - We can always use additions or updates to our [FAQ](https://ledgersmb.org/faq) pages. * **Book content** - The [user focused book](https://book.ledgersmb.org) needs non-technical writers to review and improve it. * **Release Testing** - Help preventing regressions by testing your processes with any release candidates announced on the [LedgerSMB mail lists](https://lists.ledgersmb.org/mailman3/lists/). If we catch regressions before a release, we can fix the problems and prevent problematic releases. Also, there are too many possible combinations of Perl, PostgreSQL, Apache, etc versions to test them all; just maybe, your combination is a problematic one. *If so: we want to know about it before the release!* * **Create a package for your O/S** - You can help our market penetration by developing a package for your favorite distribution or operating system, if one isn't already available. * **Code** - Of course we can always use developers especially with skills in Perl, PostgreSQL, HTML, JavaScript and Gherkin. * **Code & Project Standards** - An index of project's important architecture and coding decisions is located in the [Architecture Design Records index](doc/adr/index.md). ### Use of AI The project allows the use of AI (Artificial Intelligence) and LLMs (Large Language Models). It has adopted [the Linux Foundation policy](https://www.linuxfoundation.org/legal/generative-ai) guiding the use of this class of tools, which states: > Open source software has thrived for decades based on the merits of each > technical contribution that is openly contributed to and reviewed by > community peers. Development and review of code generated by AI tools > should be treated no differently. > > Code or other content generated in whole or in part using AI tools can be > contributed to Linux Foundation projects. However, there are some unique > considerations related to AI generated content that developers should > factor into their contributions. > > 1. Contributors should ensure that the terms and conditions of the generative > AI tool do not place any contractual restrictions on how the tool’s output > can be used that are inconsistent with the project’s open source software > license, the project’s intellectual property policies, or the Open Source > Definition. > > 2. If any pre-existing copyrighted materials (including pre-existing open > source code) authored or owned by third parties are included in the AI > tool’s output, prior to contributing such output to the project, the > Contributor should confirm that they have have permission from the third > party owners–such as the form of an open source license or public domain > declaration that complies with the project’s licensing policies–to use and > modify such pre-existing materials and contribute them to the project. > Additionally, the contributor should provide notice and attribution of > such third party rights, along with information about the applicable license > terms, with their contribution. Where the policy says `Linux Foundation projects`, the text is meant to similarly apply to the `LedgerSMB project`. ## Community roles Our definition of "the LedgerSMB community" is to include * Those who create the software: Developers, Testers, Translators, Packagers * Those who help others use (set up, configure, administer) it: Contributors * Those who test and use the software: Users This definition does not include those who sell LedgerSMB (related) services and products (in their role of seller). If we include those in the definition, we'd call that "the LedgerSMB ecosystem". A listing of people who have contributed at one time or another can be found in the [CONTRIBUTORS file](https://github.com/ledgersmb/LedgerSMB/blob/master/CONTRIBUTORS) and [the git repository history](https://github.com/ledgersmb/LedgerSMB/graphs/contributors) which may be found in the source distribution archive or in the source code repository. Unfortunately, GitHub does not provide insight into contributors to issues and discussions. ### Code Of conduct Within this community, we live by [the Ubuntu code of conduct](https://launchpad.net/codeofconduct/2.0). Apart from that, there are no restrictions on becoming a community member in the role of any of the above. Simply join one of the mailing lists and submit your contributions. ### Governance The project is governed by the Core Team. Each Core Team member (in his or her role of Core Team member) is expected - regardless of employment or commercial interests - to act on behalf of the shared interests we have as a project. New Core Team membership is extended to community members by invitation from the Core Team. Core Team membership is terminated upon stepping down of the Core Team member, e.g. if he or she feels no longer being up to the task. Core Team members differ from other community members in that they have assumed the additional responsibility to nurture the project and look after the community's shared interests. So far, these have been understood to be a number of things: * Decide where and how we want project resources to be hosted (thinking of the project website http://ledgersmb.org/, etc) * If and when people would like to make large contributions, we discuss if and under what terms we want to accept those. Examples of contributions meant under this item include industry customizations and in-house parallel developments being submitted for (re)integration * Vote on whether releases are ready to be released or not The [current members of the core team](https://github.com/orgs/ledgersmb/teams/core) are listed on GitHub.