Skip to content

Commit

Permalink
Merge branch 'main' into add-spawn-page
Browse files Browse the repository at this point in the history
  • Loading branch information
jtremback authored Oct 28, 2024
2 parents bed2143 + dd09294 commit 940e19d
Show file tree
Hide file tree
Showing 89 changed files with 2,543 additions and 813 deletions.
23 changes: 23 additions & 0 deletions .changelog/epilogue.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
## v4.5.0

*September 30, 2024*

### BUG FIXES

- Remove duplicate event emission on cached context.
([\#2282](https://github.com/cosmos/interchain-security/pull/2282))

### FEATURES

- `[x/consumer]` Populate the memo on the IBC transfer packets used to send ICS rewards
with the required consumer chain Id to identify the consumer to the provider.
- `[x/provider]` Identify the source of ICS rewards from the IBC transfer packet memo.
([\#2290](https://github.com/cosmos/interchain-security/pull/2290))

### STATE BREAKING

- `[x/consumer]` Populate the memo on the IBC transfer packets used to send ICS rewards
with the required consumer chain Id to identify the consumer to the provider.
- `[x/provider]` Identify the source of ICS rewards from the IBC transfer packet memo.
([\#2290](https://github.com/cosmos/interchain-security/pull/2290))

## v4.4.0

*July 16, 2024*
Expand Down
2 changes: 2 additions & 0 deletions .changelog/unreleased/bug-fixes/2363-zero-rewards.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- `[x/provider]` Add check for zero rewards to the rewards distribution logic.
([\#2363](https://github.com/cosmos/interchain-security/pull/2363))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Allow consumer chains to specify a list of priority validators that are included in the validator set before other validators are considered
([\#2101](https://github.com/cosmos/interchain-security/pull/2101))
3 changes: 3 additions & 0 deletions .changelog/unreleased/improvements/2357-init-params.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- `[x/provider]` Add validation for initial height and set
default values for consumer initialization params.
([\#2357](https://github.com/cosmos/interchain-security/pull/2357))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Allow consumer chains to specify a list of priority validators that are included in the validator set before other validators are considered
([\#2101](https://github.com/cosmos/interchain-security/pull/2101))
3 changes: 3 additions & 0 deletions .changelog/unreleased/state-breaking/2357-init-params.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- `[x/provider]` Add validation for initial height and set
default values for consumer initialization params.
([\#2357](https://github.com/cosmos/interchain-security/pull/2357))
2 changes: 2 additions & 0 deletions .changelog/unreleased/state-breaking/2363-zero-rewards.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- `[x/provider]` Add check for zero rewards to the rewards distribution logic.
([\#2363](https://github.com/cosmos/interchain-security/pull/2363))
2 changes: 2 additions & 0 deletions .changelog/v6.2.0/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*October 4, 2024*

19 changes: 19 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,22 @@ updates:
labels:
- dependencies

- package-ecosystem: gomod
directory: "/"
schedule:
interval: daily
target-branch: "release/v6.2.x"
# Only allow automated security-related dependency updates on release branches.
open-pull-requests-limit: 0
labels:
- dependencies

- package-ecosystem: gomod
directory: "/"
schedule:
interval: daily
target-branch: "release/v6.3.x"
# Only allow automated security-related dependency updates on release branches.
open-pull-requests-limit: 0
labels:
- dependencies
4 changes: 2 additions & 2 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ jobs:
# https://github.com/sigstore/cosign-installer
- name: Install cosign
if: github.event_name != 'pull_request'
uses: sigstore/cosign-installer@4959ce089c160fddf62f7b42464195ba1a56d382 #v3.6.0
uses: sigstore/cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da #v3.7.0
with:
cosign-release: 'v2.2.3'

# Set up BuildKit Docker container builder to be able to build
# multi-platform images and export cache
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1
uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1


# Login against a Docker registry except on PR
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/nightly-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,22 @@ jobs:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E partial set security denylist
run: go run ./tests/e2e/... --tc partial-set-security-validators-denylisted
partial-set-security-validators-prioritylisted-test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- uses: actions/checkout@v4
- name: Checkout LFS objects
run: git lfs checkout
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22" # The Go version to download (if necessary) and use.
- name: E2E partial set security prioritylist
run: go run ./tests/e2e/... --tc partial-set-security-validators-prioritylisted
partial-set-security-modification-proposal:
runs-on: ubuntu-latest
timeout-minutes: 20
Expand Down Expand Up @@ -376,6 +392,7 @@ jobs:
- partial-set-security-validators-power-cap-test
- partial-set-security-validators-allowlisted-test
- partial-set-security-validators-denylisted-test
- partial-set-security-validators-prioritylisted-test
- partial-set-security-modification-proposal
- active-set-changes-test
- permissionless-basic-test
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/proto-registry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bufbuild/buf-setup-action@v1.42.0
- uses: bufbuild/buf-setup-action@v1.45.0
- uses: bufbuild/buf-push-action@v1
with:
input: "proto"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/proto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bufbuild/buf-setup-action@v1.42.0
- uses: bufbuild/buf-setup-action@v1.45.0
- uses: bufbuild/buf-breaking-action@v1
with:
input: "proto"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
**/go.sum
**/Makefile
Makefile
- uses: actions/cache@v4.0.2
- uses: actions/cache@v4.1.0
with:
path: |
~/.cache/go-build
Expand Down
70 changes: 70 additions & 0 deletions .github/workflows/testing-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Generate testing docs

on:
workflow_call:
pull_request:
merge_group:
push:
branches:
- main
- release/v*
- feat/*

permissions:
contents: write
pull-requests: write # 'write' access to pull requests in order to update test documentation automatically

jobs:
testing-docs:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- uses: actions/setup-go@v5
with:
go-version: "1.22"
check-latest: true
cache: true
cache-dependency-path: go.sum
- uses: technote-space/get-diff-action@v6.1.2
id: git_diff
with:
PATTERNS: |
tests/integration/**/*.go
**/Makefile
Makefile
- name: Generate testing docs
if: env.GIT_DIFF
run: make build-testing-docs

- name: Check for changes and update automatically
if: env.GIT_DIFF
id: check_changes_and_update
run: |
git show HEAD:scripts/test_doc/test_documentation.md > committed_file.md
cp scripts/test_doc/test_documentation.md generated_file.md
if ! diff -q generated_file.md committed_file.md; then
echo "Documentation for integration tests is out of date. Updating and pushing changes..."
cp generated_file.md scripts/test_doc/test_documentation.md
if [ -n "$GITHUB_HEAD_REF" ]; then
branch=$GITHUB_HEAD_REF
else
branch=${GITHUB_REF#refs/heads/}
fi
git fetch origin $branch
git checkout $branch
cp generated_file.md scripts/test_doc/test_documentation.md
git config user.name "github-actions"
git config user.email "github-actions@github.com"
git add scripts/test_doc/test_documentation.md
git commit -m "Update testing documentation"
git push origin "$branch"
fi
16 changes: 16 additions & 0 deletions .mergify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,19 @@ pull_request_rules:
backport:
branches:
- release/v6.1.x
- name: Backport patches to the release/v6.2.x branch
conditions:
- base=main
- label=A:backport/v6.2.x
actions:
backport:
branches:
- release/v6.2.x
- name: Backport patches to the release/v6.3.x branch
conditions:
- base=main
- label=A:backport/v6.3.x
actions:
backport:
branches:
- release/v6.3.x
51 changes: 51 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# CHANGELOG

## v6.2.0

*October 4, 2024*

### DEPENDENCIES

- Bump [ibc-go](https://github.com/cosmos/ibc-go) to
[v8.5.1](https://github.com/cosmos/ibc-go/releases/tag/v8.5.1).
([\#2277](https://github.com/cosmos/interchain-security/pull/2277))

### FEATURES

- `[x/consumer]` Populate the memo on the IBC transfer packets used to send ICS rewards.
with the required consumer chain Id to identify the consumer to the provider.
- `[x/provider]` Identify the source of ICS rewards from the IBC transfer packet memo.
([\#2290](https://github.com/cosmos/interchain-security/pull/2290))
- `[x/provider]` Enable permissionless allowlisting of reward denoms (at most 3) per consumer chain.
([\#2309](https://github.com/cosmos/interchain-security/pull/2309))

### STATE BREAKING

- `[x/consumer]` Populate the memo on the IBC transfer packets used to send ICS rewards.
with the required consumer chain Id to identify the consumer to the provider.
- `[x/provider]` Identify the source of ICS rewards from the IBC transfer packet memo.
([\#2290](https://github.com/cosmos/interchain-security/pull/2290))
- `[x/provider]` Enable permissionless allowlisting of reward denoms (at most 3) per consumer chain.
([\#2309](https://github.com/cosmos/interchain-security/pull/2309))

## v6.1.0

*September 20, 2024*
Expand Down Expand Up @@ -317,6 +345,29 @@ Backporting of ([\#1964](https://github.com/cosmos/interchain-security/pull/1964
- Revert `PutUnbondingOnHold` behavior to ICS@v1
([\#1819](https://github.com/cosmos/interchain-security/pull/1819))

## v4.5.0

*September 30, 2024*

### BUG FIXES

- Remove duplicate event emission on cached context.
([\#2282](https://github.com/cosmos/interchain-security/pull/2282))

### FEATURES

- `[x/consumer]` Populate the memo on the IBC transfer packets used to send ICS rewards
with the required consumer chain Id to identify the consumer to the provider.
- `[x/provider]` Identify the source of ICS rewards from the IBC transfer packet memo.
([\#2290](https://github.com/cosmos/interchain-security/pull/2290))

### STATE BREAKING

- `[x/consumer]` Populate the memo on the IBC transfer packets used to send ICS rewards
with the required consumer chain Id to identify the consumer to the provider.
- `[x/provider]` Identify the source of ICS rewards from the IBC transfer packet memo.
([\#2290](https://github.com/cosmos/interchain-security/pull/2290))

## v4.4.0

*July 16, 2024*
Expand Down
5 changes: 4 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ RUN go mod tidy
RUN make install

# Get Hermes build
FROM --platform=linux/amd64 ghcr.io/informalsystems/hermes:1.10.2 AS hermes-builder
# TODO: import Hermes release from ghcr.io/informalsystems repository when
# a Hermes release contains the patch in
# https://github.com/informalsystems/hermes/pull/4182
FROM --platform=linux/amd64 otacrew/hermes-ics:latest AS hermes-builder

# Get CometMock
FROM ghcr.io/informalsystems/cometmock:v0.38.x as cometmock-builder
Expand Down
5 changes: 4 additions & 1 deletion Dockerfile.combined
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ FROM --platform=linux/amd64 ${PROVIDER_IMAGE} AS provider
FROM --platform=linux/amd64 ${CONSUMER_IMAGE} AS consumer

# Get Hermes build
FROM --platform=linux/amd64 ghcr.io/informalsystems/hermes:1.10.2 AS hermes-builder
# TODO: import Hermes release from ghcr.io/informalsystems repository when
# a Hermes release contains the patch in
# https://github.com/informalsystems/hermes/pull/4182
FROM --platform=linux/amd64 otacrew/hermes-ics:latest AS hermes-builder


# Get GoRelayer
Expand Down
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,9 @@ build-docs-deploy:
build-docs-local:
@cd docs && ./build_local.sh

build-testing-docs:
@cd scripts/test_doc && go run extract_docstrings.go

###############################################################################
### Test Traces ###
###############################################################################
Expand Down
12 changes: 12 additions & 0 deletions TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,18 @@ Unit tests are useful for simple standalone functionality, and CRUD operations.

To run integration tests against your own consumer/provider implementations, use [instance_test.go](tests/integration/instance_test.go) as an example. All you'll need to do is make sure your applications implement the necessary interfaces defined in [interfaces.go](testutil/integration/interfaces.go), pattern match [specific_setup.go](testutil/ibc_testing/specific_setup.go), then pass in the appropriate types and parameters to the suite, as is done in `instance_test.go` for the dummy provider/consumer implementations.

A list of test scenarios covered by integration tests can be found in [scripts/test_doc/test_documentation.md](scripts/test_doc/test_documentation.md).
When adding an integration test, write a brief description as a docstring in the Golang code in this schema:

```go
// This is a test that tests foo and bar.
// @Long Description@
// Here is a detailed description
// that goes into more detail and describes the scenario.
```

Then, run `make build-testing-docs` to update the test documentation.

## Model-Based Tests (MBT)

[MBT](tests/mbt/) tests are similar to integration tests, but they compare the system state to an expected state generated from a formally verified specification written in Quint.
Expand Down
3 changes: 2 additions & 1 deletion contrib/local-testnet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,8 @@ tee ${PROV_NODE_DIR}/consumer_prop.json<<EOF
"allowlist": [],
"denylist": [],
"min_stake": 1000,
"allow_inactive_vals": true
"allow_inactive_vals": true,
"prioritylist": []
}
}
],
Expand Down
Loading

0 comments on commit 940e19d

Please sign in to comment.