|
| 1 | +# Contributing Guide |
| 2 | + |
| 3 | +Thank you for your interest in contributing to our project! Before you submit a pull request, we kindly ask you to review this guide thoroughly. |
| 4 | + |
| 5 | +## Development |
| 6 | + |
| 7 | +First, [fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) and clone the repository onto your local machine. Once you have your local copy of the repository, you can commence with development. This typically involves installing the required dependencies and executing the tests. |
| 8 | + |
| 9 | +### Install Dependencies |
| 10 | + |
| 11 | +After cloning the repository, navigate to its root directory and run the following command to install the necessary dependencies: |
| 12 | + |
| 13 | +``` |
| 14 | +npm install |
| 15 | +``` |
| 16 | + |
| 17 | +Once you have made your changes and verified they work correctly, you can submit a [pull request from your forked repository](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork). |
| 18 | + |
| 19 | +## Pull Requests |
| 20 | + |
| 21 | +Before proposing changes, please open an [issue](https://github.com/@sheet-ui/sheet/issues/new) or [discussion](https://github.com/@sheet-ui/sheet/discussions/new/choose) for collaborative decision-making on solutions prior to submitting a pull request. This enhances the effectiveness of your contributions and promotes collective input. |
| 22 | + |
| 23 | +### Workflow |
| 24 | + |
| 25 | +1. **Open an [issue](https://github.com/@sheet-ui/sheet/issues/new)**: Start by opening an issue detailing the problem you want to solve or the feature you want to add. |
| 26 | +1. **Fork and branch:** Fork the repository and create a new branch on your fork to work on the changes. |
| 27 | +1. **Add commits:** Add new commits to your branch. Remember: |
| 28 | + 1. Commits should be [concise, descriptive, and well formatted](https://cbea.ms/git-commit/#seven-rules). |
| 29 | + 1. Commits should follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0) specification and use the [standard headings](https://github.com/googleapis/release-please/blob/cb0f936e598c5bfb8d3e0a9c0eeb57ae59a35140/src/changelog-notes.ts#L43-L54). |
| 30 | + 1. This repository maintains a linear git history, so merge commits are not allowed. |
| 31 | +1. **Open a pull request:** Open a [new pull request](https://github.com/@sheet-ui/sheet/compare) on GitHub, and [link](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) it to the issue you created in the first step. |
| 32 | + |
| 33 | +### Dependabot |
| 34 | + |
| 35 | +This repository employs [Dependabot 🤖](https://docs.github.com/en/code-security/dependabot) to [secure](https://docs.github.com/en/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates) and [update](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates#about-version-updates-for-dependencies) project dependencies by automatically initiating pull requests for package upgrades. The duty of project maintainers is to review, test, approve, and merge these Dependabot-generated pull requests. |
| 36 | + |
| 37 | +## Release |
| 38 | + |
| 39 | +Project maintainers are entrusted with the task of publishing new releases. Releases are automated with Google's [release-please](https://github.com/googleapis/release-please) GitHub action. Simply put, to publish a release, you simply need to merge the release pull request (PR) 🚀. |
| 40 | + |
| 41 | +The release-please GitHub action parses [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0) to help automate the release process. It automatically generates a release PR, which is continuously updated as new commits are merged into the main branch. Once maintainers decide that it's time to publish a new release, they can merge the release PR. |
| 42 | + |
| 43 | +Upon merging the release PR, the GitHub action initiates a series of tasks: |
| 44 | + |
| 45 | +1. Updates the `CHANGELOG.md` and `package.json` files. |
| 46 | +1. Tags the commit associated with the release with the [version](https://semver.org) number. |
| 47 | +1. Creates a new GitHub release based on this tag. |
| 48 | +1. Publishes a new version of [the package](https://www.npmjs.com/package/@sheet-ui/sheet) to npm. |
| 49 | + |
| 50 | +## Versioning |
| 51 | + |
| 52 | +This project follows [Semantic Versioning 2.0](https://semver.org/) and the release tooling automatically parses the semantic version based on the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0). |
0 commit comments