# Contributing to CO2.js

Thank you for considering contributing to CO2.js. Open source is at the heart of our work at [Green Web Foundation](https://www.thegreenwebfoundation.org/), and we welcome input and contributions from the community across all our projects.

## Getting Started

- Submit a [new issue](https://github.com/thegreenwebfoundation/co2.js/issues/new/choose), or add additional comments to an [existing issue](https://github.com/thegreenwebfoundation/co2.js/issues).

**NB** Changes/commits that are not linked to an issue will not be accepted.

### New issues

- Our issue template provides you with a scaffold to follow when raising a new issue. There are three formats to choose from:
  1. _Bugs_ - clearly describe the problem you're facing including steps to reproduce it. Please also be sure to include the information about the environment your code was running in (e.g. NodeJS, Deno, Edge Worker, Browser etc).
  1. _New features_ - clearly describe the new feature you'd like to see added and provide a reason for why it should be added. eg what will be improved/possible as a result of making your suggested change.
  1. _Request addition of carbon estimation model to CO2.js_ - please provide as much information about the model as possible including links to additional documentation and information about how the model is licensed.

## Making Changes

- Fork the repository on GitHub.
- Create a topic branch from where you want to base your work. This branch should usually be based off `main`.
- Remember to add JSDoc comments to any new functions or variables that you are introducing into the codebase.
- Make commits of logical units.
- Make commit messages clear and understandable.

## Submitting Changes

- Push the changes made in your branch to your fork of this repository.
- Submit a [pull request](https://github.com/thegreenwebfoundation/co2.js/pulls) to the CO2.js repository in the `thegreenwebfoundation` organization.
  - When opening a new pull request, you'll see a template. Please follow it. It asks you to state:
    - the type of change (choose from a list)
    - link to the related issue
    - what documentation needs updating as a result (choose from a list)
    - what your changes are - be sure to clearly explain the changes you've made, any new files, dependencies, or network requests that have been added, and provide any additional context to help reviewers understand the changes made.
- Your pull request will be reviewed by a maintainer from Green Web Foundation.
- After feedback has been given we expect responses within two weeks. After two weeks we may close the pull request if it isn't showing any activity.

After a pull request is merged, you will be added to the project as a contributor. A maintainer will update this project's `.all-contributorsrc` file to include your profile which adds it to the list of contributors shown in this project's readme.

## Code of Conduct

Please note that this project is released with a [Contributor Code of Conduct](https://github.com/thegreenwebfoundation/.github/blob/main/CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.

## Thank you

Again, thank you for your contributions. We appreciate your help improving CO2.js, and we look forward to your future contributions!
