diff --git a/.ci_support/linux_64_python3.10.____cpython.yaml b/.ci_support/linux_64_numpy1.22python3.10.____cpython.yaml similarity index 95% rename from .ci_support/linux_64_python3.10.____cpython.yaml rename to .ci_support/linux_64_numpy1.22python3.10.____cpython.yaml index 8e7c1c55..b056ac03 100644 --- a/.ci_support/linux_64_python3.10.____cpython.yaml +++ b/.ci_support/linux_64_numpy1.22python3.10.____cpython.yaml @@ -21,7 +21,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -30,8 +30,6 @@ python: - 3.10.* *_cpython target_platform: - linux-64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_64_python3.8.____cpython.yaml b/.ci_support/linux_64_numpy1.22python3.8.____cpython.yaml similarity index 95% rename from .ci_support/linux_64_python3.8.____cpython.yaml rename to .ci_support/linux_64_numpy1.22python3.8.____cpython.yaml index 081b13c5..6ecafb4d 100644 --- a/.ci_support/linux_64_python3.8.____cpython.yaml +++ b/.ci_support/linux_64_numpy1.22python3.8.____cpython.yaml @@ -21,7 +21,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -30,8 +30,6 @@ python: - 3.8.* *_cpython target_platform: - linux-64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_64_python3.9.____cpython.yaml b/.ci_support/linux_64_numpy1.22python3.9.____cpython.yaml similarity index 95% rename from .ci_support/linux_64_python3.9.____cpython.yaml rename to .ci_support/linux_64_numpy1.22python3.9.____cpython.yaml index eba93467..96d8a009 100644 --- a/.ci_support/linux_64_python3.9.____cpython.yaml +++ b/.ci_support/linux_64_numpy1.22python3.9.____cpython.yaml @@ -21,7 +21,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -30,8 +30,6 @@ python: - 3.9.* *_cpython target_platform: - linux-64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_64_numpy1.23python3.11.____cpython.yaml b/.ci_support/linux_64_numpy1.23python3.11.____cpython.yaml new file mode 100644 index 00000000..716fac6b --- /dev/null +++ b/.ci_support/linux_64_numpy1.23python3.11.____cpython.yaml @@ -0,0 +1,37 @@ +c_compiler: +- gcc +c_compiler_version: +- '12' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- tapparelj main +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +gmp: +- '6' +gnuradio_core: +- 3.10.6 +gnuradio_extra_pin: +- '' +numpy: +- '1.23' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - python + - numpy diff --git a/.ci_support/linux_aarch64_python3.10.____cpython.yaml b/.ci_support/linux_aarch64_numpy1.22python3.10.____cpython.yaml similarity index 96% rename from .ci_support/linux_aarch64_python3.10.____cpython.yaml rename to .ci_support/linux_aarch64_numpy1.22python3.10.____cpython.yaml index 23765cdf..9827e425 100644 --- a/.ci_support/linux_aarch64_python3.10.____cpython.yaml +++ b/.ci_support/linux_aarch64_numpy1.22python3.10.____cpython.yaml @@ -25,7 +25,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -34,8 +34,6 @@ python: - 3.10.* *_cpython target_platform: - linux-aarch64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_aarch64_python3.8.____cpython.yaml b/.ci_support/linux_aarch64_numpy1.22python3.8.____cpython.yaml similarity index 96% rename from .ci_support/linux_aarch64_python3.8.____cpython.yaml rename to .ci_support/linux_aarch64_numpy1.22python3.8.____cpython.yaml index b231c922..60998df1 100644 --- a/.ci_support/linux_aarch64_python3.8.____cpython.yaml +++ b/.ci_support/linux_aarch64_numpy1.22python3.8.____cpython.yaml @@ -25,7 +25,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -34,8 +34,6 @@ python: - 3.8.* *_cpython target_platform: - linux-aarch64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_aarch64_python3.9.____cpython.yaml b/.ci_support/linux_aarch64_numpy1.22python3.9.____cpython.yaml similarity index 96% rename from .ci_support/linux_aarch64_python3.9.____cpython.yaml rename to .ci_support/linux_aarch64_numpy1.22python3.9.____cpython.yaml index 7f6bd756..19ce4afc 100644 --- a/.ci_support/linux_aarch64_python3.9.____cpython.yaml +++ b/.ci_support/linux_aarch64_numpy1.22python3.9.____cpython.yaml @@ -25,7 +25,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -34,8 +34,6 @@ python: - 3.9.* *_cpython target_platform: - linux-aarch64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_aarch64_numpy1.23python3.11.____cpython.yaml b/.ci_support/linux_aarch64_numpy1.23python3.11.____cpython.yaml new file mode 100644 index 00000000..f516c7d2 --- /dev/null +++ b/.ci_support/linux_aarch64_numpy1.23python3.11.____cpython.yaml @@ -0,0 +1,41 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +c_compiler: +- gcc +c_compiler_version: +- '12' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- tapparelj main +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +gmp: +- '6' +gnuradio_core: +- 3.10.6 +gnuradio_extra_pin: +- '' +numpy: +- '1.23' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - python + - numpy diff --git a/.ci_support/linux_ppc64le_python3.10.____cpython.yaml b/.ci_support/linux_ppc64le_numpy1.22python3.10.____cpython.yaml similarity index 95% rename from .ci_support/linux_ppc64le_python3.10.____cpython.yaml rename to .ci_support/linux_ppc64le_numpy1.22python3.10.____cpython.yaml index 8fabe48d..e3411bca 100644 --- a/.ci_support/linux_ppc64le_python3.10.____cpython.yaml +++ b/.ci_support/linux_ppc64le_numpy1.22python3.10.____cpython.yaml @@ -21,7 +21,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -30,8 +30,6 @@ python: - 3.10.* *_cpython target_platform: - linux-ppc64le -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_ppc64le_python3.8.____cpython.yaml b/.ci_support/linux_ppc64le_numpy1.22python3.8.____cpython.yaml similarity index 95% rename from .ci_support/linux_ppc64le_python3.8.____cpython.yaml rename to .ci_support/linux_ppc64le_numpy1.22python3.8.____cpython.yaml index 389e79bc..576489eb 100644 --- a/.ci_support/linux_ppc64le_python3.8.____cpython.yaml +++ b/.ci_support/linux_ppc64le_numpy1.22python3.8.____cpython.yaml @@ -21,7 +21,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -30,8 +30,6 @@ python: - 3.8.* *_cpython target_platform: - linux-ppc64le -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_ppc64le_python3.9.____cpython.yaml b/.ci_support/linux_ppc64le_numpy1.22python3.9.____cpython.yaml similarity index 95% rename from .ci_support/linux_ppc64le_python3.9.____cpython.yaml rename to .ci_support/linux_ppc64le_numpy1.22python3.9.____cpython.yaml index 0b176398..96e66c1e 100644 --- a/.ci_support/linux_ppc64le_python3.9.____cpython.yaml +++ b/.ci_support/linux_ppc64le_numpy1.22python3.9.____cpython.yaml @@ -21,7 +21,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -30,8 +30,6 @@ python: - 3.9.* *_cpython target_platform: - linux-ppc64le -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/linux_ppc64le_numpy1.23python3.11.____cpython.yaml b/.ci_support/linux_ppc64le_numpy1.23python3.11.____cpython.yaml new file mode 100644 index 00000000..49c0b9ad --- /dev/null +++ b/.ci_support/linux_ppc64le_numpy1.23python3.11.____cpython.yaml @@ -0,0 +1,37 @@ +c_compiler: +- gcc +c_compiler_version: +- '12' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- tapparelj main +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +gmp: +- '6' +gnuradio_core: +- 3.10.6 +gnuradio_extra_pin: +- '' +numpy: +- '1.23' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- linux-ppc64le +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - python + - numpy diff --git a/.ci_support/osx_64_python3.10.____cpython.yaml b/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml similarity index 92% rename from .ci_support/osx_64_python3.10.____cpython.yaml rename to .ci_support/osx_64_numpy1.22python3.10.____cpython.yaml index 272f7907..cc9254cd 100644 --- a/.ci_support/osx_64_python3.10.____cpython.yaml +++ b/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '15' +- '16' channel_sources: - conda-forge channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '15' +- '16' gnuradio_core: - 3.10.6 gnuradio_extra_pin: @@ -19,7 +19,7 @@ gnuradio_extra_pin: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -28,8 +28,6 @@ python: - 3.10.* *_cpython target_platform: - osx-64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/osx_64_python3.8.____cpython.yaml b/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml similarity index 92% rename from .ci_support/osx_64_python3.8.____cpython.yaml rename to .ci_support/osx_64_numpy1.22python3.8.____cpython.yaml index 1d88bd39..5b7238b2 100644 --- a/.ci_support/osx_64_python3.8.____cpython.yaml +++ b/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '15' +- '16' channel_sources: - conda-forge channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '15' +- '16' gnuradio_core: - 3.10.6 gnuradio_extra_pin: @@ -19,7 +19,7 @@ gnuradio_extra_pin: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -28,8 +28,6 @@ python: - 3.8.* *_cpython target_platform: - osx-64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/osx_64_python3.9.____cpython.yaml b/.ci_support/osx_64_numpy1.22python3.9.____cpython.yaml similarity index 92% rename from .ci_support/osx_64_python3.9.____cpython.yaml rename to .ci_support/osx_64_numpy1.22python3.9.____cpython.yaml index bb2cc067..0b07b24a 100644 --- a/.ci_support/osx_64_python3.9.____cpython.yaml +++ b/.ci_support/osx_64_numpy1.22python3.9.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '15' +- '16' channel_sources: - conda-forge channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '15' +- '16' gnuradio_core: - 3.10.6 gnuradio_extra_pin: @@ -19,7 +19,7 @@ gnuradio_extra_pin: macos_machine: - x86_64-apple-darwin13.4.0 numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -28,8 +28,6 @@ python: - 3.9.* *_cpython target_platform: - osx-64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml b/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml new file mode 100644 index 00000000..fdefcc5f --- /dev/null +++ b/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml @@ -0,0 +1,35 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.9' +c_compiler: +- clang +c_compiler_version: +- '16' +channel_sources: +- conda-forge +channel_targets: +- tapparelj main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '16' +gnuradio_core: +- 3.10.6 +gnuradio_extra_pin: +- '' +macos_machine: +- x86_64-apple-darwin13.4.0 +numpy: +- '1.23' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - python + - numpy diff --git a/.ci_support/osx_arm64_python3.10.____cpython.yaml b/.ci_support/osx_arm64_numpy1.22python3.10.____cpython.yaml similarity index 92% rename from .ci_support/osx_arm64_python3.10.____cpython.yaml rename to .ci_support/osx_arm64_numpy1.22python3.10.____cpython.yaml index 0939c45b..cc2ac42d 100644 --- a/.ci_support/osx_arm64_python3.10.____cpython.yaml +++ b/.ci_support/osx_arm64_numpy1.22python3.10.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '15' +- '16' channel_sources: - conda-forge channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '15' +- '16' gnuradio_core: - 3.10.6 gnuradio_extra_pin: @@ -19,7 +19,7 @@ gnuradio_extra_pin: macos_machine: - arm64-apple-darwin20.0.0 numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -28,8 +28,6 @@ python: - 3.10.* *_cpython target_platform: - osx-arm64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/osx_arm64_python3.8.____cpython.yaml b/.ci_support/osx_arm64_numpy1.22python3.8.____cpython.yaml similarity index 92% rename from .ci_support/osx_arm64_python3.8.____cpython.yaml rename to .ci_support/osx_arm64_numpy1.22python3.8.____cpython.yaml index 548cebfd..4b728f41 100644 --- a/.ci_support/osx_arm64_python3.8.____cpython.yaml +++ b/.ci_support/osx_arm64_numpy1.22python3.8.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '15' +- '16' channel_sources: - conda-forge channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '15' +- '16' gnuradio_core: - 3.10.6 gnuradio_extra_pin: @@ -19,7 +19,7 @@ gnuradio_extra_pin: macos_machine: - arm64-apple-darwin20.0.0 numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -28,8 +28,6 @@ python: - 3.8.* *_cpython target_platform: - osx-arm64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/osx_arm64_python3.9.____cpython.yaml b/.ci_support/osx_arm64_numpy1.22python3.9.____cpython.yaml similarity index 92% rename from .ci_support/osx_arm64_python3.9.____cpython.yaml rename to .ci_support/osx_arm64_numpy1.22python3.9.____cpython.yaml index 991fb42f..9059e2d6 100644 --- a/.ci_support/osx_arm64_python3.9.____cpython.yaml +++ b/.ci_support/osx_arm64_numpy1.22python3.9.____cpython.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '15' +- '16' channel_sources: - conda-forge channel_targets: @@ -11,7 +11,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '15' +- '16' gnuradio_core: - 3.10.6 gnuradio_extra_pin: @@ -19,7 +19,7 @@ gnuradio_extra_pin: macos_machine: - arm64-apple-darwin20.0.0 numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -28,8 +28,6 @@ python: - 3.9.* *_cpython target_platform: - osx-arm64 -volk: -- '3.0' zip_keys: - - c_compiler_version - cxx_compiler_version diff --git a/.ci_support/osx_arm64_numpy1.23python3.11.____cpython.yaml b/.ci_support/osx_arm64_numpy1.23python3.11.____cpython.yaml new file mode 100644 index 00000000..afb61750 --- /dev/null +++ b/.ci_support/osx_arm64_numpy1.23python3.11.____cpython.yaml @@ -0,0 +1,35 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +c_compiler: +- clang +c_compiler_version: +- '16' +channel_sources: +- conda-forge +channel_targets: +- tapparelj main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '16' +gnuradio_core: +- 3.10.6 +gnuradio_extra_pin: +- '' +macos_machine: +- arm64-apple-darwin20.0.0 +numpy: +- '1.23' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- osx-arm64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - python + - numpy diff --git a/.ci_support/win_64_python3.10.____cpython.yaml b/.ci_support/win_64_numpy1.22python3.10.____cpython.yaml similarity index 93% rename from .ci_support/win_64_python3.10.____cpython.yaml rename to .ci_support/win_64_numpy1.22python3.10.____cpython.yaml index d315d6d1..cbc507bf 100644 --- a/.ci_support/win_64_python3.10.____cpython.yaml +++ b/.ci_support/win_64_numpy1.22python3.10.____cpython.yaml @@ -11,7 +11,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -20,8 +20,6 @@ python: - 3.10.* *_cpython target_platform: - win-64 -volk: -- '3.0' zip_keys: - - python - numpy diff --git a/.ci_support/win_64_python3.8.____cpython.yaml b/.ci_support/win_64_numpy1.22python3.8.____cpython.yaml similarity index 93% rename from .ci_support/win_64_python3.8.____cpython.yaml rename to .ci_support/win_64_numpy1.22python3.8.____cpython.yaml index 946c88bf..53944b30 100644 --- a/.ci_support/win_64_python3.8.____cpython.yaml +++ b/.ci_support/win_64_numpy1.22python3.8.____cpython.yaml @@ -11,7 +11,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -20,8 +20,6 @@ python: - 3.8.* *_cpython target_platform: - win-64 -volk: -- '3.0' zip_keys: - - python - numpy diff --git a/.ci_support/win_64_python3.9.____cpython.yaml b/.ci_support/win_64_numpy1.22python3.9.____cpython.yaml similarity index 93% rename from .ci_support/win_64_python3.9.____cpython.yaml rename to .ci_support/win_64_numpy1.22python3.9.____cpython.yaml index b7811942..4cc68f94 100644 --- a/.ci_support/win_64_python3.9.____cpython.yaml +++ b/.ci_support/win_64_numpy1.22python3.9.____cpython.yaml @@ -11,7 +11,7 @@ gnuradio_core: gnuradio_extra_pin: - '' numpy: -- '1.21' +- '1.22' pin_run_as_build: python: min_pin: x.x @@ -20,8 +20,6 @@ python: - 3.9.* *_cpython target_platform: - win-64 -volk: -- '3.0' zip_keys: - - python - numpy diff --git a/.ci_support/win_64_numpy1.23python3.11.____cpython.yaml b/.ci_support/win_64_numpy1.23python3.11.____cpython.yaml new file mode 100644 index 00000000..c3e777d2 --- /dev/null +++ b/.ci_support/win_64_numpy1.23python3.11.____cpython.yaml @@ -0,0 +1,25 @@ +c_compiler: +- vs2019 +channel_sources: +- conda-forge +channel_targets: +- tapparelj main +cxx_compiler: +- vs2019 +gnuradio_core: +- 3.10.6 +gnuradio_extra_pin: +- '' +numpy: +- '1.23' +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.11.* *_cpython +target_platform: +- win-64 +zip_keys: +- - python + - numpy diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..8b4ef2f9 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,25 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: jinja-yaml -*- + +version: 2 + +jobs: + build: + working_directory: ~/test + machine: + image: ubuntu-2004:current + steps: + - run: + # The Circle-CI build should not be active, but if this is not true for some reason, do a fast finish. + command: exit 0 + +workflows: + version: 2 + build_and_test: + jobs: + - build: + filters: + branches: + ignore: + - /.*/ diff --git a/.conda/recipe/conda_build_config.yaml b/.conda/recipe/conda_build_config.yaml index 4a82b6da..040205e4 100644 --- a/.conda/recipe/conda_build_config.yaml +++ b/.conda/recipe/conda_build_config.yaml @@ -4,8 +4,8 @@ channel_targets: - tapparelj main # override the conda-forge pin for gnuradio-core by uncommenting # and specifying a different version here -#gnuradio_core: - #- "3.10.1" +gnuradio_core: + - "3.10.6" gnuradio_extra_pin: # always leave one entry with the empty string - "" diff --git a/.conda/recipe/meta.yaml b/.conda/recipe/meta.yaml index 6767f0dd..9f3de806 100644 --- a/.conda/recipe/meta.yaml +++ b/.conda/recipe/meta.yaml @@ -34,6 +34,8 @@ requirements: - numpy # [build_platform != target_platform] - pybind11 # [build_platform != target_platform] # Add extra build tool dependencies here + - boost-cpp=1.78.0 + - volk=3.0.0 host: - gmp # [linux] @@ -44,13 +46,16 @@ requirements: - pybind11 - python - numpy - - volk # Add/remove library dependencies here + - boost-cpp=1.78.0 + - volk=3.0.0 run: - numpy - python # Add/remove runtime dependencies here + - boost-cpp=1.78.0 + - volk=3.0.0 test: requires: diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml new file mode 100644 index 00000000..da1368a1 --- /dev/null +++ b/.github/workflows/automerge.yml @@ -0,0 +1,19 @@ +on: + status: {} + check_suite: + types: + - completed + +jobs: + automerge-action: + runs-on: ubuntu-latest + name: automerge + steps: + - name: checkout + uses: actions/checkout@v3 + - name: automerge-action + id: automerge-action + uses: conda-forge/automerge-action@main + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml index 4e23ba6d..5201284b 100644 --- a/.github/workflows/conda-build.yml +++ b/.github/workflows/conda-build.yml @@ -3,98 +3,160 @@ # -*- mode: yaml -*- name: Build conda package -on: [push, pull_request] +on: + push: + branches: + - master + + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true jobs: build: name: ${{ matrix.CONFIG }} - runs-on: ${{ matrix.os }}-latest + runs-on: ${{ matrix.runs_on }} + timeout-minutes: 360 strategy: fail-fast: false matrix: include: - - CONFIG: linux_64_python3.10.____cpython - SHORT_CONFIG: linux_64_python3.10.____cpython + - CONFIG: linux_64_numpy1.22python3.10.____cpython + SHORT_CONFIG: linux_64_numpy1.22python3.10.____cpython UPLOAD_PACKAGES: True - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 os: ubuntu - - CONFIG: linux_64_python3.8.____cpython - SHORT_CONFIG: linux_64_python3.8.____cpython - UPLOAD_PACKAGES: True + runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - os: ubuntu - - CONFIG: linux_64_python3.9.____cpython - SHORT_CONFIG: linux_64_python3.9.____cpython + - CONFIG: linux_64_numpy1.22python3.8.____cpython + SHORT_CONFIG: linux_64_numpy1.22python3.8.____cpython UPLOAD_PACKAGES: True - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 os: ubuntu - - CONFIG: linux_aarch64_python3.10.____cpython - SHORT_CONFIG: linux_aarch64_python3.10.____cpython - UPLOAD_PACKAGES: True + runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - os: ubuntu - - CONFIG: linux_aarch64_python3.8.____cpython - SHORT_CONFIG: linux_aarch64_python3.8.____cpython + - CONFIG: linux_64_numpy1.22python3.9.____cpython + SHORT_CONFIG: linux_64_numpy1.22python3.9.____cpython UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: linux_64_numpy1.23python3.11.____cpython + SHORT_CONFIG: linux_64_numpy1.23python3.11.____cpython + UPLOAD_PACKAGES: True os: ubuntu - - CONFIG: linux_aarch64_python3.9.____cpython - SHORT_CONFIG: linux_aarch64_python3.9.____cpython + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: linux_aarch64_numpy1.22python3.10.____cpython + SHORT_CONFIG: linux_aarch64_numpy1.22python3.10.____cpython UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: linux_aarch64_numpy1.22python3.8.____cpython + SHORT_CONFIG: linux_aarch64_numpy1.22python3.8.____cpython + UPLOAD_PACKAGES: True os: ubuntu - - CONFIG: linux_ppc64le_python3.10.____cpython - SHORT_CONFIG: linux_ppc64le_python3.10.____cpython + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: linux_aarch64_numpy1.22python3.9.____cpython + SHORT_CONFIG: linux_aarch64_numpy1.22python3.9.____cpython UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: linux_aarch64_numpy1.23python3.11.____cpython + SHORT_CONFIG: linux_aarch64_numpy1.23python3.11.____cpython + UPLOAD_PACKAGES: True os: ubuntu - - CONFIG: linux_ppc64le_python3.8.____cpython - SHORT_CONFIG: linux_ppc64le_python3.8.____cpython + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: linux_ppc64le_numpy1.22python3.10.____cpython + SHORT_CONFIG: linux_ppc64le_numpy1.22python3.10.____cpython UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: linux_ppc64le_numpy1.22python3.8.____cpython + SHORT_CONFIG: linux_ppc64le_numpy1.22python3.8.____cpython + UPLOAD_PACKAGES: True os: ubuntu - - CONFIG: linux_ppc64le_python3.9.____cpython - SHORT_CONFIG: linux_ppc64le_python3.9.____cpython + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: linux_ppc64le_numpy1.22python3.9.____cpython + SHORT_CONFIG: linux_ppc64le_numpy1.22python3.9.____cpython UPLOAD_PACKAGES: True + os: ubuntu + runs_on: ['ubuntu-latest'] DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: linux_ppc64le_numpy1.23python3.11.____cpython + SHORT_CONFIG: linux_ppc64le_numpy1.23python3.11.____cpython + UPLOAD_PACKAGES: True os: ubuntu - - CONFIG: win_64_python3.10.____cpython - SHORT_CONFIG: win_64_python3.10.____cpython + runs_on: ['ubuntu-latest'] + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + - CONFIG: win_64_numpy1.22python3.10.____cpython + SHORT_CONFIG: win_64_numpy1.22python3.10.____cpython + UPLOAD_PACKAGES: True + os: windows + runs_on: ['windows-latest'] + - CONFIG: win_64_numpy1.22python3.8.____cpython + SHORT_CONFIG: win_64_numpy1.22python3.8.____cpython UPLOAD_PACKAGES: True os: windows - - CONFIG: win_64_python3.8.____cpython - SHORT_CONFIG: win_64_python3.8.____cpython + runs_on: ['windows-latest'] + - CONFIG: win_64_numpy1.22python3.9.____cpython + SHORT_CONFIG: win_64_numpy1.22python3.9.____cpython UPLOAD_PACKAGES: True os: windows - - CONFIG: win_64_python3.9.____cpython - SHORT_CONFIG: win_64_python3.9.____cpython + runs_on: ['windows-latest'] + - CONFIG: win_64_numpy1.23python3.11.____cpython + SHORT_CONFIG: win_64_numpy1.23python3.11.____cpython UPLOAD_PACKAGES: True os: windows - - CONFIG: osx_64_python3.10.____cpython - SHORT_CONFIG: osx_64_python3.10.____cpython + runs_on: ['windows-latest'] + - CONFIG: osx_64_numpy1.22python3.10.____cpython + SHORT_CONFIG: osx_64_numpy1.22python3.10.____cpython + UPLOAD_PACKAGES: True + os: macos + runs_on: ['macos-latest'] + - CONFIG: osx_64_numpy1.22python3.8.____cpython + SHORT_CONFIG: osx_64_numpy1.22python3.8.____cpython + UPLOAD_PACKAGES: True + os: macos + runs_on: ['macos-latest'] + - CONFIG: osx_64_numpy1.22python3.9.____cpython + SHORT_CONFIG: osx_64_numpy1.22python3.9.____cpython UPLOAD_PACKAGES: True os: macos - - CONFIG: osx_64_python3.8.____cpython - SHORT_CONFIG: osx_64_python3.8.____cpython + runs_on: ['macos-latest'] + - CONFIG: osx_64_numpy1.23python3.11.____cpython + SHORT_CONFIG: osx_64_numpy1.23python3.11.____cpython UPLOAD_PACKAGES: True os: macos - - CONFIG: osx_64_python3.9.____cpython - SHORT_CONFIG: osx_64_python3.9.____cpython + runs_on: ['macos-latest'] + - CONFIG: osx_arm64_numpy1.22python3.10.____cpython + SHORT_CONFIG: osx_arm64_numpy1.22python3.10.____cpython UPLOAD_PACKAGES: True os: macos - - CONFIG: osx_arm64_python3.10.____cpython - SHORT_CONFIG: osx_arm64_python3.10.____cpython + runs_on: ['macos-latest'] + - CONFIG: osx_arm64_numpy1.22python3.8.____cpython + SHORT_CONFIG: osx_arm64_numpy1.22python3.8.____cpython UPLOAD_PACKAGES: True os: macos - - CONFIG: osx_arm64_python3.8.____cpython - SHORT_CONFIG: osx_arm64_python3.8.____cpython + runs_on: ['macos-latest'] + - CONFIG: osx_arm64_numpy1.22python3.9.____cpython + SHORT_CONFIG: osx_arm64_numpy1.22python3.9.____cpython UPLOAD_PACKAGES: True os: macos - - CONFIG: osx_arm64_python3.9.____cpython - SHORT_CONFIG: osx_arm64_python3.9.____cpython + runs_on: ['macos-latest'] + - CONFIG: osx_arm64_numpy1.23python3.11.____cpython + SHORT_CONFIG: osx_arm64_numpy1.23python3.11.____cpython UPLOAD_PACKAGES: True os: macos + runs_on: ['macos-latest'] steps: + - name: Checkout code uses: actions/checkout@v3 with: @@ -108,11 +170,15 @@ jobs: DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }} CI: github_actions UPLOAD_ON_BRANCH: master + CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.CONDA_FORGE_DOCKER_RUN_ARGS }}" BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} shell: bash run: | echo "::group::Configure binfmt_misc" docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + export flow_run_id="github_$GITHUB_RUN_ID" + export remote_url="https://github.com/$GITHUB_REPOSITORY" + export sha="$GITHUB_SHA" export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" export GIT_BRANCH="$(basename $GITHUB_REF)" if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then @@ -133,6 +199,9 @@ jobs: BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }} shell: bash run: | + export flow_run_id="github_$GITHUB_RUN_ID" + export remote_url="https://github.com/$GITHUB_REPOSITORY" + export sha="$GITHUB_SHA" export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)" export GIT_BRANCH="$(basename $GITHUB_REF)" if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then @@ -148,33 +217,14 @@ jobs: miniforge-version: latest miniforge-variant: Mambaforge if: matrix.os == 'windows' + - name: Build on windows shell: cmd run: | - call activate base - mamba.exe install -c conda-forge 'python=3.9' conda-build conda pip boa conda-forge-ci-setup=3 - if errorlevel 1 exit 1 - setup_conda_rc .\ ".\.conda/recipe" .\.ci_support\%CONFIG%.yaml - if errorlevel 1 exit 1 - - - if EXIST LICENSE.txt ( - copy LICENSE.txt ".conda/recipe\\recipe-scripts-license.txt" - ) - conda.exe mambabuild ".conda/recipe" -m .ci_support\%CONFIG%.yaml - if errorlevel 1 exit 1 - set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" - set "GIT_BRANCH=%GITHUB_REF:refs/heads/=%" - if /i "%GITHUB_EVENT_NAME%" == "pull_request" ( - set "IS_PR_BUILD=True" - ) else ( - set "IS_PR_BUILD=False" - ) - if /i "%UPLOAD_PACKAGES%" == "true" ( - if /i "%IS_PR_BUILD%" == "false" ( - upload_package .\ ".\.conda/recipe" .ci_support\%CONFIG%.yaml - ) - ) + set "flow_run_id=github_%GITHUB_RUN_ID%" + set "remote_url=https://github.com/%GITHUB_REPOSITORY%" + set "sha=%GITHUB_SHA%" + call ".scripts\run_win_build.bat" env: PYTHONUNBUFFERED: 1 CONFIG: ${{ matrix.CONFIG }} diff --git a/.github/workflows/webservices.yml b/.github/workflows/webservices.yml new file mode 100644 index 00000000..d6f06b5c --- /dev/null +++ b/.github/workflows/webservices.yml @@ -0,0 +1,13 @@ +on: repository_dispatch + +jobs: + webservices: + runs-on: ubuntu-latest + name: webservices + steps: + - name: webservices + id: webservices + uses: conda-forge/webservices-dispatch-action@main + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 1f035108..0d41f313 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -28,14 +28,15 @@ conda-build: pkgs_dirs: - ${FEEDSTOCK_ROOT}/build_artifacts/pkg_cache - /opt/conda/pkgs +solver: libmamba CONDARC +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 - -mamba install --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 -mamba update --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 +mamba install --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ + pip mamba conda-build boa conda-forge-ci-setup=4 +mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ + pip mamba conda-build boa conda-forge-ci-setup=4 # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -56,6 +57,12 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" fi +if [[ "${sha:-}" == "" ]]; then + pushd ${FEEDSTOCK_ROOT} + sha=$(git rev-parse HEAD) + popd +fi + if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" @@ -69,7 +76,8 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then else conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ + --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" ( startgroup "Uploading packages" ) 2> /dev/null diff --git a/.scripts/logging_utils.sh b/.scripts/logging_utils.sh index 57bc95c2..aff009f0 100644 --- a/.scripts/logging_utils.sh +++ b/.scripts/logging_utils.sh @@ -12,7 +12,7 @@ function startgroup { echo "##[group]$1";; travis ) echo "$1" - echo -en 'travis_fold:start:'"${1// /}"'\\r';; + echo -en 'travis_fold:start:'"${1// /}"'\r';; github_actions ) echo "::group::$1";; * ) @@ -28,7 +28,7 @@ function endgroup { azure ) echo "##[endgroup]";; travis ) - echo -en 'travis_fold:end:'"${1// /}"'\\r';; + echo -en 'travis_fold:end:'"${1// /}"'\r';; github_actions ) echo "::endgroup::";; esac diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 71f65bee..83c96ed3 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -91,6 +91,9 @@ docker run ${DOCKER_RUN_ARGS} \ -e CPU_COUNT \ -e BUILD_WITH_CONDA_DEBUG \ -e BUILD_OUTPUT_ID \ + -e flow_run_id \ + -e remote_url \ + -e sha \ -e BINSTAR_TOKEN \ "${DOCKER_IMAGE}" \ bash \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 689544c1..d2fc5ff7 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -22,11 +22,13 @@ bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} source ${MINIFORGE_HOME}/etc/profile.d/conda.sh conda activate base +export CONDA_SOLVER="libmamba" +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 -mamba install --update-specs --quiet --yes --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 -mamba update --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 +mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \ + pip mamba conda-build boa conda-forge-ci-setup=4 +mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ + pip mamba conda-build boa conda-forge-ci-setup=4 @@ -45,6 +47,10 @@ else echo -e "\n\nNot mangling homebrew as we are not running in CI" fi +if [[ "${sha:-}" == "" ]]; then + sha=$(git rev-parse HEAD) +fi + echo -e "\n\nRunning the build setup script." source run_conda_forge_build_setup @@ -55,11 +61,6 @@ source run_conda_forge_build_setup echo -e "\n\nMaking the build clobber file" make_build_number ./ ./.conda/recipe ./.ci_support/${CONFIG}.yaml -if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" -fi - - if [[ -f LICENSE.txt ]]; then cp LICENSE.txt ".conda/recipe/recipe-scripts-license.txt" fi @@ -75,9 +76,15 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then # Drop into an interactive shell /bin/bash else + + if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + fi + conda mambabuild ./.conda/recipe -m ./.ci_support/${CONFIG}.yaml \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml + --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ + --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" ( startgroup "Uploading packages" ) 2> /dev/null diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat new file mode 100755 index 00000000..b90fefb7 --- /dev/null +++ b/.scripts/run_win_build.bat @@ -0,0 +1,123 @@ +:: PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here +:: will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent +:: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also +:: benefit from the improvement. + +:: Note: we assume a Miniforge installation is available + +:: INPUTS (required environment variables) +:: CONFIG: name of the .ci_support/*.yaml file for this job +:: CI: azure, github_actions, or unset +:: UPLOAD_PACKAGES: true or false +:: UPLOAD_ON_BRANCH: true or false + +setlocal enableextensions enabledelayedexpansion + +call :start_group "Configuring conda" + +:: Activate the base conda environment +call activate base +:: Configure the solver +set "CONDA_SOLVER=libmamba" +if !errorlevel! neq 0 exit /b !errorlevel! +set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" + +:: Provision the necessary dependencies to build the recipe later +echo Installing dependencies +mamba.exe install "python=3.10" pip mamba conda-build boa conda-forge-ci-setup=4 -c conda-forge --strict-channel-priority --yes +if !errorlevel! neq 0 exit /b !errorlevel! + +:: Set basic configuration +echo Setting up configuration +setup_conda_rc .\ ".\.conda/recipe" .\.ci_support\%CONFIG%.yaml +if !errorlevel! neq 0 exit /b !errorlevel! +echo Running build setup +CALL run_conda_forge_build_setup + + +if !errorlevel! neq 0 exit /b !errorlevel! + +if EXIST LICENSE.txt ( + echo Copying feedstock license + copy LICENSE.txt ".conda/recipe\\recipe-scripts-license.txt" +) +if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( + if [%CROSSCOMPILING_EMULATOR%] == [] ( + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test" + ) +) + +if NOT [%flow_run_id%] == [] ( + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" +) + +call :end_group + +:: Build the recipe +echo Building recipe +conda.exe mambabuild ".conda/recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% +if !errorlevel! neq 0 exit /b !errorlevel! + +:: Prepare some environment variables for the upload step +if /i "%CI%" == "github_actions" ( + set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" + set "GIT_BRANCH=%GITHUB_REF:refs/heads/=%" + if /i "%GITHUB_EVENT_NAME%" == "pull_request" ( + set "IS_PR_BUILD=True" + ) else ( + set "IS_PR_BUILD=False" + ) + set "TEMP=%RUNNER_TEMP%" +) +if /i "%CI%" == "azure" ( + set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" + set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" + if /i "%BUILD_REASON%" == "PullRequest" ( + set "IS_PR_BUILD=True" + ) else ( + set "IS_PR_BUILD=False" + ) + set "TEMP=%UPLOAD_TEMP%" +) +set "UPLOAD_ON_BRANCH=master" +:: Note, this needs GIT_BRANCH too + +:: Validate + +if /i "%UPLOAD_PACKAGES%" == "true" ( + if /i "%IS_PR_BUILD%" == "false" ( + call :start_group "Uploading packages" + if not exist "%TEMP%\" md "%TEMP%" + set "TMP=%TEMP%" + upload_package .\ ".\.conda/recipe" .ci_support\%CONFIG%.yaml + if !errorlevel! neq 0 exit /b !errorlevel! + call :end_group + ) +) + +exit + +:: Logging subroutines + +:start_group +if /i "%CI%" == "github_actions" ( + echo ::group::%~1 + exit /b +) +if /i "%CI%" == "azure" ( + echo ##[group]%~1 + exit /b +) +echo %~1 +exit /b + +:end_group +if /i "%CI%" == "github_actions" ( + echo ::endgroup:: + exit /b +) +if /i "%CI%" == "azure" ( + echo ##[endgroup] + exit /b +) +exit /b \ No newline at end of file diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 00000000..5a8ab532 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,45 @@ +cff-version: 1.2.0 +title: >- + A fully-functional GNU Radio software-defined radio + implementation of a LoRa transceiver +message: >- + If you use this software, please cite it using the + metadata from this file. +type: software +authors: + - given-names: Joachim + family-names: Tapparel + orcid: 'https://orcid.org/0000-0002-0154-9738' + affiliation: École Polytechnique Fédérale de Lausanne +repository-code: 'https://github.com/tapparelj/gr-lora_sdr' +abstract: >- + This is the fully-functional GNU Radio software-defined + radio (SDR) implementation of a LoRa transceiver with all + the necessary receiver components to operate correctly + even at very low SNRs. This work has been conducted at the + Telecommunication Circuits Laboratory, EPFL. +license: GPL-3.0+ +preferred-citation: + type: conference-paper + authors: + - family-names: "Joachim" + given-names: "Tapparel" + orcid: "https://orcid.org/0000-0002-0154-9738" + - family-names: "Afisiadis" + given-names: "Orion" + orcid: "https://orcid.org/0000-0002-5287-9681" + - family-names: "Mayoraz" + given-names: "Paul" + - family-names: "Balatsoukas-Stimming" + given-names: "Alexios" + orcid: "https://orcid.org/0000-0002-6721-4666" + - family-names: "Burg" + given-names: "Andreas" + orcid: "https://orcid.org/0000-0002-7270-5558" + doi: "10.1109/SPAWC48557.2020.9154273" + journal: "2020 IEEE 21st International Workshop on Signal Processing Advances in Wireless Communications (SPAWC)" + month: 5 + start: 1 + end: 5 + title: "An Open-Source LoRa Physical Layer Prototype on GNU Radio" + year: 2020 diff --git a/Changelog.md b/Changelog.md index d511baa9..1415e261 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,6 @@ +# v0.5.7 +- Add optional print of received payload as hex values +- Update conda-smithy configuration # v0.5.6 - Added tagged stream input support (for frame definition of frame length) - Fixed LLR stream format between _fft\_demod_ and _deinterleaver_ diff --git a/README.md b/README.md index c5491d29..9756f131 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![GitHub last commit](https://img.shields.io/github/last-commit/tapparelj/gr-lora_sdr)](https://img.shields.io/github/last-commit/tapparelj/gr-lora_sdr) -![gnuradio](https://img.shields.io/badge/GNU%20Radio-3.10.5-important) -![version](https://img.shields.io/badge/Version-0.5.6-brightgreen) +![gnuradio](https://img.shields.io/badge/GNU%20Radio-3.10.6-important) +![version](https://img.shields.io/badge/Version-0.5.7-brightgreen) [![arXiv](https://img.shields.io/badge/arXiv-2002.08208-.svg)](https://arxiv.org/abs/2002.08208) [![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Ftapparelj%2Fgr-lora_sdr&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com) [![Build conda package](https://github.com/tapparelj/gr-lora_sdr/actions/workflows/conda-build.yml/badge.svg)](https://github.com/tapparelj/gr-lora_sdr/actions/workflows/conda-build.yml) @@ -20,9 +20,11 @@ In the GNU Radio implementation of the LoRa Tx and Rx chains the user can choose

- In the Tx chain, the implementation contains all the main blocks of the LoRa transceiver: the header- and the CRC-insertion blocks, the whitening block, the Hamming encoder block, the interleaver block, the Gray demapping block, and the modulation block. + ![tx_flow](https://user-images.githubusercontent.com/66671413/184139150-a14a0417-7098-46ea-b6ad-ca8ba6709904.png) - On the receiver side there is the packet synchronization block, which performs all the necessary tasks needed for the synchronization, such as the necessary STO and CFO estimation and correction. The demodulation block follows, along with the Gray mapping block, the deinterleaving block, the Hamming decoder block and the dewhitening block, as well as a CRC verification block. + ![rx_flow](https://user-images.githubusercontent.com/66671413/184138776-2e41efc0-78b4-434b-8958-3bed2443cbc4.png) - The implementation can be used for fully end-to-end experimental performance results of a LoRa SDR receiver at low SNRs. @@ -32,7 +34,7 @@ In the GNU Radio implementation of the LoRa Tx and Rx chains the user can choose ## Functionalities -- Sending and receiving LoRa packets between USRP-USRP and USRP-commercial LoRa transceiver (tested for Adafruit Feather 32u4 RFM95 and dragino LoRa/GPS HAT). +- Sending and receiving LoRa packets between USRP-USRP and USRP-commercial LoRa transceiver (tested with RFM95, SX1276, SX1262). - Parameters available: - Spreading factors: 5-12* @@ -45,7 +47,7 @@ In the GNU Radio implementation of the LoRa Tx and Rx chains the user can choose - Low datarate optimisation mode - Utilisation of soft-decision decoding for improved performances -\* Spreading factors 5 and 6 not compatible with SX1261/2. +\* Spreading factors 5 and 6 are not compatible with SX126x. ## Reference J. Tapparel, O. Afisiadis, P. Mayoraz, A. Balatsoukas-Stimming and A. Burg, "An Open-Source LoRa Physical Layer Prototype on GNU Radio," 2020 IEEE 21st International Workshop on Signal Processing Advances in Wireless Communications (SPAWC), Atlanta, GA, USA, 2020, pp. 1-5. @@ -58,7 +60,7 @@ If you find this implementation useful for your project, please consider citing - python 3 - cmake - libvolk -- Boost +- boost - UHD - gcc > 9.3.0 - gxx @@ -182,6 +184,7 @@ Thanks to Ryan Volz this OOT module can also directly be installed as a Conda pa [grc] local_blocks_path=path_to_the_downloaded_folder/gr-lora_sdr/grc ## Changelog +- Add optional print of received payload as hex values - Added tagged stream input support (for frame definition of frame length) - Fixed LLR stream format between _fft\_demod_ and _deinterleaver_ - added tags to crc verification output stream indication frame start, length and CRC result. diff --git a/examples/lora_RX.py b/examples/lora_RX.py index 7e1b3ec3..a4404bec 100755 --- a/examples/lora_RX.py +++ b/examples/lora_RX.py @@ -7,7 +7,7 @@ # GNU Radio Python Flow Graph # Title: Lora Rx # Author: Tapparel Joachim@EPFL,TCL -# GNU Radio version: 3.10.5.1 +# GNU Radio version: v3.11.0.0git-604-gd7f88722 from gnuradio import gr from gnuradio.filter import firdes @@ -69,7 +69,7 @@ def __init__(self): self.lora_sdr_fft_demod_0 = lora_sdr.fft_demod( soft_decoding, True) self.lora_sdr_dewhitening_0 = lora_sdr.dewhitening() self.lora_sdr_deinterleaver_0 = lora_sdr.deinterleaver( soft_decoding) - self.lora_sdr_crc_verif_0 = lora_sdr.crc_verif( True, False) + self.lora_sdr_crc_verif_0 = lora_sdr.crc_verif( 1, False) ################################################## diff --git a/examples/lora_TX.py b/examples/lora_TX.py index f27cd2cc..b87569f0 100755 --- a/examples/lora_TX.py +++ b/examples/lora_TX.py @@ -7,7 +7,7 @@ # GNU Radio Python Flow Graph # Title: Lora Tx # Author: Tapparel Joachim@EPFL,TCL -# GNU Radio version: 3.10.5.1 +# GNU Radio version: v3.11.0.0git-604-gd7f88722 from gnuradio import blocks import pmt diff --git a/examples/tx_rx_functionality_check.grc b/examples/tx_rx_functionality_check.grc index 0198ea71..a2059c8a 100644 --- a/examples/tx_rx_functionality_check.grc +++ b/examples/tx_rx_functionality_check.grc @@ -199,6 +199,7 @@ blocks: maxoutbuf: '0' minoutbuf: '0' num_ports: '1' + showports: 'False' type: complex vlen: '1' states: @@ -241,7 +242,7 @@ blocks: bus_sink: false bus_source: false bus_structure: null - coordinate: [1576, 252.0] + coordinate: [1584, 244.0] rotation: 0 state: enabled - name: channels_channel_model_0 @@ -290,12 +291,12 @@ blocks: maxoutbuf: '0' minoutbuf: '0' output_crc_check: 'False' - print_rx_msg: 'True' + print_rx_msg: '1' states: bus_sink: false bus_source: false bus_structure: null - coordinate: [256, 424.0] + coordinate: [248, 424.0] rotation: 180 state: enabled - name: lora_sdr_deinterleaver_0 @@ -575,4 +576,4 @@ connections: metadata: file_format: 1 - grc_version: 3.10.5.1 + grc_version: v3.11.0.0git-604-gd7f88722 diff --git a/examples/tx_rx_functionality_check.py b/examples/tx_rx_functionality_check.py index ab7ba127..8e22af53 100755 --- a/examples/tx_rx_functionality_check.py +++ b/examples/tx_rx_functionality_check.py @@ -7,7 +7,7 @@ # GNU Radio Python Flow Graph # Title: Tx Rx Functionality Check # Author: Tapparel Joachim@EPFL,TCL -# GNU Radio version: 3.10.5.1 +# GNU Radio version: v3.11.0.0git-604-gd7f88722 from gnuradio import blocks import pmt @@ -66,7 +66,7 @@ def __init__(self): self.lora_sdr_fft_demod_0 = lora_sdr.fft_demod( soft_decoding, True) self.lora_sdr_dewhitening_0 = lora_sdr.dewhitening() self.lora_sdr_deinterleaver_0 = lora_sdr.deinterleaver( soft_decoding) - self.lora_sdr_crc_verif_0 = lora_sdr.crc_verif( True, False) + self.lora_sdr_crc_verif_0 = lora_sdr.crc_verif( 1, False) self.lora_sdr_add_crc_0 = lora_sdr.add_crc(has_crc) self.channels_channel_model_0 = channels.channel_model( noise_voltage=(10**(-SNRdB/20)), diff --git a/examples/tx_rx_hier_functionality_check.grc b/examples/tx_rx_hier_functionality_check.grc index e4e36921..89a6bc41 100644 --- a/examples/tx_rx_hier_functionality_check.grc +++ b/examples/tx_rx_hier_functionality_check.grc @@ -321,4 +321,4 @@ connections: metadata: file_format: 1 - grc_version: 3.10.5.1 + grc_version: v3.11.0.0git-604-gd7f88722 diff --git a/examples/tx_rx_hier_functionality_check.py b/examples/tx_rx_hier_functionality_check.py index 85d17d27..9c2437d1 100755 --- a/examples/tx_rx_hier_functionality_check.py +++ b/examples/tx_rx_hier_functionality_check.py @@ -7,7 +7,7 @@ # GNU Radio Python Flow Graph # Title: Tx Rx Hier Functionality Check # Author: Tapparel Joachim@EPFL,TCL -# GNU Radio version: 3.10.5.1 +# GNU Radio version: v3.11.0.0git-604-gd7f88722 from gnuradio import blocks import pmt diff --git a/examples/tx_rx_simulation.py b/examples/tx_rx_simulation.py index e98e9150..5d7d9d9e 100755 --- a/examples/tx_rx_simulation.py +++ b/examples/tx_rx_simulation.py @@ -7,7 +7,7 @@ # GNU Radio Python Flow Graph # Title: Tx Rx Simulation # Author: Tapparel Joachim@EPFL,TCL -# GNU Radio version: 3.10.5.1 +# GNU Radio version: v3.11.0.0git-604-gd7f88722 from gnuradio import blocks import pmt @@ -64,7 +64,7 @@ def __init__(self): self.lora_sdr_fft_demod_0 = lora_sdr.fft_demod( soft_decoding, False) self.lora_sdr_dewhitening_0 = lora_sdr.dewhitening() self.lora_sdr_deinterleaver_0 = lora_sdr.deinterleaver( soft_decoding) - self.lora_sdr_crc_verif_0 = lora_sdr.crc_verif( True, False) + self.lora_sdr_crc_verif_0 = lora_sdr.crc_verif( 1, False) self.lora_sdr_add_crc_0 = lora_sdr.add_crc(has_crc) self.channels_channel_model_0 = channels.channel_model( noise_voltage=(10**(-SNRdB/20)), diff --git a/examples/tx_rx_usrp.grc b/examples/tx_rx_usrp.grc index ab28dc69..fd1673ce 100644 --- a/examples/tx_rx_usrp.grc +++ b/examples/tx_rx_usrp.grc @@ -239,7 +239,7 @@ blocks: maxoutbuf: '0' minoutbuf: '0' output_crc_check: 'False' - print_rx_msg: 'True' + print_rx_msg: '1' states: bus_sink: false bus_source: false @@ -1236,4 +1236,4 @@ connections: metadata: file_format: 1 - grc_version: 3.10.5.1 + grc_version: v3.11.0.0git-604-gd7f88722 diff --git a/examples/tx_rx_usrp.py b/examples/tx_rx_usrp.py index 9b256cff..46ddab50 100755 --- a/examples/tx_rx_usrp.py +++ b/examples/tx_rx_usrp.py @@ -7,7 +7,7 @@ # GNU Radio Python Flow Graph # Title: Tx Rx Usrp # Author: Tapparel Joachim@EPFL,TCL -# GNU Radio version: 3.10.5.1 +# GNU Radio version: v3.11.0.0git-604-gd7f88722 from gnuradio import blocks import pmt @@ -98,7 +98,7 @@ def __init__(self): self.lora_sdr_fft_demod_0 = lora_sdr.fft_demod( soft_decoding, False) self.lora_sdr_dewhitening_0 = lora_sdr.dewhitening() self.lora_sdr_deinterleaver_0 = lora_sdr.deinterleaver( soft_decoding) - self.lora_sdr_crc_verif_0 = lora_sdr.crc_verif( True, False) + self.lora_sdr_crc_verif_0 = lora_sdr.crc_verif( 1, False) self.lora_sdr_add_crc_0 = lora_sdr.add_crc(has_crc) self.blocks_multiply_const_vxx_0 = blocks.multiply_const_cc(10**((Att_dB)/20)) self.blocks_multiply_const_vxx_0.set_min_output_buffer(10000000) diff --git a/grc/lora_sdr_crc_verif.block.yml b/grc/lora_sdr_crc_verif.block.yml index 82efaceb..edb9f0cc 100644 --- a/grc/lora_sdr_crc_verif.block.yml +++ b/grc/lora_sdr_crc_verif.block.yml @@ -8,8 +8,9 @@ parameters: - id: print_rx_msg label: print_rx_msg dtype: enum - options: ['False', 'True'] - option_labels: ['No', 'Yes'] + options: [0, 1, 2] + option_labels: ['None', 'ASCII', 'Hex'] + default: 1 - id: output_crc_check label: output_crc_check dtype: enum @@ -17,7 +18,6 @@ parameters: option_labels: ['No', 'Yes'] default: 'False' - inputs: - domain: stream dtype: byte @@ -42,7 +42,7 @@ documentation: |- Calculate the CRC of the received data and compare it with the received CRC. Parameters: rx_log: filename where to store the received messages and their timestamp, put "" for no log. "Walltime,payload\n" - print_rx_msg: Print or not the received message. + print_rx_msg: Print the received message in the terminal with the specified format. 0: None, 1: ASCII, 2: Hex output_crc_check: Ouput a stream of bytes containing either 0 or 1 based on the CRC check. If enabled, both stream output must be connected. Input: in: stream of payload bytes diff --git a/include/gnuradio/lora_sdr/crc_verif.h b/include/gnuradio/lora_sdr/crc_verif.h index 1b65db39..8a165424 100644 --- a/include/gnuradio/lora_sdr/crc_verif.h +++ b/include/gnuradio/lora_sdr/crc_verif.h @@ -36,6 +36,11 @@ namespace gr { class LORA_SDR_API crc_verif : virtual public gr::block { public: + enum Print_type{ + NONE, + ASCII, + HEX + }; typedef std::shared_ptr sptr; /*! @@ -46,7 +51,7 @@ namespace gr { * class. lora_sdr::crc_verif::make is the public interface for * creating new instances. */ - static sptr make(bool print_rx_msg, bool output_crc_check); + static sptr make(int print_rx_msg, bool output_crc_check); }; } // namespace lora_sdr diff --git a/lib/crc_verif_impl.cc b/lib/crc_verif_impl.cc index 36d5c414..0854f081 100644 --- a/lib/crc_verif_impl.cc +++ b/lib/crc_verif_impl.cc @@ -7,6 +7,7 @@ #include "crc_verif_impl.h" #include // for print color +#include "gnuradio/lora_sdr/crc_verif.h" namespace gr { @@ -14,7 +15,7 @@ namespace gr { crc_verif::sptr - crc_verif::make(bool print_rx_msg, bool output_crc_check) + crc_verif::make(int print_rx_msg, bool output_crc_check) { return gnuradio::get_initial_sptr(new crc_verif_impl(print_rx_msg, output_crc_check)); } @@ -22,15 +23,16 @@ namespace gr /* * The private constructor */ - crc_verif_impl::crc_verif_impl(bool print_rx_msg, bool output_crc_check) + crc_verif_impl::crc_verif_impl(int print_rx_msg, bool output_crc_check) : gr::block("crc_verif", gr::io_signature::make(1, 1, sizeof(uint8_t)), gr::io_signature::make2(0, 2, sizeof(uint8_t), sizeof(uint8_t))), - print_rx_msg(print_rx_msg), + print_rx_msg(print_rx_msg), output_crc_check(output_crc_check) { message_port_register_out(pmt::mp("msg")); set_tag_propagation_policy(TPP_DONT); + } /* @@ -151,11 +153,19 @@ namespace gr curent_tag.offset = nitems_written(0); add_item_tag(0, curent_tag); } - - if (print_rx_msg) + if (print_rx_msg != NONE) { - std::cout << "rx msg: " << message_str << std::endl - << std::endl; + if(print_rx_msg == ASCII) + std::cout << "rx msg: " << message_str << std::endl; + else if(print_rx_msg == HEX){ + std::cout << "rx msg: "; + for (int i = 0; i < (int)m_payload_len; i++){ + std::cout << std::hex <<"0x"<< (int)in_buff[i] << std::dec; + if(i != (int)m_payload_len-1) + std::cout << ", "; + } + std::cout << std::endl; + } if (crc_valid) std::cout << "CRC valid!" << std::endl @@ -191,8 +201,17 @@ namespace gr } cnt++; in_buff.erase(in_buff.begin(), in_buff.begin() + m_payload_len ); - if (print_rx_msg) + if (print_rx_msg == ASCII) std::cout << "rx msg: " << message_str << std::endl; + else if(print_rx_msg == HEX){ + std::cout << "rx msg: "; + for (int i = 0; i < (int)m_payload_len; i++){ + std::cout << std::hex <<"0x"<< (int)in_buff[i]<< std::dec; + if(i != (int)m_payload_len-1) + std::cout << ", "; + } + std::cout << std::endl; + } message_port_pub(pmt::intern("msg"), pmt::mp(message_str)); return m_payload_len; diff --git a/lib/crc_verif_impl.h b/lib/crc_verif_impl.h index c6344920..a195e5cd 100644 --- a/lib/crc_verif_impl.h +++ b/lib/crc_verif_impl.h @@ -18,7 +18,7 @@ namespace gr { char m_char;///< A new char of the payload bool new_frame; /// in_buff;///< input buffer containing the data bytes and CRC if any - bool print_rx_msg; ///< print received message in terminal or not + int print_rx_msg; ///< print received message in terminal. 0: no print, 1: ASCII, 2: HEX bool output_crc_check; ///< output the result of the payload CRC check tag_t curent_tag; ///< the most recent tag for the packet we are currently processing @@ -44,7 +44,7 @@ namespace gr { unsigned int crc16(uint8_t* data, uint32_t len); public: - crc_verif_impl(bool print_rx_msg, bool output_crc_check); + crc_verif_impl(int print_rx_msg, bool output_crc_check); ~crc_verif_impl(); void forecast (int noutput_items, gr_vector_int &ninput_items_required); diff --git a/python/lora_sdr/bindings/crc_verif_python.cc b/python/lora_sdr/bindings/crc_verif_python.cc index 4b25b771..0608ddfb 100644 --- a/python/lora_sdr/bindings/crc_verif_python.cc +++ b/python/lora_sdr/bindings/crc_verif_python.cc @@ -1,5 +1,5 @@ /* - * Copyright 2022 Free Software Foundation, Inc. + * Copyright 2023 Free Software Foundation, Inc. * * This file is part of GNU Radio * @@ -16,7 +16,7 @@ /* BINDTOOL_GEN_AUTOMATIC(0) */ /* BINDTOOL_USE_PYGCCXML(0) */ /* BINDTOOL_HEADER_FILE(crc_verif.h) */ -/* BINDTOOL_HEADER_FILE_HASH(f21d76dec9ed1d7a8019b05dbdcceee7) */ +/* BINDTOOL_HEADER_FILE_HASH(0c1080da98c3ced88d2f4a26b7d592da) */ /***********************************************************************************/ #include diff --git a/python/lora_sdr/bindings/docstrings/crc_verif_pydoc_template.h b/python/lora_sdr/bindings/docstrings/crc_verif_pydoc_template.h index cde67b81..913cb8c9 100644 --- a/python/lora_sdr/bindings/docstrings/crc_verif_pydoc_template.h +++ b/python/lora_sdr/bindings/docstrings/crc_verif_pydoc_template.h @@ -1,5 +1,5 @@ /* - * Copyright 2022 Free Software Foundation, Inc. + * Copyright 2023 Free Software Foundation, Inc. * * This file is part of GNU Radio *