Skip to content

Commit

Permalink
Merge pull request #37 from smartcontractkit/feat/release-md
Browse files Browse the repository at this point in the history
feat: add RELEASE.md and improve CONTRIBUTING.md
  • Loading branch information
ChrisAmora authored Nov 8, 2024
2 parents 0a779be + 08b407f commit 4efdae0
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 42 deletions.
63 changes: 21 additions & 42 deletions CONTRIBUTING.md
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
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,8 @@ $ task proto:gen:orchestrator: # only run for orchestrator

For instructions on how to contribute to `chainlink-protos` and the release process,
see [CONTRIBUTING.md](https://github.com/smartcontractkit/chainlink-protos/blob/main/CONTRIBUTING.md)

## Releasing

For instructions on how to release `chainlink-protos`,
see [RELEASE.md](https://github.com/smartcontractkit/chainlink-protos/blob/main/RELEASE.md)
19 changes: 19 additions & 0 deletions RELEASE.md
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.

0 comments on commit 4efdae0

Please sign in to comment.