Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(proto): add buf labels for ibc-go release tags #8152

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .github/workflows/proto-registry.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
name: Buf-Push
# Protobuf runs buf (https://buf.build/) push updated proto files to https://buf.build/cosmos/ibc
# This workflow is only run when a .proto file has been changed
# This workflow is only run when a .proto file has been changed or a tag is created
on:
push:
branches:
- main
paths:
- "proto/**"
tags:
- 'v*.*.*'

jobs:
push:
runs-on: depot-ubuntu-22.04-4
steps:
- uses: actions/checkout@v4
- uses: bufbuild/[email protected]
- uses: bufbuild/buf-push-action@v1
- name: Push to buf.build registry with appropriate labels
uses: bufbuild/buf-push-action@v1
with:
input: "proto"
buf_token: ${{ secrets.BUF_TOKEN }}
# Add tag labels when this workflow is triggered by a tag
tag: ${{ startsWith(github.ref, 'refs/tags/') && format('commit:{0},{1}', github.sha, github.ref_name) || '' }}
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,21 @@ The [Inter-Blockchain Communication protocol (IBC)](https://ibcprotocol.dev/) al

This IBC implementation in Golang is built as a Cosmos SDK module. To understand more about how to use the `ibc-go` module as well as about the IBC protocol, please check out the Interchain Developer Academy [section on IBC](https://tutorials.cosmos.network/academy/3-ibc/), or [our docs](./docs/docs/01-ibc/01-overview.md).

## Protobuf

IBC-Go Protobuf definitions are hosted on the [Buf Schema Registry](https://buf.build/cosmos/ibc).

[![buf.build](https://img.shields.io/badge/buf.build-cosmos%2Fibc-blue)](https://buf.build/cosmos/ibc)

The registry includes tagged versions for all releases, allowing you to depend on specific versions of the API in your projects.

## Roadmap

For an overview of upcoming changes to ibc-go take a look at the [roadmap project board](https://github.com/orgs/cosmos/projects/38/views/14).
For an overview of upcoming changes to ibc-go take a look at the [roadmap](./docs/docs/01-ibc/10-roadmap.md).

This roadmap is also available as a [project board](https://github.com/orgs/cosmos/projects/7/views/25).

For the latest expected release timelines, please check [here](https://github.com/cosmos/ibc-go/wiki/Release-timeline).

## Releases

Expand All @@ -61,7 +73,9 @@ We have active, helpful communities on Discord and Telegram.

For questions and support please use the `developers` channel in the [Cosmos Network Discord server](https://discord.com/channels/669268347736686612/1019978171367559208) or join the [Interchain Discord server](https://discord.com/invite/interchain). The issue list of this repo is exclusively for bug reports and feature requests.

To receive announcements of new releases or other technical updates, please join the [Telegram group that Interchain Labs administers](https://t.me/cosmostechstack/1).
To receive announcements of new releases or other technical updates, please join the [Telegram group that we administer](https://t.me/ibc_is_expansive).

We run biweekly community calls to update the community with our current direction and gather feedback on what to work on next. The community calls are also a platform for you to update everyone else with what you're working on, ask questions and find opportunities to collaborate. Please join [this Google group](https://groups.google.com/g/ibc-community) to receive a calendar invitation for the meeting.

## Contributing

Expand Down
11 changes: 11 additions & 0 deletions docs/dev/development-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,17 @@ For generating or updating the swagger file that documents the URLs of the RESTf

It reads protobuf service definitions and generates a reverse-proxy server which translates a RESTful HTTP API into gRPC.

### Buf Registry and Tags

The IBC-Go protobuf definitions are published to the [Buf Schema Registry](https://buf.build/cosmos/ibc) on both the `main` branch and for all release tags. When a new tag is created, the protobuf definitions are automatically pushed to the Buf registry with appropriate commit labels that include the tag name. This allows consumers to depend on specific versions of the API.

These tagged versions can be referenced in your `buf.yaml` files as dependencies, for example:

```yaml
deps:
- buf.build/cosmos/ibc:v7.2.0 # Specific version
```

## Developing and testing

- The latest state of development is on `main`.
Expand Down
30 changes: 28 additions & 2 deletions docs/docs/01-ibc/08-proto-docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,32 @@ slug: /ibc/proto-docs
---


# Protobuf documentation
# Protobuf Documentation

See [ibc-go Buf Protobuf documentation](https://buf.build/cosmos/ibc/docs/main).
## Buf Schema Registry

IBC-Go Protobuf definitions are hosted on the [Buf Schema Registry](https://buf.build/cosmos/ibc).

The registry includes all IBC-Go Protobuf definitions and is updated:
- When changes are made to Protobuf files on the `main` branch
- When a new version of IBC-Go is released with a tag (e.g., `v7.3.0`)

You can browse the Protobuf definitions directly on the Buf Schema Registry:
- [Main branch](https://buf.build/cosmos/ibc/docs/main)
- Tagged versions are available in the "Tags" section

## Using Tagged Versions in Your Projects

When depending on IBC-Go Protobuf definitions in your own projects, you can specify a particular tagged version to ensure API stability:

```yaml
# In your buf.yaml file
deps:
- buf.build/cosmos/ibc:v7.3.0 # Replace with your desired version
```

This ensures your project always uses the same version of the API definitions, regardless of updates to the main branch.

## Generated Documentation

For a complete reference of all IBC Protobuf definitions, see the [generated Protobuf documentation](https://buf.build/cosmos/ibc/docs/main).