Contribution guidelines: Difference between revisions
No edit summary |
m →Use of generative AI: Remove redundant "or" |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 10: | Line 10: | ||
Git commit messages should follow the [https://www.conventionalcommits.org/en/v1.0.0/ Conventional Commits] conventions. Here are a few well-formed examples: | Git commit messages should follow the [https://www.conventionalcommits.org/en/v1.0.0/ Conventional Commits] conventions. Here are a few well-formed examples: | ||
* <code>chore: flatten imports and re-export `Cpu`</code> | * <code>chore(core): flatten imports and re-export `Cpu`</code> | ||
* <code>fix(docs): use `align` instead of `style`</code> | * <code>fix(docs): use `align` instead of `style`</code> | ||
| Line 19: | Line 19: | ||
All comments should make use of [[wikipedia:Markdown|Markdown]] formatting where applicable. | All comments should make use of [[wikipedia:Markdown|Markdown]] formatting where applicable. | ||
If referencing external sources for | If referencing external sources for implementation details (e.g. [https://switchbrew.org/wiki/Main_Page SwitchBrew], source code of emulators such as [https://git.greemdev.net/projects/Ryubing Ryujinx] or [https://git.eden-emu.dev/eden-emu/eden Eden]), include a comment linking to the source referenced. | ||
Check for [https://doc.rust-lang.org/stable/clippy/index.html Clippy] lints by running <code>cargo clippy</code> and apply suggested changes, if any. If there is good reason not to apply a suggestion, add an <code>#[allow(clippy::some_lint)]</code> attribute to the smallest possible region (e.g. the function containing the offending code), along with a comment explaining your decision. | Check for [https://doc.rust-lang.org/stable/clippy/index.html Clippy] lints by running <code>cargo clippy</code> and apply suggested changes, if any. If there is good reason not to apply a suggestion, add an <code>#[allow(clippy::some_lint)]</code> attribute to the smallest possible region (e.g. the function containing the offending code), along with a comment explaining your decision. | ||
| Line 34: | Line 34: | ||
== Documentation guideines == | == Documentation guideines == | ||
Lint all Markdown documentation with <code>[https://github.com/davidanson/markdownlint markdownlint]</code> before committing. | Lint all Markdown documentation with <code>[https://github.com/davidanson/markdownlint markdownlint]</code> before committing. | ||
== Use of generative AI == | |||
Generative AI of any form may not be used in any way at any step of the process of modifying or creating any data included in any contributions, nor may any existing data published as part of the jabara project as a whole be used as input to any generative AI model. This includes, nonexhaustively, using; or enabling, assisting in, or otherwise encouraging the use of; generative AI to, in any capacity: | |||
* Generate, autocomplete, or suggest all or part of any content consisting of source code; documentation, commit messages, or other prose; assets; translations or other internationalization data; or any other content under the copyright of the jabara Team; | |||
* Access any part of the jabara codebase or its online documentation or wiki; | |||
* Execute; or generate, autocomplete, or suggest for execution; any shell commands that interface with the jabara codebase in any way; | |||
* Locate and/or analyze, summarize, or otherwise ingest any external resources with the intent to gather any kind of information or data for use in further modification or analysis of jabara; or | |||
* Generate, autocomplete, or suggest all or part of any communication with the jabara Team or the maintainers of the jabara project, including titles, descriptions, or attached files of pull requests or issues or their comments; or messages regarding jabara sent in the jabara Matrix room. | |||
Violating any of the above will result in a permanent ban from contributing to any part of jabara. | |||
Latest revision as of 06:10, 12 September 2026
This page contains guidelines for contributing code to jabara.
Source access
jabara is developed on a dedicated Forgejo instance hosted at git.zelda.sr. The primary repository is located under the jabara organization at jabara/jabara.
Submitting changes
Contributions to jabara should be made as pull requests to the repository. (Guidelines TBD)
Git guidelines
Git commit messages should follow the Conventional Commits conventions. Here are a few well-formed examples:
chore(core): flatten imports and re-export `Cpu`fix(docs): use `align` instead of `style`
After the first release, changelogs will be kept as described by Keep a Changelog in the file `CHANGELOG.md`.
Code guidelines
All comments should make use of Markdown formatting where applicable.
If referencing external sources for implementation details (e.g. SwitchBrew, source code of emulators such as Ryujinx or Eden), include a comment linking to the source referenced.
Check for Clippy lints by running cargo clippy and apply suggested changes, if any. If there is good reason not to apply a suggestion, add an #[allow(clippy::some_lint)] attribute to the smallest possible region (e.g. the function containing the offending code), along with a comment explaining your decision.
Ensure that all code has been formatted with Rustfmt before committing. This can be done by configuring your editor to autoformat on save or by running cargo fmt.
You can disallow local commits with clippy lints or formatting issues by creating a pre-commit hook. Create an executable file at .git/hooks/pre-commit with the following content:
#!/bin/sh cargo clippy -- -Dwarnings cargo fmt --check
Documentation guideines
Lint all Markdown documentation with markdownlint before committing.
Use of generative AI
Generative AI of any form may not be used in any way at any step of the process of modifying or creating any data included in any contributions, nor may any existing data published as part of the jabara project as a whole be used as input to any generative AI model. This includes, nonexhaustively, using; or enabling, assisting in, or otherwise encouraging the use of; generative AI to, in any capacity:
- Generate, autocomplete, or suggest all or part of any content consisting of source code; documentation, commit messages, or other prose; assets; translations or other internationalization data; or any other content under the copyright of the jabara Team;
- Access any part of the jabara codebase or its online documentation or wiki;
- Execute; or generate, autocomplete, or suggest for execution; any shell commands that interface with the jabara codebase in any way;
- Locate and/or analyze, summarize, or otherwise ingest any external resources with the intent to gather any kind of information or data for use in further modification or analysis of jabara; or
- Generate, autocomplete, or suggest all or part of any communication with the jabara Team or the maintainers of the jabara project, including titles, descriptions, or attached files of pull requests or issues or their comments; or messages regarding jabara sent in the jabara Matrix room.
Violating any of the above will result in a permanent ban from contributing to any part of jabara.