# Contributing

SheetJS CE should be free and clear to use in your projects. To ensure that
remains true, each contributor must be vigilant and each contribution must be
carefully scrutinized from a technical and legal perspective.

Many commercial products and open source projects have been very lax regarding
licensing. They are ticking timebombs that no commercial product should use.


## Required Reading

These are pretty short reads and emphasize the importance of proper licensing:

- https://web.archive.org/web/20200916173942/https://github.com/jazzband/tablib/issues/114

- https://web.archive.org/web/20240909210554/https://github.com/stephen-hardy/xlsx.js/issues/8


## Raising Issues

Issues should generally be accompanied by test files. It is strongly recommended
to use the [issue tracker](https://git.sheetjs.com/sheetjs/sheetjs/issues).

If they cannot be shared publicly, please send files to <oss@sheetjs.com>
(subject line should contain issue number or message) or share links to files
hosted on a storage service. Unless expressly permitted, attachments will not be
shared outside of SheetJS LLC or included in a test suite.

If a NDA is required, please send an email to <oss@sheetjs.com> with subject
line "Non-Disclosure Agreemeant Request".


## Opening Pull Requests

Please raise an issue before opening pull requests. It is easy to solve a
specific problem without considering the full context or implications.


## Pre-Contribution Checklist

Before thinking about contributing, make sure that:

- You are not, nor have ever been, an employee of Microsoft Corporation.

- You have not signed any NDAs or Shared Source Agreements with Microsoft
  Corporation or a subsidiary.

- You have not consulted any existing relevant codebase (if you have, please
  take note of which codebases were consulted).

If you cannot attest to each of these items, the best approach is to raise an
issue. If it is a particularly high-priority issue, please drop an email to
<support@sheetjs.com> and it will be prioritized.


## Intra-Contribution

Keep these in mind as you work:

- Your contributions are your original work. Take note of any resources you
  consult in the process. Be extra careful not to use unlicensed code on the
  Internet or code generated by a large language model or other AI tool.

- You are working on your own time. Unless they explicitly grant permission,
  your employer may be the ultimate owner of your IP


## Post-Contribution

Before certain contributions are merged, you will receive an email (at the
address associated with the git commit) and will be asked to confirm the
aforementioned items. Ensure that the email addresses associated with the
commits are valid.