mirror of
https://github.com/denoland/deno.git
synced 2024-11-01 09:24:20 -04:00
60 lines
2.2 KiB
Markdown
60 lines
2.2 KiB
Markdown
# Contributing
|
|
|
|
- Read the [style guide](style_guide.md).
|
|
- Progress towards future releases is tracked
|
|
[here](https://github.com/denoland/deno/milestones).
|
|
- Please don't make [the benchmarks](https://deno.land/benchmarks.html) worse.
|
|
- Ask for help in the [community chat room](https://discord.gg/TGMHGv6).
|
|
- If you are going to work on an issue, mention so in the issue comments
|
|
_before_ you start working on the issue.
|
|
|
|
## Development
|
|
|
|
Instructions on how to build from source can be found
|
|
[here](./building-from-source).
|
|
|
|
## Submitting a Pull Request
|
|
|
|
Before submitting, please make sure the following is done:
|
|
|
|
1. That there is a related issue and it is referenced in the PR text.
|
|
2. There are tests that cover the changes.
|
|
3. Ensure `cargo test` passes.
|
|
4. Format your code with `tools/format.py`
|
|
5. Make sure `./tools/lint.py` passes.
|
|
|
|
## Changes to `third_party`
|
|
|
|
[`deno_third_party`](https://github.com/denoland/deno_third_party) contains most
|
|
of the external code that Deno depends on, so that we know exactly what we are
|
|
executing at any given time. It is carefully maintained with a mixture of manual
|
|
labor and private scripts. It's likely you will need help from @ry or
|
|
@piscisaureus to make changes.
|
|
|
|
## Adding Ops (aka bindings)
|
|
|
|
We are very concerned about making mistakes when adding new APIs. When adding an
|
|
Op to Deno, the counterpart interfaces on other platforms should be researched.
|
|
Please list how this functionality is done in Go, Node, Rust, and Python.
|
|
|
|
As an example, see how `Deno.rename()` was proposed and added in
|
|
[PR #671](https://github.com/denoland/deno/pull/671).
|
|
|
|
## Documenting APIs
|
|
|
|
It is important to document public APIs and we want to do that inline with the
|
|
code. This helps ensure that code and documentation are tightly coupled
|
|
together.
|
|
|
|
### Utilize JSDoc
|
|
|
|
All publicly exposed APIs and types, both via the `deno` module as well as the
|
|
global/`window` namespace should have JSDoc documentation. This documentation is
|
|
parsed and available to the TypeScript compiler, and therefore easy to provide
|
|
further downstream. JSDoc blocks come just prior to the statement they apply to
|
|
and are denoted by a leading `/**` before terminating with a `*/`. For example:
|
|
|
|
```ts
|
|
/** A simple JSDoc comment */
|
|
export const FOO = "foo";
|
|
```
|