This guide will serve as a reference for contributing to the Deephaven.
Deephaven uses the Forking Workflow. In this workflow, the deephaven/deephaven-core repository contains a minimum number of branches, and development work happens in user-forked repositories.
To learn more see:
To get started quickly:
- Navigate to https://github.com/deephaven/deephaven-core.
- Click
Forkin the top right corner. git clone git@github.com:<username>/deephaven-core.git- Commit changes to your own branches in your forked repository.
For details on working with git on GitHub, see:
- Cloning a repository
- Connecting to GitHub with SSH
- Troubleshooting cloning errors
- Pushing commits to a remote repository
Forked repositories do not have access to the same tokens/secrets as the deephaven/deephaven-core repository, so GitHub actions will fail. To disable GitHub actions in your forked repository, go to "Actions" -> "Disable Actions" in your forked repository settings (https://github.com/<username>/deephaven-core/settings/actions).
Over time, forks will get out of sync with the upstream repository. To stay up to date, either:
- Navigate to
https://github.com/<username>/deephaven-coreand click onFetch upstream, or - Follow these directions on Syncing A Fork.
For instructions on building and running, see Build and launch from source.
Pull requests can be created through the GitHub website or through the GitHub CLI.
Follow the directions in Creating A Pull Request From A Fork.
- Install GitHub command line tool.
- On the command line, cd into your checked-out fork/branch.
gh pr create -f -w- Use
deephaven/deephaven-coreas the base repository. - Use
<username>/deephaven-coreas the repository to push to.
- Use
- Your changes should automatically get pushed, and then a new pull request with your changes should open up in your browser.
- Complete the information in the pull request and click
Create pull request.
For more information, see:
- Each pull request must have a
ReleaseNotesNeededlabel if a user can perceive the changes. Build or testing-only changes should have aNoReleaseNotesNeededlabel. - Each pull request must have a
DocumentationNeededlabel if the user guide should be updated. Pull requests that do not require a user guide update should have aNoDocumentationNeededlabel.
The styleguide is applied globally to the entire project, except for generated code that gets checked in.
To apply the styleguide, run ./gradlew spotlessApply.
The Deephaven Contributor License Agreement (CLA) must be accepted before a pull request can be merged. A bot monitors all pull requests. Follow the instructions from the bot in the pull request comments to accept the CLA. The Deephaven CLA and associated signatures are maintained at https://github.com/deephaven/cla.