diff --git a/.github/DEVELOPER_CERTIFICATE_OF_ORIGIN.md b/.github/DEVELOPER_CERTIFICATE_OF_ORIGIN.md new file mode 100644 index 00000000..7f32c076 --- /dev/null +++ b/.github/DEVELOPER_CERTIFICATE_OF_ORIGIN.md @@ -0,0 +1,36 @@ +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +1 Letterman Drive +Suite D4700 +San Francisco, CA, 94129 + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I +have the right to submit it under the open source license +indicated in the file; or + +(b) The contribution is based upon previous work that, to the best +of my knowledge, is covered under an appropriate open source +license and I have the right under that license to submit that +work with modifications, whether created in whole or in part +by me, under the same open source license (unless I am +permitted to submit under a different license), as indicated +in the file; or + +(c) The contribution was provided directly to me by some other +person who certified (a), (b) or (c) and I have not modified +it. + +(d) I understand and agree that this project and the contribution +are public and that a record of the contribution (including all +personal information I submit with it, including my sign-off) is +maintained indefinitely and may be redistributed consistent with +this project or the open source license(s) involved. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c8e212d1..2619a184 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,43 +1,87 @@ -# Mainsail Contributing Guide +# Contributing to Mainsail -Hi! I'm really excited that you are interested in contributing to Mainsail. Before submitting your contribution, please make sure to take a moment and read through the following guidelines: +If you are reading this document right now, you are probably considering contributing to Mainsail and making it better +than it is today. Thank you for taking that initiative! Before submitting your contribution, please take a moment and +make sure to read through our contribution guidelines: -- [Code of Conduct](https://github.com/meteyou/mainsail/.github/CODE_OF_CONDUCT.md) -- [Issue Reporting Guidelines](#issue-reporting-guidelines) -- [Pull Request Guidelines](#pull-request-guidelines) +- [Code of Conduct](https://github.com/mainsail-crew/mainsail/blob/develop/.github/CODE_OF_CONDUCT.md) +- [Question or Problem?](#question) +- [Issues and Bugs](#issue) +- [Feature Requests](#feature) +- [Submission Guidelines](#submit) + - [Submit an Issue](#submit-issue) + - [Submit a Pull Request](#submit-pr) +- [Financial Contributions](#financial) +- [Credits](https://docs.mainsail.xyz/credits) -## Issue Reporting Guidelines +## Got a Question or Problem? -- Use [https://github.com/meteyou/mainsail/issues](https://github.com/meteyou/mainsail/issues) to create new issues. +Please do not open issues for general support questions. We want to keep GitHub issues for bug reports and feature +requests. Instead, please visit us on [Discord](https://discord.gg/mainsail) to ask support-related questions. -## Pull Request Guidelines +Our Discord server is a much better place to ask general support questions. We take a right to close issues that are +requests for generic support and redirect people to Discord. -- The `master` branch is just a snapshot of the latest stable release. All development should be done in dedicated branches. **Do not submit PRs against the `master` branch.** +## Found a Bug? -- Checkout a topic branch from the relevant branch, e.g. `develop`, and merge back against that branch. +If you find a bug in the source code or think that Mainsail is behaving odd in specific situations, you can help us fix +that issue by [submitting an issue](https://github.com/mainsail-crew/mainsail/issues/new?assignees=&labels=%E2%9A%A1+Type%3A+Bug&template=bug_report.yml). +If you have already fixed that issue, you can [submit a Pull Request](#submit-pr) with that fix. -- It's OK to have multiple small commits as you work on the PR - GitHub will automatically squash it before merging. +## Missing a Feature? -- If adding a new feature: +You can request a new feature by [submitting a feature request](https://github.com/mainsail-crew/mainsail/issues/new?assignees=&labels=%F0%9F%92%A1+Type%3A+FR&template=feature_request.yml). +If you would like to implement a new feature, please consider the scope of the change. For changes requiring a lot of +work, it's best to outline a proposal first so it can be discussed. This allows us to prevent wasted time and effort and +discuss how to bring your proposed feature into the project. - - Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it. +## Submission Guidelines -- If fixing bug: - - If you are resolving a special issue, add `(fix #xxxx[,#xxxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `update entities encoding/decoding (fix #3899)`. - - Provide a detailed description of the bug in the PR. Live demo preferred. - - Add appropriate test coverage if applicable. +### Submitting an Issue -## Committing Changes +Before you submit an issue, please search the issue tracker if your problem may already exist. If a ticket already +covers your case, please refrain from opening a new ticket and instead contribute to the existing ticket. If you submit +an issue, please provide the required information and reproduction steps. We need those to be able to try and reproduce +the bug ourselves. Without proper instructions on how to reproduce the issue you are encountering, we might be unable to +fix a possible bug. -Commit messages should follow the [commit message convention](https://www.conventionalcommits.org/en/v1.0.0/) so that changelogs can be automatically generated. +### Submitting a Pull Request (PR) -## Financial Contribution +Before you work on a PR and submit it, please pay attention to the following guidelines: -As a pure community-driven project without major corporate backing, we also welcome financial contributions via Patreon and OpenCollective. +1. Search the [pull requests](https://github.com/mainsail-crew/mainsail/pulls) for an open or closed PR related to your submission. + - You don't want to duplicate existing efforts or work on something unlikely to be merged into the project. +2. Do not submit PRs against the `master` branch. PRs need to be submitted against the `develop` branch. +3. Follow our [Code Standards](https://docs.mainsail.xyz/development/code-standards) +4. If there is an issue describing the problem you're fixing or a discussion of a feature you are implementing, make sure to link it in the PRs body. -- [Become a supporter on Patreon](https://patreon.com/meteyou) -- [One-time donation via Ko-Fi](https://ko-fi.com/mainsail) + - You can also add `fix #` or `fixes #` in the PR body where `` is the issue id. + - Example PR title, body and sign-off: -## Credits + ``` + fix: incorrect handling of click event -Thank you to all the people who have already contributed to Mainsail! + This PR will fix #123. + Fixes correct handling of click event when button [X] is clicked. + + Signed-off-by: James Smith + ``` + +5. If there is no issue describing the problem, create an issue first or provide a sufficient description of the bug/feature. + - Screenshots of your changes are welcome if you worked on UI-related code. +6. The title of the PR should follow the [commit message convention](https://www.conventionalcommits.org/en/v1.0.0/). + - If the PR consists of multiple commits, it's good practice to follow the convention, although that is not necessarily required. + - Upon merging, we will squash all commits of the PR into a single commit for a clean history and release changelogs. +7. Please sign off each commit and your PR. It must contain your real name and a current email address (see example in item 4). + - The sign-off should follow this pattern: `Signed-off-by: My Name ` + - The sign-off certifies that you agree with the [developer certificate of origin](https://github.com/mainsail-crew/mainsail/.github/DEVELOPER_CERTIFICATE_OF_ORIGIN.md). + - If you provide a translation, a sign-off is not necessarily required. +8. When opening a pull request, keep `Allow edits and access to secrets by maintainers` **enabled**. + +## Financial Contribution + +As a community-driven project without primary corporate backing, we always welcome financial contributions. A list of +options we offer to support us financially can be seen below. + +- [Become a supporter on Patreon](https://patreon.com/meteyou) (monthly recurring) +- [Donation via Ko-Fi](https://ko-fi.com/mainsail) (one time / monthly recurring)