Skip to content

Commit

Permalink
Update contributing guidelines
Browse files Browse the repository at this point in the history
  • Loading branch information
texodus committed Jan 1, 2023
1 parent 33bedd1 commit d7ee8fd
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 33 deletions.
11 changes: 0 additions & 11 deletions .github/ISSUE_TEMPLATE/Support_question.md

This file was deleted.

84 changes: 62 additions & 22 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,74 @@

Thank you for your interest in contributing to Perspective!

Perspective is built on open source and hosted by the Fintech Open Source Foundation (FINOS). We invite you to participate in our community by adding and commenting on [issues](https://github.com/finos/perspective/issues) (e.g., bug reports; new feature suggestions) or contributing code enhancements through a pull request.
Perspective is built on open source and hosted by the Fintech Open Source
Foundation (FINOS). We invite you to participate in our community by adding and
commenting on [issues](https://github.com/finos/perspective/issues) (e.g., bug
reports; new feature suggestions) or contributing code enhancements through a
pull request.

Note that commits and pull requests to FINOS repositories such as Perspective may only be accepted from those contributors with a [Contributor License Agreement (CLA)](https://finosfoundation.atlassian.net/wiki/spaces/FINOS/pages/75530375/Contribution+Compliance+Requirements#ContributionComplianceRequirements-ContributorLicenseAgreement) with FINOS. This may take the form of either:
* an active, executed Individual Contributor License Agreement (ICLA) with FINOS, OR
* coverage under an existing, active Corporate Contribution License Agreement (CCLA) executed with FINOS (most likely by the developer's employer). Please note that some, though not all, CCLAs require individuals/employees to be explicitly named on the CCLA.
## Guidelines

Commits from individuals not covered under an CLA can not be merged by Perspective's committers. We encourage you to check that you have a CLA in place well in advance of making your first pull request.
When submitting or commenting on an Issue, please respect the following
guidelines. Github Issues are Perspective's project record of bugs and feature
development, e.g. for publishing a release's Changelog, and as such it is
important to keep them informative and on-topic. As such, please understand that
we may remove or reclassify comments or Issues which violate the guidelines.

Need an ICLA? Unsure if you are covered under an existing CCLA? Confused? Email [[email protected]](mailto:[email protected]) and the foundation team will help get it sorted out for you.
- Be respectful and civil!
- Use the provided Issue templates. If the templates don't fit your need,
please open a [discussion](https://github.com/finos/perspective/discussions)
instead.
- Don't ask for issues to be assigned to you if you're a first-time
contributor. If you need help picking an issue to work on, please open a
[discussion](https://github.com/finos/perspective/discussions).
- Don't add comments asking when a feature will be delivered or a reported
issue fixed. The Issue will link any in-progress draft PRs or Milestones (if
known).

If you have any general questions about contributing to Perspective, please feel free to open an issue on [github](https://github.com/finos/perspective/issues/new), or email [[email protected]](mailto:finos.org).
When submitting Pull Request (PR), please respect the following coding
guidelines:

## Guidelines
- Complete your
[FINOS CLA](https://finosfoundation.atlassian.net/wiki/spaces/FINOS/pages/75530375/Contribution+Compliance+Requirements#ContributionComplianceRequirements-ContributorLicenseAgreement)
_before_ opening a PR.
- Please make sure PRs include:

- Tests asserting behavior of any new or modified features.
- Docs for any new or modified public APIs.
- [Benchmarks](https://perspective.finos.org/docs/development/#benchmark)
for any C++ changes.

- Keep PRs clean, simple and to-the-point:
- Squash "WIP", "Reverting ..", etc., commits.
- No merge commits (`git merge master`), prefer `rebase` to resolve
conflicts with the `master` branch.
- Try to organize commits as functional components (as opposed to
timeline-of-development).

## CLA

Note that commits and pull requests to FINOS repositories such as Perspective
may only be accepted from those contributors with a
[Contributor License Agreement (CLA)](https://finosfoundation.atlassian.net/wiki/spaces/FINOS/pages/75530375/Contribution+Compliance+Requirements#ContributionComplianceRequirements-ContributorLicenseAgreement)
with FINOS. This may take the form of either:

When submitting PRs to Perspective, please respect the following general
coding guidelines:
- an active, executed Individual Contributor License Agreement (ICLA) with
FINOS, OR
- coverage under an existing, active Corporate Contribution License Agreement
(CCLA) executed with FINOS (most likely by the developer's employer). Please
note that some, though not all, CCLAs require individuals/employees to be
explicitly named on the CCLA.

* All PRs should be accompanied by an appropriate label as per [lerna-changelog](https://github.com/lerna/lerna-changelog), and reference any issue they resolve.
* Please try to keep PRs small and focused. If you find your PR touches multiple loosely related changes, it may be best to break up into multiple PRs.
* Individual commits should preferably do One Thing (tm), and have descriptive commit messages. Do not make "WIP" or other mystery commit messages.
* ... that being said, one-liners or other commits should typically be grouped. Please try to keep 'cleanup', 'formatting' or other non-functional changes to a single commit at most in your PR.
* PRs that involve moving files around the repository tree should be organized in a stand-alone commit from actual code changes.
* Please do not submit incomplete PRs or partially implemented features. Feature additions should be implemented completely, including Javascript API and `<perspective-viewer>` UX. If your PR is a build, documentation, test change, or an API change that is not applicable to the UX, please explain this in the comments.
* Please do not submit PRs disabled by feature or build flag - experimental features should be kept on a branch until they are ready to be merged.
* Feature additions, make sure you have added complete JSDoc to any new APIs, as well as additions to the [Usage Guide]() if applicable.
* All PRs should be accompanied by tests asserting their behavior in any packages they modify. C++ and Javascript changes to `@finos/perspective` should add Node.js tests, and additional changes should add Puppeteer tests.
* If your PR modifies the C++ or JS `@finos/perspective` code in a way which may affect performance, be sure to update the benchmark suite as per the [Developer Documentation]().
* Do not commit with `--no-verify` or otherwise bypass commit hooks, and please respect the formatting and linting guidelines they enforce.
* Do not `merge master` upstream changes into your PR. If your change has conflicts with the `master` branch, please pull master into your fork's master, then rebase.
Commits from individuals not covered under an CLA can not be merged by
Perspective's committers. We encourage you to check that you have a CLA in place
well in advance of making your first pull request.

Need an ICLA? Unsure if you are covered under an existing CCLA? Confused? Email
[[email protected]](mailto:[email protected]) and the foundation team will help get it
sorted out for you.

If you have any general questions about contributing to Perspective, please feel
free to open an issue on
[github](https://github.com/finos/perspective/issues/new), or email
[[email protected]](mailto:finos.org).

0 comments on commit d7ee8fd

Please sign in to comment.