The canonical contribution workflow is maintained in the repository root CONTRIBUTING.md. It covers preparing a fork, branching from master, building and testing, staging focused changes, and opening a pull request.
Before contributing, also review the relevant sections of this developer guide: