-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #37 from smartcontractkit/feat/release-md
feat: add RELEASE.md and improve CONTRIBUTING.md
- Loading branch information
Showing
3 changed files
with
45 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,56 +1,35 @@ | ||
# Contributing to Chainlink Protos | ||
# Contributing | ||
|
||
<!-- TOC --> | ||
|
||
- [Team Overview](#team-overview) | ||
- [How to Contribute](#how-to-contribute) | ||
- [Filing a PR on smartcontractkit/spec-generator](#filing-a-pr-on-smartcontractkitspec-generator) | ||
- [Preparing a release](#preparing-a-release) | ||
- [Merging Version Packages PR](#merging-version-packages-pr) | ||
- [Contributing](#contributing) | ||
- [Team Overview](#team-overview) | ||
- [How to Contribute](#how-to-contribute) | ||
- [Changesets](#changesets) | ||
|
||
<!-- TOC --> | ||
|
||
## Team Overview | ||
|
||
The Deployment Automation team is responsible for the development and maintenance of this repo. The GitHub | ||
team [@smartcontractkit/deployment-automation](https://github.com/orgs/smartcontractkit/teams/deployment-automation) | ||
are the primary code owners and reviewers for this repo. | ||
The Deployment Automation ([@smartcontractkit/deployment-automation](https://github.com/orgs/smartcontractkit/teams/deployment-automation)) team is responsible for the development and maintenance of this repo, and are the primary code owners and reviewers. | ||
|
||
## How to Contribute | ||
|
||
To contribute, you must: | ||
1. Open a branch from `main` and give it a descriptive name. | ||
2. Make changes on your branch. | ||
3. When you are ready to submit your changes, [create a changeset](#changesets) with `pnpm changeset` and commit the changeset file. | ||
4. Push your branch and open a PR against `main`. | ||
5. Ensure your PR passes all CI checks. | ||
6. Request a review from the Deployment Automation team ([@smartcontractkit/deployment-automation](https://github.com/orgs/smartcontractkit/teams/deployment-automation)). | ||
|
||
- Open a pull request (PR) with your changes. | ||
- Request a review from the Deployment Automation | ||
team ([@smartcontractkit/deployment-automation](https://github.com/orgs/smartcontractkit/teams/deployment-automation)) | ||
to | ||
ensure adherence to code and design standards. | ||
- Ensure your PR passes all continuous integration checks and adheres to the contribution guidelines specific to each | ||
repository. | ||
## Changesets | ||
|
||
### Filing a PR on smartcontractkit/chainlink-protos | ||
Changesets are a way to manage changes to the codebase that are not yet released. Here are a few things to keep in mind when you create a changeset: | ||
|
||
Before creating a PR with your change, you should generate a "changeset" file. | ||
|
||
Let's assume that you've made some local changes. | ||
Before filing a PR you need to generate a "changeset" description required for | ||
the automated release process. Follow the steps below: | ||
|
||
- Run `pnpm changeset` in the git top level directory. | ||
- Answer remaining questions. At the end, you will have a new | ||
`.changeset/<random-name>.md` file generated. | ||
- Now you need to commit and push your changes | ||
- Create a Pull request which includes your code change and generated | ||
"changeset" file. | ||
|
||
### Preparing a release | ||
|
||
After merging your PR, a changesets CI job will create or update a "Version Packages" PR | ||
like [this one](https://github.com/smartcontractkit/chainlink-protos/pull/31) which contains a release bump. | ||
|
||
### Merging Version Packages PR | ||
|
||
Now you can Approve/Request approval and Merge the PR from the previous step. After merging, it will kick off the | ||
release workflow and that will release a new version and push tags automatically. You can navigate to | ||
the [tag view](https://github.com/smartcontractkit/chainlink-protos/tags), to check if the latest release is | ||
available. | ||
- Following semantic versioning, select between: major, minor and patch | ||
- **MAJOR** version when you make incompatible API changes | ||
- **MINOR** version when you add functionality in a backwards compatible manner | ||
- **PATCH** version when you make backwards compatible bug fixes. | ||
- When describing the change, try to answer the following: | ||
- **WHAT** the change is | ||
- **WHY** the change was made |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Release Process | ||
|
||
<!-- TOC --> | ||
|
||
- [Release Process](#release-process) | ||
- [Preparing a Release](#preparing-a-release) | ||
- [How to Release](#how-to-release) | ||
|
||
<!-- TOC --> | ||
|
||
### Preparing a Release | ||
|
||
After every PR with a changeset is merged, a changesets CI job will create or update a "Version Packages" PR, which contains the release version and information about the changes. | ||
|
||
### How to Release | ||
|
||
1. Approve or request approval to merge the "Version Packages" PR. | ||
2. Merge the "Version Packages" PR. | ||
3. This will trigger the release workflow, automatically releasing a new version and pushing a tag for the version. Check the [tag view](https://github.com/smartcontractkit/chainlink-protos/tags) to confirm the latest release. |