-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
EPIC: Dev UX #13085
Comments
Love to see this epic getting started, but it's paramount that we have clearly documented proposals and the motivation for them. We also might want to reference ADR-061 here too. |
|
We're literally doing most of this now. The team has been working hard and diligently on improving tests. See the improvements we've made in mocking, dependency isolation, etc...I encourage you to actually spend time looking over the recent testing related PRs the team has worked hard on. |
A migration to the standard Protobuf JSON encoding is also something worth considering -- see cosmos/cosmos-rust#83 for the context |
Carrying on from what Robert mentioned, we should document unit tests and mocks in order to educate users. For integration tests we should create a framework where all that is needed are routers. This would enable modules to write tests without needing to import unneeded modules. For example, if someone is testing bank via integration tests, they shouldn't need to import staking, but only need auth to run integration tests. Once we have the integration framework it is easy to extend this to a module level benchmark framework that works with a store package to simulate real life scenarios. To me this is a huge pain point of users, there are many different ways to write test because we don't have a framework for this. cc @itsdevbear |
Most of these have been implemented. The rest is documentation related, so I have linked them in a different issue. |
Summary
Much of the cosmos-sdk was written many years ago while it was evolving and growing its user base. In these times its hard to pinpoint the exact API's users may want. It has now been almost 3 years since appmodule interfaces were introduced and we have learned a lot on how to simplify things.
There is ongoing work with the core api and runtime modules in order to handle lots of the wiring. There will be a migration story, but there are users that may want to take longer to migrate instead of all at once. For these users it makes sense to spend a few days cleaning up the old apis to make it more ergonomic. Many of the changes would be minimal and could be done in a backwards way
On top of the APIs of creating modules, there are other areas where users could benefit from some cleanup.
Some ideas are:
I'd love to hear from @ValarDragon @ethanfrey @jackzampolin on other things they would like to see. Then we can add it to the tracking list:
Focus list:
EventTypeMessage
inclusion in every message execution #11868As per the interviews with chain devs, the following issues have been created:
Exhaustive list:
The text was updated successfully, but these errors were encountered: