-
Notifications
You must be signed in to change notification settings - Fork 245
Bump parking_lot to 0.10 #332
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
Changes from 4 commits
287ea37
89448b6
564ead9
ed74d1f
29edac1
45a4a12
3078dc3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,6 @@ | ||
| [package] | ||
| name = "parity-util-mem" | ||
| version = "0.4.2" | ||
| version = "0.5.0" | ||
| authors = ["Parity Technologies <admin@parity.io>"] | ||
| repository = "https://github.com/paritytech/parity-common" | ||
| description = "Collection of memory related utilities" | ||
|
|
@@ -25,7 +25,7 @@ impl-trait-for-tuples = "0.1.3" | |
|
|
||
| smallvec = { version = "1.0.0", optional = true } | ||
| ethereum-types = { version = "0.8.0", optional = true, path = "../ethereum-types" } | ||
| parking_lot = { version = "0.9.0", optional = true } | ||
| parking_lot = { version = "0.10.0", optional = true } | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Isn't that a breaking change for
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Seems like no.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. But that's public API.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. hmm technically yes, but it will require major bump just for everything
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yeah, that's version bump creep is unfortunate, but we already have to do this e.g. for |
||
| primitive-types = { version = "0.6", path = "../primitive-types", default-features = false, optional = true } | ||
|
|
||
| [target.'cfg(target_os = "windows")'.dependencies] | ||
|
|
||
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.
sorry for being semver-nazzi, but this is a breaking change for all
kvdb-*libs now :)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.
Now I think not.
How do you think it can break?
in previous example it could break because of implementation for parking-lot:0.9.0 gone missing, seems this is not the case here.
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.
The way to think about breaking changes is imagine you bump a version of only this crate in a lib that uses it as a dependency, will the compilation of the lib break? In this case the answer is yes, because the lib uses
parity-util-mem::MallocSizeOfv0.4.0 and e.g.kvdb-rocksdbv0.4.2, butkvdb-rocksdbv0.4.3 (if you bump it that way) doesn't implement it (as it implementsparity-util-mem::MallocSizeOfv0.5.0) and hence it doesn't implementkvdb0.4.0 etc, so you will get compilation errors.Uh oh!
There was an error while loading. Please reload this page.
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.
This breakage can be avoided by requiring kvdb ^0.4.3 (which is default when requiring just 0.4.3) in kvdb-rocksdb
So if you upgrade one to latest, you are forced to upgrade another
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.
sometimes you can upgrade to the latest breaking change easily, but it doesn't make the change non-breaking
sometimes you can't control all of your dependencies, imagine that
parity-util-memis a transitive dependency of some lib, so the lib can't just upgrade it by bumping in itsCargo.toml;that way the lib will end up with 2 versions of
parity-util-mem0.4.0 and 0.5.0, which are incompatibleThere 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 incompatible? If you use it directly, you use only one of the versions. If you don’t use it directly, you don’t care if they are duplicated :)
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.
Well,
KeyValueDBv0.3.1inherits fromparity_util_mem::MallocSizeOfv0.4.0parity-common/kvdb/src/lib.rs
Line 112 in 996d370
You don't bump the
kvdbversion here, but bump onlykvdb-rocksdbto0.4.3, so it no longer implementsKeyValueDBv0.3.1, right? Now, if you bumpkvdbto0.3.2, thenkvdb-rocksdb_v0.4.2no longer implements that.Also parity-util-mem has a feature of global allocator which we use in parity-ethereum, so having two versions there will probably not work.
But I feel like we've spend too much time debating on this issue already and it's easier to just bump the major versions :)
Uh oh!
There was an error while loading. Please reload this page.
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.
Imagine this code
this will break
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.
Yeah, of course it is easier, I just thought if we could avoid this cascading bump spam
But seems like no way :)