Repository: infinyon/fluvio-client-python (language: python)

Issue:
Add Linux arm64 build to release
This should enable [Jupyter Notebooks to work on the m1 macs](https://jupyter-docker-stacks.readthedocs.io/en/latest/index.html#) as on an m1, it's an arm64 build.


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 51fc35af..6185324d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -76,7 +76,7 @@ jobs:
           fluvio topic create foobar
           sleep 3
           echo foo | fluvio produce foobar
-          fluvio consume foobar -o 0 -d
+          fluvio consume foobar -B -d
       - name: Build
         run: |
           make build-dev
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 16c757b4..e9f4a1a4 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -20,7 +20,7 @@ jobs:
       CIBW_ARCHS_MACOS: x86_64 universal2
       CIBW_ARCHS_LINUX: auto aarch64
       CIBW_BEFORE_ALL_LINUX: "{package}/tools/cibw_before_all_linux.sh"
-      CIBW_ENVIRONMENT: 'PATH="$PATH:$HOME/.cargo/bin"'
+      CIBW_BUILD_VERBOSITY: 1
 
     steps:
       - uses: actions/checkout@v3
@@ -51,10 +51,11 @@ jobs:
           image: tonistiigi/binfmt:latest
           platforms: arm64
 
-      - name: Build wheels
+      - name: Build wheels for ${{matrix.python-version}} on ${{matrix.os}}
         uses: pypa/cibuildwheel@v2.11.2
         env:
-          CIBW_BUILD: "cp${{matrix.python-version}}-manylinux_x86_64 cp${{matrix.python-version}}-macosx_x86_64 cp${{matrix.python-version}}-macosx_universal2 cp${{matrix.python-version}}-macosx_arm64" # cp${{matrix.python-version}}-musllinux_x86_64
+          CIBW_BUILD: "cp${{matrix.python-version}}-manylinux_x86_64 cp${{matrix.python-version}}-macosx_x86_64 cp${{matrix.python-version}}-macosx_universal2 cp${{matrix.python-version}}-macosx_arm64"
+
 
       - uses: actions/upload-artifact@v3
         with:
@@ -82,7 +83,7 @@ jobs:
           path: dist/*.tar.gz
 
   build_cc_wheels:
-    name: Build wheels for Raspberry PI
+    name: Cross Build wheels for ${{ matrix.platform.name }}
     runs-on: ubuntu-latest
     env:
         CARGO: cross
@@ -90,7 +91,8 @@ jobs:
       matrix:
           platform: [
               { name: "linux_armv7l", target: "armv7-unknown-linux-gnueabihf" },
-              { name: "linux_armv6l", target: "arm-unknown-linux-gnueabihf" }
+              { name: "linux_armv6l", target: "arm-unknown-linux-gnueabihf" },
+              { name: "linux_aarch64", target: "aarch64-unknown-linux-gnu" },
           ]
     steps:
       - uses: actions/checkout@v3
diff --git a/Cargo.lock b/Cargo.lock
index 4d5d02fe..8d5e3d33 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4,7 +4,7 @@ version = 3
 
 [[package]]
 name = "_fluvio_python"
-version = "0.9.0"
+version = "0.14.0"
 dependencies = [
  "cpython",
  "env_logger",
@@ -46,30 +46,30 @@ version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28"
 dependencies = [
- "concurrent-queue",
+ "concurrent-queue 1.2.4",
  "event-listener",
  "futures-core",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
+checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"
 dependencies = [
+ "async-lock",
  "async-task",
- "concurrent-queue",
+ "concurrent-queue 2.0.0",
  "fastrand",
  "futures-lite",
- "once_cell",
  "slab",
 ]
 
 [[package]]
 name = "async-global-executor"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0da5b41ee986eed3f524c380e6d64965aea573882a8907682ad100f7859305ca"
+checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
 dependencies = [
  "async-channel",
  "async-executor",
@@ -82,16 +82,16 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7"
+checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7"
 dependencies = [
+ "async-lock",
  "autocfg",
- "concurrent-queue",
+ "concurrent-queue 1.2.4",
  "futures-lite",
  "libc",
  "log",
- "once_cell",
  "parking",
  "polling",
  "slab",
@@ -304,9 +304,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.73"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f"
 
 [[package]]
 name = "cfg-if"
@@ -316,9 +316,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.22"
+version = "0.4.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
+checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
 dependencies = [
  "iana-time-zone",
  "js-sys",
@@ -348,6 +348,15 @@ dependencies = [
  "cache-padded",
 ]
 
+[[package]]
+name = "concurrent-queue"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b"
+dependencies = [
+ "crossbeam-utils",
+]
+
 [[package]]
 name = "content_inspector"
 version = "0.2.4"
@@ -414,9 +423,9 @@ dependencies = [
 
 [[package]]
 name = "cxx"
-version = "1.0.80"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b7d4e43b25d3c994662706a1d4fcfc32aaa6afd287502c111b237093bb23f3a"
+checksum = "97abf9f0eca9e52b7f81b945524e76710e6cb2366aead23b7d4fbf72e281f888"
 dependencies = [
  "cc",
  "cxxbridge-flags",
@@ -426,9 +435,9 @@ dependencies = [
 
 [[package]]
 name = "cxx-build"
-version = "1.0.80"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84f8829ddc213e2c1368e51a2564c552b65a8cb6a28f31e576270ac81d5e5827"
+checksum = "7cc32cc5fea1d894b77d269ddb9f192110069a8a9c1f1d441195fba90553dea3"
 dependencies = [
  "cc",
  "codespan-reporting",
@@ -441,15 +450,15 @@ dependencies = [
 
 [[package]]
 name = "cxxbridge-flags"
-version = "1.0.80"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e72537424b474af1460806647c41d4b6d35d09ef7fe031c5c2fa5766047cc56a"
+checksum = "8ca220e4794c934dc6b1207c3b42856ad4c302f2df1712e9f8d2eec5afaacf1f"
 
 [[package]]
 name = "cxxbridge-macro"
-version = "1.0.80"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "309e4fb93eed90e1e14bea0da16b209f81813ba9fc7830c20ed151dd7bc0a4d7"
+checksum = "b846f081361125bfc8dc9d3940c84e1fd83ba54bbca7b17cd29483c828be0704"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -458,9 +467,9 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.14.1"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4529658bdda7fd6769b8614be250cdcfc3aeb0ee72fe66f9e41e5e5eb73eac02"
+checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -468,9 +477,9 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.14.1"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "649c91bc01e8b1eac09fb91e8dbc7d517684ca6be8ebc75bb9cafc894f9fdb6f"
+checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f"
 dependencies = [
  "fnv",
  "ident_case",
@@ -482,9 +491,9 @@ dependencies = [
 
 [[package]]
 name = "darling_macro"
-version = "0.14.1"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddfc69c5bfcbd2fc09a0f38451d2daf0e372e367986a83906d1b0dbc88134fb5"
+checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e"
 dependencies = [
  "darling_core",
  "quote",
@@ -544,9 +553,9 @@ dependencies = [
 
 [[package]]
 name = "educe"
-version = "0.4.19"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c07b7cc9cd8c08d10db74fca3b20949b9b6199725c04a0cce6d543496098fcac"
+checksum = "cb0188e3c3ba8df5753894d54461f0e39bc91741dc5b22e1c46999ec2c71f4e4"
 dependencies = [
  "enum-ordinalize",
  "proc-macro2",
@@ -562,9 +571,9 @@ checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
 
 [[package]]
 name = "enum-ordinalize"
-version = "3.1.11"
+version = "3.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2170fc0efee383079a8bdd05d6ea2a184d2a0f07a1c1dcabdb2fd5e9f24bc36c"
+checksum = "a62bb1df8b45ecb7ffa78dca1c17a438fb193eb083db0b1b494d2a61bcb5096a"
 dependencies = [
  "num-bigint",
  "num-traits",
@@ -576,9 +585,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.9.1"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272"
+checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
 dependencies = [
  "atty",
  "humantime",
@@ -1094,9 +1103,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.51"
+version = "0.1.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed"
+checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -1310,9 +1319,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
+checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
 
 [[package]]
 name = "openssl"
@@ -1342,9 +1351,9 @@ dependencies = [
 
 [[package]]
 name = "openssl-src"
-version = "111.22.0+1.1.1q"
+version = "111.24.0+1.1.1s"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f31f0d509d1c1ae9cada2f9539ff8f37933831fd5098879e482aa687d659853"
+checksum = "3498f259dab01178c6228c6b00dcef0ed2a2d5e20d648c017861227773ea4abd"
 dependencies = [
  "cc",
 ]
@@ -1528,9 +1537,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1539,9 +1548,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.27"
+version = "0.6.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
 
 [[package]]
 name = "rustc-hash"
diff --git a/Cross.toml b/Cross.toml
index 53ad94b7..0443238d 100644
--- a/Cross.toml
+++ b/Cross.toml
@@ -3,3 +3,6 @@ image = "fluvio-cross-python:arm-unknown-linux-gnueabihf"
 
 [target.armv7-unknown-linux-gnueabihf]
 image = "fluvio-cross-python:armv7-unknown-linux-gnueabihf"
+
+[target.aarch64-unknown-linux-gnu]
+image = "fluvio-cross-python:aarch64-unknown-linux-gnu"
diff --git a/Makefile b/Makefile
index dd02a372..48810026 100644
--- a/Makefile
+++ b/Makefile
@@ -37,9 +37,8 @@ integration-tests: build-dev
 macos-ci-tests: build-dev
 	cd macos-ci-tests && $(PYTHON) -m unittest
 
-ci-build: venv-pip
-	$(PIP) install -r requirements-publish.txt
-	CIBW_SKIP="cp27-*" $(PYTHON) -m cibuildwheel --platform linux --output-dir wheelhouse
+ci-build: # This is for testing builds
+	CIBW_BUILD="cp311-manylinux_x86_64 cp311-manylinux_aarch64 cp311-macosx_x86_64 cp311-macosx_universal2 cp311-macosx_arm64"  CIBW_SKIP="cp27-*" CIBW_BEFORE_ALL_LINUX="{package}/tools/cibw_before_all_linux.sh"  $(PYTHON) -m cibuildwheel --platform linux --output-dir wheelhouse
 
 docs-serve: venv-pip build-dev
 	$(PYTHON) -m pdoc fluvio
diff --git a/cross/Dockerfile.aarch64-unknown-linux-gnu b/cross/Dockerfile.aarch64-unknown-linux-gnu
new file mode 100644
index 00000000..2ca9dc8d
--- /dev/null
+++ b/cross/Dockerfile.aarch64-unknown-linux-gnu
@@ -0,0 +1,3 @@
+FROM rustembedded/cross:aarch64-unknown-linux-gnu
+
+RUN apt-get update && apt-get install python3 -y && rm -rf /var/lib/apt/lists/*
diff --git a/cross/Dockerfile.arm-unknown-linux-gnueabihf b/cross/Dockerfile.arm-unknown-linux-gnueabihf
index 9ec49dad..c1536294 100644
--- a/cross/Dockerfile.arm-unknown-linux-gnueabihf
+++ b/cross/Dockerfile.arm-unknown-linux-gnueabihf
@@ -1,3 +1,3 @@
-from rustembedded/cross:arm-unknown-linux-gnueabihf
+FROM rustembedded/cross:arm-unknown-linux-gnueabihf
 
 RUN apt-get update && apt-get install python3 -y && rm -rf /var/lib/apt/lists/*
diff --git a/cross/Dockerfile.armv7-unknown-linux-gnueabihf b/cross/Dockerfile.armv7-unknown-linux-gnueabihf
index c0ca1633..abb183e7 100644
--- a/cross/Dockerfile.armv7-unknown-linux-gnueabihf
+++ b/cross/Dockerfile.armv7-unknown-linux-gnueabihf
@@ -1,3 +1,3 @@
-from rustembedded/cross:armv7-unknown-linux-gnueabihf
+FROM rustembedded/cross:armv7-unknown-linux-gnueabihf
 
 RUN apt-get update && apt-get install python3 -y && rm -rf /var/lib/apt/lists/*
diff --git a/setup.py b/setup.py
index a0f054a3..b5ce7134 100644
--- a/setup.py
+++ b/setup.py
@@ -38,7 +38,7 @@
         'Programming Language :: Python :: 3 :: Only',
     ],
 
-    rust_extensions=[RustExtension("fluvio._fluvio_python", path="Cargo.toml", binding=Binding.RustCPython, debug=False)],
+    rust_extensions=[RustExtension("fluvio._fluvio_python", path="Cargo.toml", binding=Binding.RustCPython, debug=False, quiet=False, args=["-vvv"])],
     packages=["fluvio"],
     # rust extensions are not zip safe, just like C-extensions.
     zip_safe=False,
diff --git a/tools/cibw_before_all_linux.sh b/tools/cibw_before_all_linux.sh
index d56d8bdd..f215deaf 100755
--- a/tools/cibw_before_all_linux.sh
+++ b/tools/cibw_before_all_linux.sh
@@ -3,3 +3,4 @@ set -e -x
 
 yum install -y openssl-devel
 curl https://sh.rustup.rs --proto '=https' --tlsv1.2 -sSf | sh -s -- --default-toolchain stable -y
+cp $HOME/.cargo/bin/* /bin/


Test patch:
diff --git a/integration-tests/test_fluvio_python.py b/integration-tests/test_fluvio_python.py
index 3c9aa885..df89154f 100644
--- a/integration-tests/test_fluvio_python.py
+++ b/integration-tests/test_fluvio_python.py
@@ -170,7 +170,7 @@ def test_produce_flush(self):
         import subprocess
 
         result = subprocess.run(
-            "fluvio consume %s -B 0 -d" % self.topic,
+            "fluvio consume %s -B -d" % self.topic,
             shell=True,
             stdout=subprocess.PIPE,
             stderr=subprocess.PIPE,