diff --git a/MANIFEST.in b/MANIFEST.in
index 783a2fe..3f62aea 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,2 +1,13 @@
-recursive-include requirements *
+graft requirements
+graft examples
+graft docs
+recursive-exclude docs/generated *
+graft tests
+recursive-exclude tests/config *.xml
+recursive-exclude tests/logs *
+global-exclude *.py[cod]
+global-exclude *__pycache__*
+include tox.ini
 include README.md
+include LICENSE
+include NOTICE
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..feeebfd
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,5 @@
+Apache Ignite binary client Python API
+Copyright 2021 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/examples/docker-compose.yml b/examples/docker-compose.yml
new file mode 100644
index 0000000..76c91b3
--- /dev/null
+++ b/examples/docker-compose.yml
@@ -0,0 +1,36 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+services:
+  ignite_0:
+    image: apacheignite/ignite:latest
+    ports:
+      - 10800:10800
+    restart: always
+    network_mode: host
+
+  ignite_1:
+    image: apacheignite/ignite:latest
+    ports:
+      - 10800:10801
+    restart: always
+    network_mode: host
+
+  ignite_2:
+    image: apacheignite/ignite:latest
+    ports:
+      - 10800:10802
+    restart: always
+    network_mode: host
diff --git a/examples/readme.md b/examples/readme.md
index 3caf6c1..8fd4848 100644
--- a/examples/readme.md
+++ b/examples/readme.md
@@ -15,3 +15,9 @@
 For the explanation of the examples please refer to the
 [Examples of usage](https://apache-ignite-binary-protocol-client.readthedocs.io/en/latest/examples.html)
 section of the `pyignite` documentation.
+
+You can start Apache Ignite locally for running examples using `docker` and `docker-compose`
+```bash
+cd ./examples
+docker-compose up
+```
diff --git a/setup.py b/setup.py
index 4c2ab22..7a3cb70 100644
--- a/setup.py
+++ b/setup.py
@@ -121,6 +121,7 @@
             'docs': requirements['docs'],
         },
         license="Apache License 2.0",
+        license_files=('LICENSE', 'NOTICE'),
         classifiers=[
             'Programming Language :: Python',
             'Programming Language :: Python :: 3',
diff --git a/tests/affinity/test_affinity_request_routing.py b/tests/affinity/test_affinity_request_routing.py
index 9c94aa4..90c71b2 100644
--- a/tests/affinity/test_affinity_request_routing.py
+++ b/tests/affinity/test_affinity_request_routing.py
@@ -413,7 +413,7 @@
     async with create_caches_async(async_client) as caches:
         key = 12
         test_cache = random.choice(caches)
-        test_cache.put(key, key)
+        await test_cache.put(key, key)
         await wait_for_affinity_distribution_async(test_cache, key, 3)
 
         caches.append(await async_client.create_cache('new_cache'))
