3.2 KiB
Contribution guidelines
First off, thank you for contributing to tlsn.
If your contribution is not straightforward, please first discuss the change you wish to make by creating a new issue.
Reporting issues
Before reporting an issue on the issue tracker, please check that it has not already been reported by searching for some related keywords.
Pull requests
Try to do one pull request per change.
Disclaimer: While we appreciate all contributions, we do not prioritize minor grammatical fixes (e.g., correcting typos, rewording sentences) unless they significantly improve clarity in technical documentation. These contributions can be a distraction for the team. If you notice a grammatical error, please let us know on our Discord.
Linting
Before a Pull Request (PR) can be merged, the Continuous Integration (CI) pipeline automatically lints all code using Clippy. To ensure your code is free of linting issues before creating a PR, run the following command:
cargo clippy --all-features --all-targets -- -D warnings
This command will lint your code with all features and targets enabled, and treat any warnings as errors, ensuring that your code meets the required standards.
Style
This repository includes a rustfmt.toml file with custom formatting settings that are automatically validated by CI before any Pull Requests (PRs) can be merged. To ensure your code adheres to these standards, format your code using this configuration before submitting a PR. We strongly recommend enabling auto format on save to streamline this process. In Visual Studio Code (VSCode), you can enable this feature by turning on editor.formatOnSave in the settings.
Capitalization and punctuation
Both line comments and doc comments must be capitalized. Each sentence must end with a period.
// This is a line comment.
Avoid overly long comment lines
We recommend a soft comment line length limit of 100 characters. Authors should aim to wrap lines before hitting this limit, but it is not a hard limit. Comments are allowed to exceed this limit.
Verbs in function description
Comments describing a function usually start with a verb. That verb must use the third-person present tense, e.g. "Creates", "Sets", "Computes".
Function arguments
Comments for function arguments must adhere to this pattern:
/// Performs a certain computation. Any other description of the function.
///
/// # Arguments
///
/// * `arg1` - The first argument.
/// * `arg2` - The second argument.
pub fn compute(...
Cargo.lock
We check in Cargo.lock to ensure reproducible builds. It must be updated whenever Cargo.toml changes. The TLSNotary team typically updates Cargo.lock in a separate commit after dependency changes.
If you want to hide Cargo.lock changes from your local git diff, run:
git update-index --assume-unchanged Cargo.lock
To start tracking changes again:
git update-index --no-assume-unchanged Cargo.lock
⚠️ Note: This only affects your local view. The file is still tracked in the repository and will be checked and used in CI.