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

[DX] There isn’t a single local command to ensure all CI will pass #9415

Closed
nagisa opened this issue Aug 11, 2023 · 3 comments
Closed

[DX] There isn’t a single local command to ensure all CI will pass #9415

nagisa opened this issue Aug 11, 2023 · 3 comments

Comments

@nagisa
Copy link
Collaborator

nagisa commented Aug 11, 2023

We identified flaky tests and similar such issues as a pain point back at the Washington protocol team meetup. We have made significant improvements on that front and now have significantly fewer flaky tests, and yet the developer experience still seems to be in a pretty terrible spot, and the remaining flaky tests are just a part of a problem.

In particular I find myself having a significant back-and-forth with the CI every time I make a pull request. Sometimes, yes, it is just a flaky test that requires a re-run, but more often than not it is a game of a whack-a-mole with all different test configurations that the CI runs. If I make sure that cargo nextest works locally, then the CI is more likely than not to complain about some integration test or some test that only runs with --features=nightly, if I run my local tests with --features=nightly and enable integration tests, then the regular non-nightly tests will explode. Even things as simple as formatting are a pain, as I find myself waiting 15 minutes just to find out I forgot to run cargo fmt for the last formatting touch-ups.

This last one I made an attempt to improve upon in #9290, but the general observation I have is that, unless I set up my development workflow to effectively replicate what buildkite does, I will be fighting the CI all the time. And I don’t want to do any of that. I want to cargo nextest, git push and move on with my day.

I would argue that if everybody ran the entire test suite all the time locally, we’d also somewhat naturally figure out the issues to flaky tests and #9367 as well.

@nagisa nagisa changed the title [DX] There isn’t a single command to ensure all CI will pass [DX] There isn’t a single local command to ensure all CI will pass Aug 11, 2023
@nagisa
Copy link
Collaborator Author

nagisa commented Aug 11, 2023

It would be great if we could find some resources to improve on this. We could also have a (very) short session to probe other engineers if they're happy/unhappy about their developer experience and where their pain points are if any.

cc @akhi3030 @gmilescu @walnut-the-cat

@nikurt
Copy link
Contributor

nikurt commented Aug 14, 2023

To ensure my PR will pass the sanity check I'm running this

cargo fmt && cargo check --workspace --all-targets --all-features && ./scripts/run_clippy.sh && cargo build -pneard

Integration tests nightly/not-nightly, and nayduck are separate, and that is not convenient.

@nagisa
Copy link
Collaborator Author

nagisa commented Jan 19, 2024

just test-ci should give everyone a pretty good level of confidence nowadays, although it is pretty slow to run…

@nagisa nagisa closed this as completed Jan 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants