* e2e: setup testing for multi-version (#9819)
This pull requests sets up the e2e tests to be able to support multiple versions within the same test network. This is achieved through a few simple changes:
* Each node takes a `version` parameter in the testnet manifest. This dictates which version of the testapp to use. If not set, the locally available version is used.
* Adds a `testapp-docker.yml` workflow that publishes the testapp to docker hub so that tagged versions may be available for use in a multi-version test network.
This change does not actually add a testnetwork that does multi-version testing. Since no previous versions of the testapp have been published to dockerhub, there are not old versions available to test against. We'll either need to configure this after the next minor release which will trigger a testapp to be pushed to dockerhub, or push an image from the previous version of Tendermint so that the multiversion test has an old version to pull.
#### PR checklist
- [ ] Tests written/updated, or no tests needed
- [ ] `CHANGELOG_PENDING.md` updated, or no changelog entry needed
- [ ] Updated relevant documentation (`docs/`) and code comments, or no
documentation updates needed
(cherry picked from commit 5ba0d131c4)
# Conflicts:
# test/e2e/pkg/manifest.go
* fix conflict
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
Co-authored-by: William Banfield <wbanfield@gmail.com>
* ci: Fix linter complaint (#9645)
Fixes a very silly linter complaint that makes absolutely no sense and is blocking the merging of several PRs.
---
#### PR checklist
- [x] Tests written/updated, or no tests needed
- [x] `CHANGELOG_PENDING.md` updated, or no changelog entry needed
- [x] Updated relevant documentation (`docs/`) and code comments, or no
documentation updates needed
(cherry picked from commit 83b7f4ad5b)
# Conflicts:
# .github/workflows/lint.yml
# cmd/tendermint/commands/debug/util.go
* Resolve conflicts
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Fix remaining lints
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: Thane Thomson <connect@thanethomson.com>
* ci: Pre-release workflows (#9366)
In preparation for the v0.37 release, this PR updates:
1. The [release guidelines](https://github.com/tendermint/tendermint/blob/thane/pre-release-workflows/RELEASES.md#pre-releases) regarding alpha and beta versions, as well as release candidates.
2. The GitHub workflows to build all 3 kinds of pre-releases for:
1. Docker images
2. Binaries (I'm still not 100% sure whether this is necessary, but it does act as a clear signal to users that a pre-release is available, and pre-built binaries could be useful for people running testnets who don't use Docker)
3. The Goreleaser config to auto-detect whether a tag is a pre-release and mark it as such as the release is created on GitHub.
---
#### PR checklist
- [x] Tests written/updated, or no tests needed
- [x] `CHANGELOG_PENDING.md` updated, or no changelog entry needed
- [x] Updated relevant documentation (`docs/`) and code comments, or no
documentation updates needed
(cherry picked from commit 6bdc970377)
# Conflicts:
# RELEASES.md
* Sync releases guide with main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: Thane Thomson <connect@thanethomson.com>
* Update docs references from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update DOCS_README to reflect current reality
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update vuepress config with current versions and updated discussions link
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update generated docs versions
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update docs build to use temp folder instead of home
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Document build-docs Makefile target
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Add serve-docs Makefile target to serve local build of docs
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Ensure 404 page is copied during docs build
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Redirect /master/ to /main/
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Attempt to resolve#7908
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update OpenAPI references from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update CHANGELOG references from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update Docker readme references from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update UPGRADING references from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update package-specific documentation references from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update spec references from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update all code comment references to docs site from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Build v0.34.x as "latest"
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Explicitly mark v0.34 docs as latest in version selector
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update all links from docs.tendermint.com/main to docs.tendermint.com/latest
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* ci: Redeploy docs on pushes to v0.34.x
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Temporarily copy spec directory into docs while building
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Add nav link to main and clearly mark as unstable
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Revert to only publishing docs in nav for v0.34 and v0.33 with no latest
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Link to docs.tendermint.com/v0.34 from RFCs
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Rather just use main for all docs.tendermint.com references on main branch
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Rename GitHub tree links from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update link for ABCI Rust client
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update github links from master to main
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update badges in root readme
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Remove codecov badge since we do not use it any more
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Remove Java and Kotlin tutorials
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Remove specs from docs build
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Migrate spec links to GitHub repo from docs site
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Remove references to non-existent PEX reactor spec
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Fix linting badge in README
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
The `mockery` project recommends against using a binary of `mockery` that has been created using `go install`. https://github.com/vektra/mockery/pull/456. Developers of Tendermint wishing to generate mocks should avoid having a version of `mockery` on their path that does not match the version listed in [mockery_generate.sh](10e1ac8fea/scripts/mockery_generate.sh (L11)). To make this easier for developers, the `mockery_generate.sh` script uses a containerized copy of `mockery` if `mockery` is not present on the developer's `PATH`. This containerized version of `mockery` uses the same version of mockery as our CI pipelines and allows all developers to automatically use the same version without having to manage it themselves.
#### PR checklist
- [ ] Tests written/updated, or no tests needed
- [ ] `CHANGELOG_PENDING.md` updated, or no changelog entry needed
- [ ] Updated relevant documentation (`docs/`) and code comments, or no
documentation updates needed
The v0.34.x tests have been failing (or reporting failures, I don't
believe that this is a real failure,) because the CI configuration has
been out of sync with itself, likely due to a mistake during
backporting configs from the `master` branch.
The entire 0.34.x e2e test suite takes 26 minutes to run, plus about 7
minutes to build the docker image. Each split has to build the same
docker image, (and is therefore a cap on the amount of parallelism we
can get at the moment.) Having more groups, just seems like we'll be
burning money building the docker image with no really meaningful
difference in throughput. For a nightly test that people don't really
wait on, the current latency (time-to-completion) of roughly 19
minutes, isn't causing in friction.
Update the nightly E2E workflows to fix the notifications for the
v0.34.x branch while also simplifying the messages and making them more
readable.
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update CODEOWNERS to use teams
Update the `CODEOWNERS` file to use the
@tendermint/tendermint-engineering and @tendermint/tendermint-research
teams as opposed to adding people one by one. This makes repository
administration somewhat easier to manage, especially when
onboarding/offboarding people.
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Add Ethan as superuser
Signed-off-by: Thane Thomson <connect@thanethomson.com>