-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Prepare main
to become new default branch
#9095
Conversation
|
||
- name: Archive suppressions | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: suppressions | ||
path: test/fuzz/**/suppressions | ||
retention-days: 1 | ||
retention-days: 3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know that there's any benefit in retaining these results, unless we have a plan to use them
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What was the reasoning in having this in the first place?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it makes sense to keep the crashers for 3 days -- if we are notified on Friday afternoon, we have an opportunity to review on Monday.
But off the top of my head, I don't know what the suppressions are, so I can't speak to why they should or should not be archived.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure. As far as I know the fuzz tests are basically useless, (e.g. they've never caught a bug in the last 18 months, as far as I know, aside from sometimes unexpectedly breaking compile, in silly but legitimate ways.)
Makefile | ||
- name: Run Go Tests | ||
run: | | ||
make test-group-${{ matrix.part }} NUM_SPLIT=6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should make sure that the number of splits here (6) are the right number of splits given the runtime of the tests and overhead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do we do that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Look at the runtime of the tests in the patch, and make sure that they're more or less balanced, I think. It's reasonably impressionistic. The way this all works is that it takes a sorted list of all of the packages that have tests and splits them, but number of tests and test runtimes in CI don't split along the same lines, so you could have one group that takes 10 minutes and 5 that take 2, and in that case, you don't actually get any responsiveness by having more splits, because the long poll is in one test.
We always used to have 4 splits, and we upped it to 6 when the tests were more flaky because it meant when you restarted the tests (to be able to merge something) you'd be able to see the failure more easily and potentially reduce the chance that more tests would flake on the restart.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for i in {0..5}; do /usr/bin/time -f "Test 0$i: %E" make test-group-0$i NUM_SPLIT=6; done
Test 00: 0:23.59
Test 01: 0:08.11
Test 02: 0:04.93
Test 03: 2:00.23
Test 04: 0:18.79
Test 05: 0:41.22
I think this seems reasonable?
463bcf9
to
ca63b83
Compare
@@ -537,8 +537,7 @@ paths: | |||
type: array |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this is fine, but are these changes actually in the v0.34 line? This didn't seem to be related to the CI parts of the change offhand.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These fixes are just to get the linter to pass. I also went and checked the response schemas against the structs on the main
branch and it seems there were a few minor inconsistencies there, so I fixed the schema where it was incorrect.
key: ${{ runner.os }}-${{ github.sha }}-tm-binary | ||
if: env.GIT_DIFF | ||
|
||
test_abci_apps: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these really no longer relevant?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems as though these were removed in #6684. I'll revert this for now until we re-apply that patch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, these tests were moved to the build workflow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall LGTM, but I'll leave approval to those more familiar with the previous CI implementations. Left a few comments on things that stood out to me.
|
||
- uses: actions/checkout@v3 | ||
|
||
- name: Install go-fuzz | ||
working-directory: test/fuzz | ||
run: go get -u github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build | ||
run: go install github.com/dvyukov/go-fuzz/go-fuzz@latest github.com/dvyukov/go-fuzz/go-fuzz-build@latest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fuzzing is built in to go1.18, so we should prefer the tooling built into the toolchain. I think that is fine to wait for a later PR, though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this was implemented later on toward v0.35/v0.36. We can look at porting that work at some point.
|
||
- name: Archive suppressions | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: suppressions | ||
path: test/fuzz/**/suppressions | ||
retention-days: 1 | ||
retention-days: 3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it makes sense to keep the crashers for 3 days -- if we are notified on Friday afternoon, we have an opportunity to review on Monday.
But off the top of my head, I don't know what the suppressions are, so I can't speak to why they should or should not be archived.
name: Golang Linter | ||
# Lint runs golangci-lint over the entire Tendermint repository. | ||
# | ||
# This workflow is run on every pull request and push to main. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice to mention how to run this locally. (I think it's just make lint
?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, it's just make lint
. I've now added this to the end of the comment.
0194d9a
to
8b6d482
Compare
main
CI config to resemble master
'smain
to become new default branch
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the deletion of the minnet-kubernetes
directory is probably fine, but I'm not sure it's in scope for the rest of this PR
.github/CODEOWNERS
Outdated
|
||
/spec @cason @sergio-mena @jmalicevic @milosevic | ||
# Spec related changes can be approved by the protocol design team | ||
/spec @josef-widder @milosevic @cason @sergio-mena @jmalicevic |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's potentially a bit confusing to have duplication between this and the full team.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How so?
|
||
- name: Run testnets in group ${{ matrix.group }} | ||
- name: Run ${{ matrix.p2p }} p2p testnets | ||
working-directory: test/e2e | ||
run: ./run-multiple.sh networks/nightly/*-group${{ matrix.group }}-*.toml | ||
|
||
e2e-nightly-fail-2: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should the -2
here also drop?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure. This is how it is on master
:
e2e-nightly-fail-2: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed it. It seems redundant.
# - maligned | ||
# - misspell | ||
- misspell |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I kind of think that we shouldn't change the linter config on the branch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not changing it, I'm just sync'ing with master
. See
Line 29 in d433ebe
- misspell |
@@ -2742,6 +2740,33 @@ components: | |||
type: string | |||
example: "Dialing seeds in progress. See /net_info for details" | |||
|
|||
BlockSearchResponse: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we should add this without the corresponding implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's already on main
(i.e. in v0.34):
tendermint/rpc/core/types/responses.go
Line 209 in 4309f54
type ResultBlockSearch struct { |
While fixing the linting issues in the OpenAPI config, I discovered that there were a bunch of things that were missing/incorrect. So I've fixed them here to match the code on main
.
See
tendermint/rpc/openapi/openapi.yaml
Line 1067 in 4309f54
$ref: "#/components/schemas/BlockSearchResponse" |
main
for example, where there's no definition of BlockSearchResponse
in the OpenAPI config.
To get the YAML linting to pass I either had to fix all of the k8s scripts, or just delete them, so I deleted them (since this is what happened to them on |
Remove mintnet as discussed on team call. closes #1941
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
fd719d1
to
e51a78a
Compare
* Update Makefile with changes from #7372 Signed-off-by: Thane Thomson <connect@thanethomson.com> * Sync main GitHub config with master and update Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove unnecesary dot folders Signed-off-by: Thane Thomson <connect@thanethomson.com> * Sync dotfiles Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove unused Jepsen tests for now Signed-off-by: Thane Thomson <connect@thanethomson.com> * tools: remove k8s (#6625) Remove mintnet as discussed on team call. closes #1941 * Restore nightly fuzz testing of P2P addrbook and pex Signed-off-by: Thane Thomson <connect@thanethomson.com> * Fix YAML lints Signed-off-by: Thane Thomson <connect@thanethomson.com> * Fix YAML formatting nits Signed-off-by: Thane Thomson <connect@thanethomson.com> * More YAML nits Signed-off-by: Thane Thomson <connect@thanethomson.com> * github: fix linter configuration errors and occluded errors (#6400) * Minor fixes to OpenAPI spec to sync with structs on main Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove .github/auto-comment.yml - does not appear to be used Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add issue config with link to discussions Signed-off-by: Thane Thomson <connect@thanethomson.com> * Adjust issue/PR templates to suit current process Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove unused RC branch config from release workflow Signed-off-by: Thane Thomson <connect@thanethomson.com> * Fix wildcard matching in build jobs config Signed-off-by: Thane Thomson <connect@thanethomson.com> * Document markdownlint config Signed-off-by: Thane Thomson <connect@thanethomson.com> * Restore manual E2E test group config Signed-off-by: Thane Thomson <connect@thanethomson.com> * Document linter workflow with local execution instructions Signed-off-by: Thane Thomson <connect@thanethomson.com> * Document and fix minor nit in Super-Linter markdownlint config Signed-off-by: Thane Thomson <connect@thanethomson.com> * Update .github/ISSUE_TEMPLATE/bug-report.md Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> * Update pull request template to add language around discussions/issues Signed-off-by: Thane Thomson <connect@thanethomson.com> * .golangci.yml: Deleted commented-out lines Signed-off-by: Thane Thomson <connect@thanethomson.com> * ci: Drop "-2" from e2e-nightly-fail workflow Signed-off-by: Thane Thomson <connect@thanethomson.com> * Address triviality concern in PR template Signed-off-by: Thane Thomson <connect@thanethomson.com> Co-authored-by: Marko <marbar3778@yahoo.com> Co-authored-by: Sam Kleinman <garen@tychoish.com> Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
…#9157) * Update CODEOWNERS to use teams (#9129) * 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> * Prepare `main` to become new default branch (#9095) * Update Makefile with changes from #7372 Signed-off-by: Thane Thomson <connect@thanethomson.com> * Sync main GitHub config with master and update Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove unnecesary dot folders Signed-off-by: Thane Thomson <connect@thanethomson.com> * Sync dotfiles Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove unused Jepsen tests for now Signed-off-by: Thane Thomson <connect@thanethomson.com> * tools: remove k8s (#6625) Remove mintnet as discussed on team call. closes #1941 * Restore nightly fuzz testing of P2P addrbook and pex Signed-off-by: Thane Thomson <connect@thanethomson.com> * Fix YAML lints Signed-off-by: Thane Thomson <connect@thanethomson.com> * Fix YAML formatting nits Signed-off-by: Thane Thomson <connect@thanethomson.com> * More YAML nits Signed-off-by: Thane Thomson <connect@thanethomson.com> * github: fix linter configuration errors and occluded errors (#6400) * Minor fixes to OpenAPI spec to sync with structs on main Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove .github/auto-comment.yml - does not appear to be used Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add issue config with link to discussions Signed-off-by: Thane Thomson <connect@thanethomson.com> * Adjust issue/PR templates to suit current process Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove unused RC branch config from release workflow Signed-off-by: Thane Thomson <connect@thanethomson.com> * Fix wildcard matching in build jobs config Signed-off-by: Thane Thomson <connect@thanethomson.com> * Document markdownlint config Signed-off-by: Thane Thomson <connect@thanethomson.com> * Restore manual E2E test group config Signed-off-by: Thane Thomson <connect@thanethomson.com> * Document linter workflow with local execution instructions Signed-off-by: Thane Thomson <connect@thanethomson.com> * Document and fix minor nit in Super-Linter markdownlint config Signed-off-by: Thane Thomson <connect@thanethomson.com> * Update .github/ISSUE_TEMPLATE/bug-report.md Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> * Update pull request template to add language around discussions/issues Signed-off-by: Thane Thomson <connect@thanethomson.com> * .golangci.yml: Deleted commented-out lines Signed-off-by: Thane Thomson <connect@thanethomson.com> * ci: Drop "-2" from e2e-nightly-fail workflow Signed-off-by: Thane Thomson <connect@thanethomson.com> * Address triviality concern in PR template Signed-off-by: Thane Thomson <connect@thanethomson.com> Co-authored-by: Marko <marbar3778@yahoo.com> Co-authored-by: Sam Kleinman <garen@tychoish.com> Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> Co-authored-by: Thane Thomson <connect@thanethomson.com> Co-authored-by: Marko <marbar3778@yahoo.com> Co-authored-by: Sam Kleinman <garen@tychoish.com> Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
This PR aims to sync the entire
.github
folder inmain
with that inmaster
, updating the configuration for the new repo strategy.One minor update to the
Makefile
was necessary in order to keep the tests split into groups, and some updates to some YAML files were necessary to get the linter to pass.While I was at it, I've now updated the various issue/PR templates to better reflect our current workflow. Please let me know whether those updates seem reasonable. Some of the main changes there:
.github/auto-comment.yml
- doesn't seem like it was being used.github/ISSUE_TEMPLATE/{proposal,feature-request}.md
- removed the#### For Admin Use
section. Doesn't look like we really pay attention to it?.github/ISSUE_TEMPLATE/config.yml
- hopefully I've configured this correctly (as per the GitHub docs)..github/ISSUE_TEMPLATE/*.md
- updated the instructions in the comments to redirect users to the discussions section of the repo if they want to ask questions instead of logging issues.