Skip to content
This repository has been archived by the owner on Jun 21, 2021. It is now read-only.

Latest commit

 

History

History
59 lines (44 loc) · 1.84 KB

CONTRIBUTING.md

File metadata and controls

59 lines (44 loc) · 1.84 KB

Cloud Haskell contributor guidelines

See README for how to build from source.

The Cloud Haskell project is made up of a number of independent repositories. The cloud-haskell repository includes all other repositories as submodules, for convenience. If you want to hack on any Cloud Haskell package and contribute changes upstream, don't checkout each individual repository in its own directory. Instead (if you have hub installed),

$ hub clone --recursive haskell-distributed/cloud-haskell

which clones all Cloud Haskell repositories as submodules inside the cloud-haskell directory. You can then hack on each submodule as usual, committing as usual.

Contributing changes upstream

Contributing changes to a single package

To contribute changes, you first need a fork:

$ cd <submodule-dir>
$ hub fork

Then publish branches and submit pull requests as usual:

$ stack test        # Check that everything works before proceeding.
$ git push --set-upstream <username> <branch-name>
$ hub pull-request

Contributing related changes to multiple packages

The vast majority of changes only affect a single package. But some changes break compatibility with older versions of dependent packages. In this case, you need to submit a separate PR for each package. Before doing so,

$ stack test

in the top-level repository to test that all packages work together. Submit the PR's as in the single package case, then additionally follow the same instructions to submit a PR against the cloud-haskell repository. This PR should normally only include updates to the submodule references. The objective of this PR is to kick the CI system into providing evidence to the Cloud Haskell maintainers that with all the related changes to each package the whole does compile and pass tests.