-
Notifications
You must be signed in to change notification settings - Fork 609
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
test: upgrade testing automation #1389
Conversation
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.
Nice work, left some comments. Please take a look
Codecov Report
@@ Coverage Diff @@
## main #1389 +/- ##
==========================================
- Coverage 19.82% 19.53% -0.29%
==========================================
Files 202 226 +24
Lines 27685 30953 +3268
==========================================
+ Hits 5489 6048 +559
- Misses 21175 23800 +2625
- Partials 1021 1105 +84
Continue to review full report at Codecov.
|
Co-authored-by: Roman <roman@osmosis.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.
Thanks for the review, resolved everything that I added in the following commit. Just had a few clarifying questions.
tests/e2e/chain_init/main.go
Outdated
telemetryEnabled bool | ||
telemetryRetentionTime int64 | ||
prometheusEnabled bool |
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.
Why would we ever need these in a CI job?
tests/e2e/chain/config.go
Outdated
@@ -249,7 +266,7 @@ func initNodes(c *internalChain) error { | |||
return nil | |||
} | |||
|
|||
func initValidatorConfigs(c *internalChain) error { | |||
func initValidatorConfigs(c *internalChain, pruning string, pruningKeepRecent string, pruningInterval string, snapshotInterval uint64, snapshotKeepRecent uint32, telemetryEnabled bool, telemetryRetentionTime int64, prometheusEnabled bool) error { |
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 these configs should instead be per-validator. Can we do this in a separate PR?
I think we should limit the scope of this one to just the upgrade and keep adding on top of it after. Otherwise, we might have to keep iterating on this large PR for some time. Let me know your thoughts
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.
Great work on the updates. Left some comments, let me know what you think. Also, already DMed you about potentially moving chain parameters to a separate PR if that's not too much trouble
Closes: #1277 ## What is the purpose of the change This PR adds scaling factors to current stable swap implementation. For context on why scaling factors are needed: Suppose 1000 stablecoin1 equals 1 dollars, 100 stablecoin2 equals 2 dollars due to precision difference. Currently we compare each pool assets without considering these differences in precisions in `calcOutAmtGivenIn`, `calcInAmtGivenOut`, `SpotPrice`. This PR adds a field of scaling factors for each pool asset so that when internally calculating in `amm.go`, we compare two different assets upon same precision points. We do this by feeding the internal functions assets / scaling factors. ## Brief change log - Adds scaling factor to stableswap *(for example:)* - *The metadata is stored in the blob store on job creation time as a persistent artifact* - *Deployments RPC transmits only the blob storage reference* - *Daemons retrieve the RPC data from the blob cache* ## Testing and Verifying This change is a trivial rework / code cleanup without any test coverage. ## Documentation and Release Note - Does this pull request introduce a new feature or user-facing behavior changes? yes - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? no - How is the feature or change documented? not applicable
f0f61b0
to
5e9feb5
Compare
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.
LGTM
Closes: #1333 , #1235
What is the purpose of the change
This pull request follows the methodology laid out in #1333 to complete the minimum viable product needed for #1235
Process
Testing and Verifying
This change is already covered by existing e2e test suite. This was tested locally and through github CI
Here is an example of the test output
Documentation and Release Note
Unreleased
section inCHANGELOG.md
? noNotes / Next Steps
From here, we can create an environment variable that allows us to skip upgrade testing and instead only compile locally and go though the chain tests. This will save us time instead of having to go through the upgrade process for every commit.
Another important note, I removed the locally compile osmosis-init-image step here since it is not needed at the moment. When we introduce the environment variable addressed above, we will need to re-add this to compile the v8 init image instead of compiling with the v7 init image from docker hub. We should split these into two separate make tests so that way we are only compiling the docker images we absolutely need. The full upgrade testing takes only 8 minutes though.
Another note, I need to backport the config changes to v7.x that changes the gov voting period
Last note, we need to change the test.yml because if you can make a commit that does not pass the e2e-test at first, but if you do a second commit that does not trigger this
enc.GIT_DIFF
, it will skip the test despite actually not passing it. cc @daniel-farina if you know how to go about fixing this. I know it will run on a PR which is all that really matters, but in my mind I feel if it fails once instead of just skipping it the second time it should show "still fails" if that makes sense.