First off, thank you for considering contributing to ipld-schema.
If your contribution is not straightforward, please first discuss the change you wish to make by creating a new issue before making the change.
Before reporting an issue on the issue tracker, please check that it has not already been reported by searching for some related keywords.
Try to do one pull request per change.
Update the changes you have made in CHANGELOG file under the Unreleased section.
Add the changes of your pull request to one of the following subsections, depending on the types of changes defined by Keep a changelog:
Addedfor new features.Changedfor changes in existing functionality.Deprecatedfor soon-to-be removed features.Removedfor now removed features.Fixedfor any bug fixes.Securityin case of vulnerabilities.
If the required subsection does not exist yet under Unreleased, create it!
This is no different than other Rust projects.
git clone https://github.com/mx00s/ipld-schema
cd ipld-schema
cargo buildTests depend on the pinned gitsubmodule. Be sure to run the following before expecting cargo test to work.
git submodule update --init --recursiveConsult the convenient cargo aliases in config.toml. During development/testing cargo w can watch for regressions. Before pushing changes cargo p can catch many regressions that may otherwise arise during continuous integration (CI).