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

Compatibility matrix Core x SDK #17487

Closed
julienrbrt opened this issue Aug 21, 2023 · 4 comments · Fixed by #18858
Closed

Compatibility matrix Core x SDK #17487

julienrbrt opened this issue Aug 21, 2023 · 4 comments · Fixed by #18858
Assignees
Labels
T: Dev UX UX for SDK developers (i.e. how to call our code) T:Docs Changes and features related to documentation.

Comments

@julienrbrt
Copy link
Member

julienrbrt commented Aug 21, 2023

With changes like this we need to start to create a compatibility matrix of core x SDK. As for instance a module implementing PreBlock from core v0.11.0, in a v0.47 chain will have no effect.

Originally posted by @julienrbrt in #17468 (comment)

@github-actions github-actions bot added the needs-triage Issue that needs to be triaged label Aug 21, 2023
@julienrbrt julienrbrt removed the needs-triage Issue that needs to be triaged label Aug 21, 2023
@julienrbrt
Copy link
Member Author

julienrbrt commented Aug 21, 2023

@aaronc / @tac0turtle do you have a better idea than a simple table like: https://github.com/cosmos/cosmos-sdk/blob/main/proto/README.md ?

My main issue is that core will still be compatible, but not interfaces will be available/implemented in earlier SDK versions. Possibly, the most straightforward is to add a // Since: Cosmos SDK v0.x.x comment like we do in .proto in each go doc instead of creating a table. However, given that core is SDK agnostic, it may be weird as well.

@julienrbrt julienrbrt added the T: Dev UX UX for SDK developers (i.e. how to call our code) label Aug 21, 2023
@tac0turtle
Copy link
Member

could you explain the issue with earlier versions?

If possible avoiding Since: ... would be better as this eludes to misuse of an api if we have to share that information in a comment.

@julienrbrt
Copy link
Member Author

julienrbrt commented Aug 21, 2023

could you explain the issue with earlier versions?

If possible avoiding Since: ... would be better as this eludes to misuse of an api if we have to share that information in a comment.

As a module developer, I look at the Core API in pkg.go.dev, and I see, for instance, that a module can implement PreBlock. If I make my module available for v0.47 and v0.50 chains, it will not behave the same, as v0.47 chains will never run the PreBlock, while both chains have the same core version as dependency. If I just look at the Core API and docs, I have currently no way to know that. I need to know the internal of the SDK to be able to know that.

I am not a fan of Since: ... either, but a compatibility matrix may look quite confusing:

core version sdk version appmodule.HasPreBlocker appmodule.HasEndBlocker ...
v0.11.0 v0.50
v0.11.0 v0.47 🟥
v0.10.0 v0.47 N/A

@alexanderbez
Copy link
Contributor

alexanderbez commented Aug 21, 2023

Personally, i think we should have both -- a compatibility matrix and annotations in comments. As a dev, there are times where I just simply want to know the compatibility and not have to dig through specific APIs I'm trying to use.

@github-project-automation github-project-automation bot moved this to 👀 To Do in Cosmos-SDK Nov 17, 2023
@tac0turtle tac0turtle added the T:Docs Changes and features related to documentation. label Nov 17, 2023
@tac0turtle tac0turtle self-assigned this Dec 21, 2023
@tac0turtle tac0turtle moved this from 👀 To Do to ✍ In Progress in Cosmos-SDK Dec 22, 2023
@tac0turtle tac0turtle moved this from ✍ In Progress to 📚 In review in Cosmos-SDK Dec 27, 2023
@github-project-automation github-project-automation bot moved this from 📚 In review to 🥳 Done in Cosmos-SDK Dec 27, 2023
@tac0turtle tac0turtle removed this from Cosmos-SDK Feb 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T: Dev UX UX for SDK developers (i.e. how to call our code) T:Docs Changes and features related to documentation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants