Thank you for considering contributing to tonlib-rs! This project thrives on community collaboration, and we welcome your ideas, bug reports, and improvements. Follow these guidelines to make your contributions smooth and effective.
If you encounter any issues, check the existing issues first to avoid duplicates. If none match your bug, create a new issue with:
- A clear, descriptive title.
- Steps to reproduce the bug.
- Expected and actual results.
- Your environment details (e.g., OS, Rust version, etc.).
Contributions to the codebase are highly appreciated. Here's how to start:
-
Start by forking the main repository to your GitHub account. You can do this via the "Fork" button on the repository page.
-
Clone your forked repository locally:
-
Create a Feature Branch:
-
Follow the coding standards mentioned below while making changes.
-
Add or update tests to cover your changes.
-
Ensure your changes are thoroughly tested.
-
Before creating a PR, run the test suite to ensure everything works as expected:
NOTE: that some tests in
tonlib-client
are dependent on the current load of TON blockchain and may be flacky if the load is relatively high. It is recommended to run tests withcargo nextest run --retries=10
NOTE: one may want to use custom ton configs. To do so simply use env var:
export TONLIB_MAINNET_CONF=~/path/to/your/config/files/custom_mainnet_config.json
export TONLIB_TESTNET_CONF=~/path/to/your/config/files/custom_testnet_config.json
- Create a Pull Request (PR). Provide a brief description of the changes made.
Do you have an idea for a new feature? Open an issue and clearly explain:
- The problem it solves.
- How it improves the project.
- Any implementation suggestions.
- Rust Style: Follow the Rust API Guidelines.
- Formatting: Use cargo +nightly fmt to format your code before submitting.
- Linting: Run cargo clippy and address warnings to maintain code quality.
If you have any questions, feel free to:
- Open a discussion.
- Contact the maintainers by tagging them in an issue.
We appreciate your time and effort in making tonlib-rs better! 🚀