-
Notifications
You must be signed in to change notification settings - Fork 359
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
Package versioning is a huge mess right now #851
Comments
Why? cw2 only needs to depend on cosmwasm-std 1.1.0 if it specifically needs something from 1.1.0.
To see this in action, you can simply create a new project with dependencies e.g:
and then run
showing that cw2 is indeed using the latest compatible version of cosmwasm-std, namely 1.1.9. |
@apollo-sturdy What about cw-storage-plus? Currently my repo's
My guess is this may also increase the size of wasm binaries, as they need to include two copies of What I wish is there only being one version of each package in My main argument here is that mono-repo is the better approach. With the current approach of each package being their separate repo, whenever you have a major version bump of something (like cw-storage-plus 0.16 to 1.0 here) you need to go into every repo and bump them individually. With the mono-repo approach you just update one line in |
|
@larry0x This is expected since 0.16.0 and 1.0.1 are not compatible. Since the two versions are not compatible of course your project would need to have both versions included in Cargo.lock. So the real question here is how easily can cw2 be upgraded to use version >=1.0.0 of cw-storage-plus and why hasn't anyone done it yet? Perhaps it is because the maintainers forgot, or perhaps there is a good reason, e.g. that upgrading would require making big changes to the package. I can see the value in your suggestion of having each of the packages in cw-plus have their dependencies specified by the workspace Cargo.toml file, but if it is the case that the dependency has not been updated on purpose (because of major breaking changes), then you would have to either make an exception to that package, or wait with upgrading all other packages until you have time to upgrade this one. |
After digging a bit deeper it seems all packages in @ethanfrey @uint Can we get some input here? Is there a good reason here or have you simply not gotten around to updating these dependencies? Would you like help in updating them and if so, would you prefer using the suggestion from @larry0x to keep versions in the workspace Cargo.toml, or would you prefer a PR that simply updates all of the dependencies and bumps each patch version? |
I think that was just oversight on my part. My bad!
I no longer work for Confio and I imagine they haven't yet decided how to own/maintain this repo. I'm sure a PR will be appreciated. As to the approach, I'd suggest updating the deps ( To verify minimal versions work, you can always run |
Yes, this was supposed to be Tom's last project. My bad not to review the code better. I'm super busy, and holidays are coming. I will try to get someone to work on it. If someone does make a PR doing the obvious bumps in the Cargo.toml files (set version to |
These packages were released with updated deps: I consider this issue solved. |
cw-plus is also on 1.0.0. Jakub just pushed a missing git tag. It was on crates.io already before. |
Thanks @ethanfrey. I've created a PR here: #853 |
See the following table:
As you see the versioning is not intuitive at all. E.g. cw20 is on 1.0.0 and depends on cosmwasm-std 1.1.0, all good. cw2 is also at 1.0.0 so it should depend on cosmwasm-std 1.1.0 as well, right? But nope, it's on 1.0.0.
This is especially tricky to deal with when some package versions include bugs that need to be avoided: cw-storage-plus 1.0.0 (already fixed in 1.0.1) and cw-utils 1.0.0 (not yet fixed: CosmWasm/cw-minus#4).
In my opinion, this is caused by scattering these packages into multiple repositories. It'd be better if they are all merged into one mono-repo and their dependencies managed centrally by the workspace
Cargo.toml
.The text was updated successfully, but these errors were encountered: