Repository: paritytech/parity-common (rust)

Issue:
CI: migrate to github actions
Travis seems to be disabled on this repo. We should migrate to github actions and get rid of appveyor as well.

Pull request:
github actions ci
Fixes #555.

Doesn't include tests for kvdb-web, I'm planning to decommission it soon.
- [x] update readme badge
- [x] test parity-util-mem allocators

Patch:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..2bebe3d
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,160 @@
+on:
+  pull_request:
+  push:
+    branches:
+      - master
+
+name: Continuous integration
+
+jobs:
+  check:
+    name: Check
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: stable
+          override: true
+
+      - name: Rust Cache
+        uses: Swatinem/rust-cache@v1.3.0
+
+      - uses: actions-rs/cargo@v1
+        with:
+          command: check
+          args: --workspace --all-targets
+
+  test:
+    name: Test
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os:
+          - ubuntu-latest
+          - windows-latest
+          - macOS-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: stable
+          override: true
+
+      - name: Rust Cache
+        uses: Swatinem/rust-cache@v1.3.0
+
+      - name: Remove msys64 # Workaround to resolve link error with C:\msys64\mingw64\bin\libclang.dll
+        if: runner.os == 'Windows'
+        run: Remove-Item -LiteralPath "C:\msys64\" -Force -Recurse
+
+      - name: Install dependencies
+        if: runner.os == 'Windows'
+        run: choco install llvm -y
+
+      - run: rustup target add wasm32-unknown-unknown
+
+      - name: Test no-default-features
+        uses: actions-rs/cargo@v1
+        with:
+          command: test
+          args: --workspace --no-default-features
+
+      - name: Test default features
+        uses: actions-rs/cargo@v1
+        with:
+          command: test
+          args: --workspace
+
+      - name: Test uint
+        uses: actions-rs/cargo@v1
+        with:
+          command: test
+          args: -p uint --all-features
+
+      - name: Test fixed-hash no_std
+        run: cargo test -p fixed-hash --no-default-features --features='byteorder,rustc-hex'
+
+      - name: Test fixed-hash all-features
+        uses: actions-rs/cargo@v1
+        with:
+          command: test
+          args: -p fixed-hash --all-features
+
+      - name: Test primitive-types no_std
+        run: cargo test -p primitive-types --no-default-features --features='scale-info,num-traits,serde_no_std'
+
+      - name: Test primitive-types all-features
+        uses: actions-rs/cargo@v1
+        with:
+          command: test
+          args: -p primitive-types --all-features
+
+      - name: Build ethereum-types no_std
+        run: cargo build -p ethereum-types --no-default-features --features='serialize,rlp' --target=wasm32-unknown-unknown
+
+      - name: Test ethereum-types all-features
+        uses: actions-rs/cargo@v1
+        with:
+          command: test
+          args: -p ethereum-types --all-features
+
+      - name: Test ethbloom all-features
+        uses: actions-rs/cargo@v1
+        with:
+          command: test
+          args: -p ethbloom --all-features
+
+      - name: Test parity-crypto all-features
+        uses: actions-rs/cargo@v1
+        with:
+          command: test
+          args: -p parity-crypto --all-features
+
+      - name: Test uint on bigendian
+        if: runner.os == 'Linux'
+        uses: actions-rs/cargo@v1
+        with:
+          use-cross: true
+          command: test
+          args: -p uint --target=mips64-unknown-linux-gnuabi64
+
+      - name: Test parity-util-mem on Android
+        if: runner.os == 'Linux'
+        uses: actions-rs/cargo@v1
+        with:
+          use-cross: true
+          command: test
+          args: -p parity-util-mem --target=aarch64-linux-android
+
+      - name: Test parity-util-mem estimate-heapsize 
+        run: cargo test -p parity-util-mem --features='estimate-heapsize'
+
+      - name: Test parity-util-mem jemalloc-global 
+        run: cargo test -p parity-util-mem --features='jemalloc-global'
+
+      - name: Test parity-util-mem mimalloc-global 
+        if: runner.os != 'Windows'
+        run: cargo test -p parity-util-mem --features='mimalloc-global'
+
+      - name: Test parity-util-mem dlmalloc-global 
+        if: runner.os != 'Windows'
+        run: cargo test -p parity-util-mem --no-default-features --features='dlmalloc-global'
+
+  fmt:
+    name: Rustfmt
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v1
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: stable
+          override: true
+      - run: rustup component add rustfmt
+      - uses: actions-rs/cargo@v1
+        with:
+          command: fmt
+          args: --all -- --check
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 13e3a21..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,69 +0,0 @@
-language: rust
-branches:
-  only:
-    - master
-matrix:
-  include:
-    - os: linux
-      rust: stable
-      before_script:
-        - rustup component add rustfmt
-    - os: linux
-      rust: nightly
-      script:
-        - cargo generate-lockfile --verbose && cargo update -p funty --precise "1.1.0" --verbose
-        - cargo check --workspace --benches
-    - os: linux
-      rust: stable
-      install:
-        - cargo install cross
-      script:
-        - cargo generate-lockfile --verbose && cargo update -p funty --precise "1.1.0" --verbose
-        - cross test --target=aarch64-linux-android -p parity-util-mem
-        - cross test --target=mips64-unknown-linux-gnuabi64 -p uint
-    - os: osx
-      osx_image: xcode11.3
-      addons:
-        firefox: latest
-      rust: stable
-  allow_failures:
-    - rust: nightly
-install:
-  - rustup target add wasm32-unknown-unknown
-  - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | sh
-  - source ~/.nvm/nvm.sh
-  - nvm install --lts
-  - npm install -g geckodriver@1.19.1 # https://github.com/rustwasm/wasm-bindgen/issues/2261
-  - curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
-  - which geckodriver
-script:
-  - cargo generate-lockfile --verbose && cargo update -p funty --precise "1.1.0" --verbose
-  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then
-    cargo fmt -- --check;
-    fi
-  - cargo check --workspace --tests --benches
-  - cargo test --workspace --exclude uint --exclude fixed-hash --exclude parity-crypto
-  - if [ "$TRAVIS_RUST_VERSION" == "nightly" ]; then
-    cd contract-address/ && cargo test --features=external_doc && cd ..;
-    fi
-  - cd ethbloom/ && cargo test --no-default-features --features="rustc-hex" && cargo check --benches && cd ..
-  - cd ethereum-types/ && cargo build --no-default-features --features="serialize,rlp" --target=wasm32-unknown-unknown && cd ..
-  - cd fixed-hash/ && cargo test --all-features && cargo test --no-default-features --features="byteorder,rustc-hex" && cd ..
-  - cd uint/ && cargo test --all-features && cargo test --no-default-features && cd ..
-  - cd keccak-hash/ && cargo test --no-default-features && cd ..
-  - cd plain_hasher/ && cargo test --no-default-features && cargo check --benches && cd ..
-  - cd parity-bytes/ && cargo test --no-default-features && cd ..
-  - cd parity-crypto/ && cargo test --all-features && cd ..
-  - cd parity-util-mem/ && cargo test --features=estimate-heapsize && cd ..
-  - cd parity-util-mem/ && cargo test --features=jemalloc-global && cd ..
-  - cd parity-util-mem/ && cargo test --features=mimalloc-global && cd ..
-  - cd parity-util-mem/ && cargo test --no-default-features --features=dlmalloc-global && cd ..
-  - cd primitive-types/ && cargo test --all-features && cd ..
-  - cd primitive-types/ && cargo test --no-default-features --features=serde_no_std && cd ..
-  - cd primitive-types/ && cargo test --no-default-features --features=scale-info && cd ..
-  - cd primitive-types/ && cargo test --no-default-features --features=num-traits && cd ..
-  - cd rlp/ && cargo test --no-default-features && cargo check --benches && cd ..
-  - cd triehash/ && cargo check --benches && cd ..
-  - cd kvdb-web/ && wasm-pack test --headless --firefox && cd ..
-  - cd ethbloom/ && cargo test --all-features && cd ..
-  - cd ethereum-types/ && cargo test --all-features && cd ..
diff --git a/Cargo.toml b/Cargo.toml
index c3380e0..3092027 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,4 +1,5 @@
 [workspace]
+resolver = "2"
 members = [
 	"contract-address",
 	"fixed-hash",
diff --git a/README.md b/README.md
index b4647e7..2a97d14 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,4 @@
-[![Build Status travis][travis-image]][travis-url]
-[![Build Status appveyor][appveyor-image]][appveyor-url]
-
-[travis-image]: https://travis-ci.org/paritytech/parity-common.svg?branch=master
-[travis-url]: https://travis-ci.org/paritytech/parity-common
-[appveyor-image]: https://ci.appveyor.com/api/projects/status/github/paritytech/parity-common?branch=master&svg=true
-[appveyor-url]: https://ci.appveyor.com/project/paritytech/parity-common/branch/master
+[![Continuous integration](https://github.com/paritytech/parity-common/actions/workflows/ci.yml/badge.svg)](https://github.com/paritytech/parity-common/actions/workflows/ci.yml)
 
 # parity-common
 Collection of crates used in [Parity Technologies](https://www.paritytech.io/) projects
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index 6a0725a..0000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-environment:
-  matrix:
-    - FEATURES: ""
-
-platform:
-  - x86_64-pc-windows-msvc
-
-# avoid running tests twice
-branches:
-  only:
-    - master
-
-install:
-  - curl -sSf -o rustup-init.exe https://win.rustup.rs/
-  - rustup-init.exe -y --default-host %PLATFORM%
-  - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin
-  - rustc -vV
-  - cargo -vV
-
-build_script:
-  - cargo generate-lockfile --verbose && cargo update -p funty --precise "1.1.0" --verbose
-  - cargo check --tests
-  - cargo build --all
-
-test_script:
-  - cargo test --all --exclude uint --exclude fixed-hash
-  - cd fixed-hash/ && cargo test --all-features && cd ..
-  - cd uint/ && cargo test --features=std,quickcheck --release && cd ..
-  - cd plain_hasher/ && cargo test --no-default-features && cd ..
-  - cd parity-util-mem/ && cargo test --no-default-features && cd ..
-  - cd parity-util-mem/ && cargo test --features=estimate-heapsize && cd ..
-  - cd parity-util-mem/ && cargo test && cd ..
diff --git a/contract-address/CHANGELOG.md b/contract-address/CHANGELOG.md
index 583ee85..673568b 100644
--- a/contract-address/CHANGELOG.md
+++ b/contract-address/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog].
 
 ## [Unreleased]
 
+### Breaking
+- Updated `ethereum-types` to 0.12. [#556](https://github.com/paritytech/parity-common/pull/556)
+- Updated `keccak-hash` to 0.8. [#556](https://github.com/paritytech/parity-common/pull/556)
+
 ## [0.6.0] - 2021-01-27
 ### Breaking
 - Updated `ethereum-types` to 0.11. [#510](https://github.com/paritytech/parity-common/pull/510)
diff --git a/contract-address/Cargo.toml b/contract-address/Cargo.toml
index 993ffe2..b534f05 100644
--- a/contract-address/Cargo.toml
+++ b/contract-address/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "contract-address"
-version = "0.6.0"
+version = "0.7.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 license = "MIT OR Apache-2.0"
 homepage = "https://github.com/paritytech/parity-common"
@@ -11,9 +11,9 @@ edition = "2018"
 readme = "README.md"
 
 [dependencies]
-ethereum-types = { version = "0.11.0", path = "../ethereum-types" }
+ethereum-types = { version = "0.12.0", path = "../ethereum-types" }
 rlp = { version = "0.5", path = "../rlp" }
-keccak-hash = { version = "0.7", path = "../keccak-hash", default-features = false }
+keccak-hash = { version = "0.8", path = "../keccak-hash", default-features = false }
 
 [features]
 default = []
diff --git a/ethereum-types/CHANGELOG.md b/ethereum-types/CHANGELOG.md
index cfc8d22..15d97c7 100644
--- a/ethereum-types/CHANGELOG.md
+++ b/ethereum-types/CHANGELOG.md
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog].
 
 ## [Unreleased]
 
+### Breaking
+- Updated `primitive-types` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+
 ## [0.11.0] - 2021-01-27
 ### Breaking
 - Updated `ethbloom` to 0.11. [#510](https://github.com/paritytech/parity-common/pull/510)
diff --git a/ethereum-types/Cargo.toml b/ethereum-types/Cargo.toml
index dfe86dc..b0c1249 100644
--- a/ethereum-types/Cargo.toml
+++ b/ethereum-types/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "ethereum-types"
-version = "0.11.0"
+version = "0.12.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 license = "MIT OR Apache-2.0"
 homepage = "https://github.com/paritytech/parity-common"
@@ -11,7 +11,7 @@ edition = "2018"
 ethbloom = { path = "../ethbloom", version = "0.11", default-features = false }
 fixed-hash = { path = "../fixed-hash", version = "0.7", default-features = false, features = ["byteorder", "rustc-hex"] }
 uint-crate = { path = "../uint", package = "uint", version = "0.9", default-features = false }
-primitive-types = { path = "../primitive-types", version = "0.9", features = ["byteorder", "rustc-hex"], default-features = false }
+primitive-types = { path = "../primitive-types", version = "0.10", features = ["byteorder", "rustc-hex"], default-features = false }
 impl-serde = { path = "../primitive-types/impls/serde", version = "0.3.0", default-features = false, optional = true }
 impl-rlp = { path = "../primitive-types/impls/rlp", version = "0.3", default-features = false, optional = true }
 impl-codec = { version = "0.5.0", path = "../primitive-types/impls/codec", default-features = false, optional = true }
diff --git a/keccak-hash/CHANGELOG.md b/keccak-hash/CHANGELOG.md
index ce980bb..455ca71 100644
--- a/keccak-hash/CHANGELOG.md
+++ b/keccak-hash/CHANGELOG.md
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog].
 
 ## [Unreleased]
 
+### Breaking
+- Updated `primitive-types` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+
 ## [0.7.0] - 2021-01-27
 ### Breaking
 - Updated `primitive-types` to 0.9. [#510](https://github.com/paritytech/parity-common/pull/510)
diff --git a/keccak-hash/Cargo.toml b/keccak-hash/Cargo.toml
index 6f1f29e..d48ef76 100644
--- a/keccak-hash/Cargo.toml
+++ b/keccak-hash/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "keccak-hash"
-version = "0.7.0"
+version = "0.8.0"
 description = "`keccak-hash` is a set of utility functions to facilitate working with Keccak hashes (256/512 bits long)."
 authors = ["Parity Technologies <admin@parity.io>"]
 repository = "https://github.com/paritytech/parity-common"
@@ -10,7 +10,7 @@ edition = "2018"
 
 [dependencies]
 tiny-keccak = { version = "2.0", features = ["keccak"] }
-primitive-types = { path = "../primitive-types", version = "0.9", default-features = false }
+primitive-types = { path = "../primitive-types", version = "0.10", default-features = false }
 
 [dev-dependencies]
 tempfile = "3.1.0"
diff --git a/kvdb-memorydb/CHANGELOG.md b/kvdb-memorydb/CHANGELOG.md
index a5d9fa5..e9f4972 100644
--- a/kvdb-memorydb/CHANGELOG.md
+++ b/kvdb-memorydb/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog].
 
 ## [Unreleased]
 
+### Breaking
+- Updated `parity-util-mem` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+- Updated `kvdb` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+
 ## [0.9.0] - 2021-01-27
 ### Breaking
 - Updated `parity-util-mem` to 0.9. [#510](https://github.com/paritytech/parity-common/pull/510)
diff --git a/kvdb-memorydb/Cargo.toml b/kvdb-memorydb/Cargo.toml
index 9599421..c60c484 100644
--- a/kvdb-memorydb/Cargo.toml
+++ b/kvdb-memorydb/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "kvdb-memorydb"
-version = "0.9.0"
+version = "0.10.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 repository = "https://github.com/paritytech/parity-common"
 description = "A key-value in-memory database that implements the  `KeyValueDB` trait"
@@ -8,12 +8,12 @@ license = "MIT OR Apache-2.0"
 edition = "2018"
 
 [dependencies]
-parity-util-mem = { path = "../parity-util-mem", version = "0.9", default-features = false, features = ["std"] }
+parity-util-mem = { path = "../parity-util-mem", version = "0.10", default-features = false, features = ["std"] }
 parking_lot = "0.11.1"
-kvdb = { version = "0.9", path = "../kvdb" }
+kvdb = { version = "0.10", path = "../kvdb" }
 
 [dev-dependencies]
-kvdb-shared-tests = { path = "../kvdb-shared-tests", version = "0.7" }
+kvdb-shared-tests = { path = "../kvdb-shared-tests", version = "0.8" }
 
 [features]
 default = []
diff --git a/kvdb-rocksdb/CHANGELOG.md b/kvdb-rocksdb/CHANGELOG.md
index 72ca223..495612f 100644
--- a/kvdb-rocksdb/CHANGELOG.md
+++ b/kvdb-rocksdb/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog].
 
 ## [Unreleased]
 
+### Breaking
+- Updated `kvdb` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+- Updated `parity-util-mem` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+
 ## [0.11.1] - 2021-05-03
 - Updated `rocksdb` to 0.16. [#537](https://github.com/paritytech/parity-common/pull/537)
 
diff --git a/kvdb-rocksdb/Cargo.toml b/kvdb-rocksdb/Cargo.toml
index 3b6ff8d..e146087 100644
--- a/kvdb-rocksdb/Cargo.toml
+++ b/kvdb-rocksdb/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "kvdb-rocksdb"
-version = "0.11.1"
+version = "0.12.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 repository = "https://github.com/paritytech/parity-common"
 description = "kvdb implementation backed by RocksDB"
@@ -14,20 +14,20 @@ harness = false
 [dependencies]
 smallvec = "1.0.0"
 fs-swap = "0.2.6"
-kvdb = { path = "../kvdb", version = "0.9" }
+kvdb = { path = "../kvdb", version = "0.10" }
 log = "0.4.8"
 num_cpus = "1.10.1"
 parking_lot = "0.11.1"
 regex = "1.3.1"
 rocksdb = { version = "0.16", features = ["snappy"], default-features = false }
 owning_ref = "0.4.0"
-parity-util-mem = { path = "../parity-util-mem", version = "0.9", default-features = false, features = ["std", "smallvec"] }
+parity-util-mem = { path = "../parity-util-mem", version = "0.10", default-features = false, features = ["std", "smallvec"] }
 
 [dev-dependencies]
 alloc_counter = "0.0.4"
 criterion = "0.3"
 ethereum-types = { path = "../ethereum-types" }
-kvdb-shared-tests = { path = "../kvdb-shared-tests", version = "0.7" }
+kvdb-shared-tests = { path = "../kvdb-shared-tests", version = "0.8" }
 rand = "0.8.0"
 tempfile = "3.1.0"
 keccak-hash = { path = "../keccak-hash" }
diff --git a/kvdb-web/CHANGELOG.md b/kvdb-web/CHANGELOG.md
index 323f426..1dc4d7d 100644
--- a/kvdb-web/CHANGELOG.md
+++ b/kvdb-web/CHANGELOG.md
@@ -6,6 +6,11 @@ The format is based on [Keep a Changelog].
 
 ## [Unreleased]
 
+### Breaking
+- Updated `kvdb` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+- Updated `kvdb-memorydb` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+- Updated `parity-util-mem` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+
 ## [0.9.0] - 2021-01-27
 ### Breaking
 - Updated `kvdb` to 0.9. [#510](https://github.com/paritytech/parity-common/pull/510)
diff --git a/kvdb-web/Cargo.toml b/kvdb-web/Cargo.toml
index fe04d8c..7942b6b 100644
--- a/kvdb-web/Cargo.toml
+++ b/kvdb-web/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "kvdb-web"
-version = "0.9.0"
+version = "0.10.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 repository = "https://github.com/paritytech/parity-common"
 description = "A key-value database for use in browsers"
@@ -11,12 +11,12 @@ edition = "2018"
 [dependencies]
 wasm-bindgen = "0.2.69"
 js-sys = "0.3.46"
-kvdb = { version = "0.9", path = "../kvdb" }
-kvdb-memorydb = { version = "0.9", path = "../kvdb-memorydb" }
+kvdb = { version = "0.10", path = "../kvdb" }
+kvdb-memorydb = { version = "0.10", path = "../kvdb-memorydb" }
 futures = "0.3.8"
 log = "0.4.11"
 send_wrapper = "0.5.0"
-parity-util-mem = { path = "../parity-util-mem", version = "0.9", default-features = false }
+parity-util-mem = { path = "../parity-util-mem", version = "0.10", default-features = false }
 # TODO: https://github.com/paritytech/parity-common/issues/479
 # This is hack to enable `wasm-bindgen` feature of `parking_lot` in other dependencies.
 # Thus, it's not direct dependency and do not remove until a proper fix exists.
@@ -44,6 +44,6 @@ features = [
 
 [dev-dependencies]
 console_log = "0.2.0"
-kvdb-shared-tests = { path = "../kvdb-shared-tests", version = "0.7" }
+kvdb-shared-tests = { path = "../kvdb-shared-tests", version = "0.8" }
 wasm-bindgen-test = "0.3.19"
 wasm-bindgen-futures = "0.4.19"
diff --git a/kvdb/CHANGELOG.md b/kvdb/CHANGELOG.md
index 9c2c444..15b66de 100644
--- a/kvdb/CHANGELOG.md
+++ b/kvdb/CHANGELOG.md
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog].
 
 ## [Unreleased]
 
+### Breaking
+- Updated `parity-util-mem` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+
 ## [0.9.0] - 2021-01-27
 ### Breaking
 - Updated `parity-util-mem` to 0.9. [#510](https://github.com/paritytech/parity-common/pull/510)
diff --git a/kvdb/Cargo.toml b/kvdb/Cargo.toml
index 8f22d07..66d8a18 100644
--- a/kvdb/Cargo.toml
+++ b/kvdb/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "kvdb"
-version = "0.9.0"
+version = "0.10.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 repository = "https://github.com/paritytech/parity-common"
 description = "Generic key-value trait"
@@ -9,4 +9,4 @@ edition = "2018"
 
 [dependencies]
 smallvec = "1.0.0"
-parity-util-mem = { path = "../parity-util-mem", version = "0.9", default-features = false }
+parity-util-mem = { path = "../parity-util-mem", version = "0.10", default-features = false }
diff --git a/parity-crypto/CHANGELOG.md b/parity-crypto/CHANGELOG.md
index dfa7105..af033f2 100644
--- a/parity-crypto/CHANGELOG.md
+++ b/parity-crypto/CHANGELOG.md
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog].
 
 ## [Unreleased]
 
+### Breaking
+- Updated `ethereum-types` to 0.12. [#556](https://github.com/paritytech/parity-common/pull/556)
+
 ## [0.8.0] - 2021-01-27
 ### Breaking
 - Updated `ethereum-types` to 0.11. [#510](https://github.com/paritytech/parity-common/pull/510)
diff --git a/parity-crypto/Cargo.toml b/parity-crypto/Cargo.toml
index 6de817c..851ad02 100644
--- a/parity-crypto/Cargo.toml
+++ b/parity-crypto/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "parity-crypto"
-version = "0.8.0"
+version = "0.9.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 repository = "https://github.com/paritytech/parity-common"
 description = "Crypto utils used by ethstore and network."
@@ -18,7 +18,7 @@ aes = "0.6.0"
 aes-ctr = "0.6.0"
 block-modes = "0.7.0"
 digest = "0.9.0"
-ethereum-types = { version = "0.11.0", optional = true, path = "../ethereum-types" }
+ethereum-types = { version = "0.12.0", optional = true, path = "../ethereum-types" }
 hmac = "0.10.1"
 lazy_static = { version = "1.4.0", optional = true }
 pbkdf2 = "0.7.3"
diff --git a/parity-util-mem/CHANGELOG.md b/parity-util-mem/CHANGELOG.md
index e4c5326..c5e13a7 100644
--- a/parity-util-mem/CHANGELOG.md
+++ b/parity-util-mem/CHANGELOG.md
@@ -7,6 +7,11 @@ The format is based on [Keep a Changelog].
 ## [Unreleased]
 - Fixed `malloc_usable_size` for FreeBSD. [#553](https://github.com/paritytech/parity-common/pull/553)
 
+### Breaking
+- Updated `ethereum-types` to 0.12. [#556](https://github.com/paritytech/parity-common/pull/556)
+- Updated `primitive-types` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+- Updated `hashbrown` to 0.11. [#533](https://github.com/paritytech/parity-common/pull/533)
+
 ## [0.9.0] - 2021-01-27
 ### Breaking
 - Updated `ethereum-types` to 0.11. [#510](https://github.com/paritytech/parity-common/pull/510)
diff --git a/parity-util-mem/Cargo.toml b/parity-util-mem/Cargo.toml
index d07bff9..ec90c95 100644
--- a/parity-util-mem/Cargo.toml
+++ b/parity-util-mem/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "parity-util-mem"
-version = "0.9.0"
+version = "0.10.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 repository = "https://github.com/paritytech/parity-common"
 description = "Collection of memory related utilities"
@@ -26,9 +26,9 @@ parity-util-mem-derive = { path = "derive", version = "0.1" }
 impl-trait-for-tuples = "0.2.0"
 
 smallvec = { version = "1.0.0", optional = true }
-ethereum-types = { version = "0.11.0", optional = true, path = "../ethereum-types" }
+ethereum-types = { version = "0.12.0", optional = true, path = "../ethereum-types" }
 parking_lot = { version = "0.11.1", optional = true }
-primitive-types = { version = "0.9", path = "../primitive-types", default-features = false, optional = true }
+primitive-types = { version = "0.10", path = "../primitive-types", default-features = false, optional = true }
 
 [target.'cfg(target_os = "windows")'.dependencies]
 winapi = { version = "0.3.8", features = ["heapapi"] }
diff --git a/primitive-types/CHANGELOG.md b/primitive-types/CHANGELOG.md
index 3e3357d..520cc9d 100644
--- a/primitive-types/CHANGELOG.md
+++ b/primitive-types/CHANGELOG.md
@@ -5,9 +5,13 @@ The format is based on [Keep a Changelog].
 [Keep a Changelog]: http://keepachangelog.com/en/1.0.0/
 
 ## [Unreleased]
+
+### Added
 - Added `U128::full_mul` method. [#546](https://github.com/paritytech/parity-common/pull/546)
 ### Breaking
-- Updated `scale-info` to 0.6. [#519](https://github.com/paritytech/parity-common/pull/519)
+- Updated `scale-info` to 0.9. [#556](https://github.com/paritytech/parity-common/pull/556)
+### Removed
+- Removed `parity-scale-codec` direct dependency. [#556](https://github.com/paritytech/parity-common/pull/556)
 
 ## [0.9.0] - 2021-01-27
 ### Breaking
diff --git a/primitive-types/Cargo.toml b/primitive-types/Cargo.toml
index a4d0115..030db94 100644
--- a/primitive-types/Cargo.toml
+++ b/primitive-types/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "primitive-types"
-version = "0.9.0"
+version = "0.10.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 license = "MIT OR Apache-2.0"
 homepage = "https://github.com/paritytech/parity-common"
@@ -14,10 +14,7 @@ impl-serde = { version = "0.3.1", path = "impls/serde", default-features = false
 impl-codec = { version = "0.5.0", path = "impls/codec", default-features = false, optional = true }
 impl-num-traits = { version = "0.1.0", path = "impls/num-traits", default-features = false, optional = true }
 impl-rlp = { version = "0.3", path = "impls/rlp", default-features = false, optional = true }
-scale-info-crate = { package = "scale-info", version = "0.6", features = ["derive"], default-features = false, optional = true }
-# we add parity-scale-codec here directly only because scale-info requires us to do so
-# see https://github.com/paritytech/scale-info/pull/61#discussion_r568760753
-parity-scale-codec = { version = "2.0", default-features = false, optional = true }
+scale-info-crate = { package = "scale-info", version = ">=0.9, <2", features = ["derive"], default-features = false, optional = true }
 
 [features]
 default = ["std"]
@@ -27,7 +24,7 @@ rustc-hex = ["fixed-hash/rustc-hex"]
 serde = ["std", "impl-serde", "impl-serde/std"]
 serde_no_std = ["impl-serde"]
 codec = ["impl-codec"]
-scale-info = ["codec", "scale-info-crate", "parity-scale-codec"]
+scale-info = ["codec", "scale-info-crate"]
 rlp = ["impl-rlp"]
 arbitrary = ["fixed-hash/arbitrary", "uint/arbitrary"]
 fp-conversion = ["std"]
diff --git a/primitive-types/impls/num-traits/CHANGELOG.md b/primitive-types/impls/num-traits/CHANGELOG.md
index b7385ae..e0b657b 100644
--- a/primitive-types/impls/num-traits/CHANGELOG.md
+++ b/primitive-types/impls/num-traits/CHANGELOG.md
@@ -5,4 +5,6 @@ The format is based on [Keep a Changelog].
 [Keep a Changelog]: http://keepachangelog.com/en/1.0.0/
 
 ## [Unreleased]
+
+## [0.1.1] - 2021-06-30
 - Added `integer-sqrt` trait support. [#554](https://github.com/paritytech/parity-common/pull/554)
diff --git a/primitive-types/impls/num-traits/Cargo.toml b/primitive-types/impls/num-traits/Cargo.toml
index 006d131..27a8fc8 100644
--- a/primitive-types/impls/num-traits/Cargo.toml
+++ b/primitive-types/impls/num-traits/Cargo.toml
@@ -10,4 +10,4 @@ edition = "2018"
 [dependencies]
 num-traits = { version = "0.2", default-features = false }
 integer-sqrt = "0.1"
-uint = { version = "0.9.0", path = "../../../uint", default-features = false }
+uint = { version = "0.9.1", path = "../../../uint", default-features = false }
diff --git a/rlp/Cargo.toml b/rlp/Cargo.toml
index fa1070e..3898e2b 100644
--- a/rlp/Cargo.toml
+++ b/rlp/Cargo.toml
@@ -14,7 +14,7 @@ rustc-hex = { version = "2.0.1", default-features = false }
 [dev-dependencies]
 criterion = "0.3.0"
 hex-literal = "0.3.1"
-primitive-types = { path = "../primitive-types", version = "0.9", features = ["impl-rlp"] }
+primitive-types = { path = "../primitive-types", version = "0.10", features = ["impl-rlp"] }
 
 [features]
 default = ["std"]
diff --git a/transaction-pool/Cargo.toml b/transaction-pool/Cargo.toml
index bb3cb6a..cdf002a 100644
--- a/transaction-pool/Cargo.toml
+++ b/transaction-pool/Cargo.toml
@@ -12,4 +12,4 @@ log = "0.4.8"
 smallvec = "1.6.0"
 
 [dev-dependencies]
-ethereum-types = { version = "0.11.0", path = "../ethereum-types" }
+ethereum-types = { version = "0.12.0", path = "../ethereum-types" }
diff --git a/triehash/Cargo.toml b/triehash/Cargo.toml
index 0825f7b..440c07a 100644
--- a/triehash/Cargo.toml
+++ b/triehash/Cargo.toml
@@ -14,7 +14,7 @@ rlp = { version = "0.5", path = "../rlp", default-features = false }
 [dev-dependencies]
 criterion = "0.3.0"
 keccak-hasher = "0.15.2"
-ethereum-types = { version = "0.11.0", path = "../ethereum-types" }
+ethereum-types = { version = "0.12.0", path = "../ethereum-types" }
 tiny-keccak = { version = "2.0", features = ["keccak"] }
 trie-standardmap = "0.15.2"
 hex-literal = "0.3.1"
diff --git a/triehash/src/lib.rs b/triehash/src/lib.rs
index a60a249..63f93a5 100644
--- a/triehash/src/lib.rs
+++ b/triehash/src/lib.rs
@@ -260,7 +260,9 @@ where
 
 #[cfg(test)]
 mod tests {
-	use super::{hex_prefix_encode, shared_prefix_len, trie_root};
+	use super::*;
+	#[cfg(not(feature = "std"))]
+	use alloc::vec;
 	use ethereum_types::H256;
 	use hex_literal::hex;
 	use keccak_hasher::KeccakHasher;
diff --git a/uint/CHANGELOG.md b/uint/CHANGELOG.md
index aa83d5e..73456b5 100644
--- a/uint/CHANGELOG.md
+++ b/uint/CHANGELOG.md
@@ -5,6 +5,8 @@ The format is based on [Keep a Changelog].
 [Keep a Changelog]: http://keepachangelog.com/en/1.0.0/
 
 ## [Unreleased]
+
+## [0.9.1] - 2021-06-30
 - Added `integer_sqrt` method. [#554](https://github.com/paritytech/parity-common/pull/554)
 
 ## [0.9.0] - 2021-01-05


Test patch:
diff --git a/kvdb-shared-tests/CHANGELOG.md b/kvdb-shared-tests/CHANGELOG.md
index f307aa6..17f7b25 100644
--- a/kvdb-shared-tests/CHANGELOG.md
+++ b/kvdb-shared-tests/CHANGELOG.md
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog].
 
 ## [Unreleased]
 
+### Breaking
+- Updated `kvdb` to 0.10. [#556](https://github.com/paritytech/parity-common/pull/556)
+
 ## [0.7.0] - 2021-01-27
 ### Breaking
 - Updated `kvdb` to 0.9. [#510](https://github.com/paritytech/parity-common/pull/510)
diff --git a/kvdb-shared-tests/Cargo.toml b/kvdb-shared-tests/Cargo.toml
index 4ea0003..356b447 100644
--- a/kvdb-shared-tests/Cargo.toml
+++ b/kvdb-shared-tests/Cargo.toml
@@ -1,10 +1,10 @@
 [package]
 name = "kvdb-shared-tests"
-version = "0.7.0"
+version = "0.8.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
 description = "Shared tests for kvdb functionality, to be executed against actual implementations"
 license = "MIT OR Apache-2.0"
 
 [dependencies]
-kvdb = { path = "../kvdb", version = "0.9" }
+kvdb = { path = "../kvdb", version = "0.10" }
diff --git a/parity-util-mem/tests/derive.rs b/parity-util-mem/tests/derive.rs
index 4fb5f73..63825ba 100644
--- a/parity-util-mem/tests/derive.rs
+++ b/parity-util-mem/tests/derive.rs
@@ -53,6 +53,7 @@ fn derive_ignore() {
 }
 
 #[test]
+#[cfg(all(feature = "lru", feature = "hashbrown"))]
 fn derive_morecomplex() {
 	#[derive(MallocSizeOf)]
 	struct Trivia {
diff --git a/primitive-types/tests/scale_info.rs b/primitive-types/tests/scale_info.rs
index 3774c84..a6abd75 100644
--- a/primitive-types/tests/scale_info.rs
+++ b/primitive-types/tests/scale_info.rs
@@ -15,7 +15,7 @@ use scale_info_crate::{build::Fields, Path, Type, TypeInfo};
 fn u256_scale_info() {
 	let r#type = Type::builder()
 		.path(Path::new("U256", "primitive_types"))
-		.composite(Fields::unnamed().field_of::<[u64; 4]>("[u64; 4]"));
+		.composite(Fields::unnamed().field(|f| f.ty::<[u64; 4]>().type_name("[u64; 4]")));
 
 	assert_eq!(U256::type_info(), r#type.into());
 }
@@ -24,7 +24,7 @@ fn u256_scale_info() {
 fn h256_scale_info() {
 	let r#type = Type::builder()
 		.path(Path::new("H256", "primitive_types"))
-		.composite(Fields::unnamed().field_of::<[u8; 32]>("[u8; 32]"));
+		.composite(Fields::unnamed().field(|f| f.ty::<[u8; 32]>().type_name("[u8; 32]")));
 
 	assert_eq!(H256::type_info(), r#type.into());
 }