This page is about contributing to Continuwuity. The development and code style guide pages may be of interest for you as well.
If you would like to work on an issue that is not assigned, preferably ask in the Matrix room first at #continuwuity:continuwuity.org, and comment on it.
Please review and follow the code style guide for formatting, linting, naming conventions, and other code standards.
Continuwuity uses pre-commit hooks to enforce various coding standards and catch common issues before they're committed. These checks include:
You can run these checks locally by installing prefligit:
Alternatively, you can use pre-commit:
These same checks are run in CI via the prefligit-checks workflow to ensure consistency. These must pass before the PR is merged.
Tests, compilation, and linting can be run with standard Cargo commands:
Continuwuity uses Complement for Matrix protocol compliance testing. Complement tests are run manually by developers, and documentation on how to run these tests locally is currently being developed.
If your changes are done to fix Matrix tests, please note that in your pull request. If more Complement tests start failing from your changes, please review the logs and determine if they're intended or not.
Sytest is currently unsupported.
Continuwuity's website uses mdbook and is deployed via CI using Cloudflare Pages
in the documentation.yml workflow file. All documentation is in the docs/
directory at the top level.
To build the documentation locally:
Install mdbook if you don't have it already:
Build the documentation:
The output of the mdbook generation is in public/. You can open the HTML files directly in your browser without needing a web server.
Continuwuity follows the Conventional Commits specification for commit messages. This provides a standardized format that makes the commit history more readable and enables automated tools to generate changelogs.
The basic structure is:
The allowed types for commits are:
fix: Bug fixesfeat: New featuresdocs: Documentation changesstyle: Changes that don't affect the meaning of the code (formatting, etc.)refactor: Code changes that neither fix bugs nor add featuresperf: Performance improvementstest: Adding or fixing testsbuild: Changes to the build system or dependenciesci: Changes to CI configurationchore: Other changes that don't modify source or test filesExamples:
The project uses the committed hook to validate commit messages in pre-commit. This ensures all commits follow the conventional format.
Please try to keep contributions to the Forgejo Instance. While the mirrors of continuwuity allow for pull/merge requests, there is no guarantee the maintainers will see them in a timely manner. Additionally, please mark WIP or unfinished or incomplete PRs as drafts. This prevents us from having to ping once in a while to double check the status of it, especially when the CI completed successfully and everything so it looks done.
Before submitting a pull request, please ensure:
Direct all PRs/MRs to the main branch.
By sending a pull request or patch, you are agreeing that your changes are allowed to be licenced under the Apache-2.0 licence and all of your conduct is in line with the Contributor's Covenant, and continuwuity's Code of Conduct.
Contribution by users who violate either of these code of conducts may not have their contributions accepted. This includes users who have been banned from continuwuity Matrix rooms for Code of Conduct violations.