Thank you for your interest in contributing to regular-table!
regular-table 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 (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
regular-table may only be accepted from those contributors with a
Contributor License Agreement (CLA)
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.
Commits from individuals not covered under an CLA can not be merged by
regular-table'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 help@finos.org and the foundation team will help get it sorted out for you.
If you have any general questions about contributing to regular-table, please
feel free to open an issue on
github, or email
help@finos.org.
When submitting PRs to regular-table, please respect the following general
coding guidelines:
- 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. 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.
- Do not commit with
--no-verifyor otherwise bypass commit hooks, and please respect the formatting and linting guidelines they enforce. - Do not
merge masterupstream changes into your PR. If your change has conflicts with themasterbranch, please pull master into your fork's master, then rebase.
Before making a contribution, please take the following steps:
- Check whether there's already an open issue related to your proposed contribution. If there is, join the discussion and propose your contribution there.
- If there isn't already a relevant issue, create one, describing your contribution and the problem you're trying to solve.
- Respond to any questions or suggestions raised in the issue by other developers.
- Fork the project repository and prepare your proposed contribution.
- Submit a pull request.
NOTE: All contributors must have a contributor license agreement (CLA) on file with FINOS before their pull requests will be merged. Please review the FINOS contribution requirements and submit (or have your employer submit) the required CLA before submitting a pull request.
First install dev_dependencies:
pnpm installBuild the library
pnpm run buildRun the test suite
pnpm run testStart the example server at
http://localhost:8080/examples/
pnpm run start- For the duration of building declarations, temporarily
exporttheRegularTableElementinsrc/js/index.js:
// TEMP: export keyword added for building declarations
export class RegularTableElement extends RegularViewEventModel {- Run typescript declarations build:
pnpm run declarationsThis will create declarations/index.d.ts and other typescript
- In
index.d.ts, replace all lines inbetween the paste guard lines:
// START: declarations/index.d.ts
...
// END: declarations/index.d.tswith the contents of the just-built declarations/index.d.ts.
If an update to index.d.ts is found to break the compilation of any downstream
projects, a likely place to check for errors are the pure jsdoc typedefs in
src/js/index.js below the RegularTableElement class defintion. Ensure that all
of the described types are in sync with their current javascript counterparts.