2.1 KiB
Contributing to Rust IPFS
Welcome, and thank you for your interest in contributing to Rust IPFS. Issues and pull requests are encouraged. As we work through the efforts described in the approved IPFS Dev Grant, we're looking for help in the following
- Implementing endpoints and features not covered in the dev grant (See the README)
- Tests and CI for existing functionality
- Examples
- Documentation
First Principles
- Keep the build time small
- Aim for high (but not absolute) code coverage in testing
Target Build
Rust IPFS will always target the current stable version of Rust that is released. Our CI/CD tests will reflect this. See instructions here on how to install the rust toolchain.
Compilation is slow, help!
We are still actively developing Rust IPFS, and as such compilation + linking times will vary and in many cases, worsen. This can be mitigated locally by installing the lld
linker using your system's package manager.
For example, on Debian systems:
sudo apt install lld
Then in your ~/.cargo/config
file:
[build]
rustflags = ["-C", "link-arg=-fuse-ld=lld"]
Including this in the project root would cause the compiler to error out on systems that don't have lld
installed, so we have not checked this into source yet.
Contributing
We welcome all forms of contribution. Please open issues and PRs for:
- Reporting Bugs
- Suggesting Enhancements
- Adding new tests
- Adding new functionality
- Documentation-only updates
Style
- Git Commit Messages should lean towards Conventional Commits but will not be enforced
- Rust code should conform to
rustfmt
andclippy
before push, as the CI will catch errors there
Security
If you have discovered a security vulnerability, please open an issue. We'd like to handle things as transparently as possible. If you don't feel like this is prudent, please visit us on one of the chat channels via the badges in the README. One of the core contributors will be able to talk to you about the disclosure.