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

Bump go package to v2 #389

Closed
3 tasks
colin-axner opened this issue Sep 10, 2021 · 2 comments · Fixed by #400
Closed
3 tasks

Bump go package to v2 #389

colin-axner opened this issue Sep 10, 2021 · 2 comments · Fixed by #400
Assignees
Milestone

Comments

@colin-axner
Copy link
Contributor

Summary

We want to do a v2 release with #350, since this contains API breaking changes, we should follow go semantic versioning by bumping our package version as well. The go.mod file will read:

module github.com/cosmos/ibc-go/v2

All imports will need to change. I think this will be beneficial long term as it'll allow us to reference old code/structures when we need to maintain backwards compatibility


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged/assigned
@colin-axner colin-axner self-assigned this Sep 10, 2021
@colin-axner colin-axner mentioned this issue Sep 13, 2021
9 tasks
@fedekunze
Copy link
Contributor

why do you need to update the go package too?

@colin-axner
Copy link
Contributor Author

colin-axner commented Sep 14, 2021

why do you need to update the go package too?

This way we can import old code when we need to maintain backwards compatibility. This is especially useful for protobuf definitions which might change. For example, if the client state proto definition changes, we may want to import the v1 definition/implementation and decode the client state bytes into that definition for connections which cannot use the newer definition. We ran into this issue changing the version of solo machine which required migration code to reimplement the solo machine interface, if the migration code actually needed to use any of the interface functions, we would have had to maintain duplicate code, much easier to import.

Having separate histories for each version of this go module may prove useful for external clients as well.

This follows the golang module version, specifically when handling major version increments:

A major version update to a number higher than v1 will also have a new module path. That’s because the module path will have the major version number appended, as in the following example:

module example.com/mymodule/v2 v2.0.0

A major version update makes this a new module with a separate history from the module’s previous version. If you’re developing modules to publish for others, see “Publishing breaking API changes” in Module release and versioning workflow.

gaia does this as well. Happy to discuss the pros/cons, but changing imports per major version jump seems like low overhead for the potential benefits

@crodriguezvega crodriguezvega added this to the 2.0.0 milestone Sep 17, 2021
faddat pushed a commit to notional-labs/ibc-go that referenced this issue Feb 23, 2022
* added simulation params

* fixed return types

* implemented full sim test on wasmd

* removed wrong committed github action

* switched to a import export test since i'm introducing params and genesis simulations

* fixed makefile

* Fixed sim test flags not working

* fixed some errors on sim test

* fixed conflicts
still a failure to be solved

* fixed wasm params error

* added missing codec

* Update params.go

removed unused import

* fixed intellij cache errors

* added full app simulation test that pass

* added README.md for sims credits
added me into contributors list

Co-authored-by: riccardo.montagnin <[email protected]>
faddat pushed a commit to notional-labs/ibc-go that referenced this issue Mar 1, 2022
* Add wasmd scripts

* Apply suggestions from code review

Co-authored-by: colin axnér <[email protected]>

Co-authored-by: colin axnér <[email protected]>
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

Successfully merging a pull request may close this issue.

3 participants