Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.3.0 release #2310

Closed
sgillies opened this issue Oct 13, 2021 · 48 comments
Closed

1.3.0 release #2310

sgillies opened this issue Oct 13, 2021 · 48 comments
Assignees
Milestone

Comments

@sgillies
Copy link
Member

We've got some new features done and only two outstanding features. Are there any objections to an alpha release tomorrow?

For the wheels, getting this patch OSGeo/gdal#4646 could resolve #2233 .

@sgillies sgillies added this to the 1.3.0 milestone Oct 13, 2021
@sgillies sgillies self-assigned this Oct 13, 2021
@sgillies
Copy link
Member Author

A couple macosx wheels got hung up on a test that needs to be skipped and will come later. All the rest are at https://pypi.org/project/rasterio/1.3a1/#files.

@sgillies
Copy link
Member Author

Let's do 1.3a2 on Tuesday, 2021-10-19.

@snowman2
Copy link
Member

snowman2 commented Oct 18, 2021

Note: For awareness reasons. the change in behavior from #2311, caused the rioxarray CI build to indicates something is different in the latest version. This is likely okay, but I plan to dig into this a little more and ensure the change is desired.

@snowman2
Copy link
Member

No concerns on my end.

@vincentsarago
Copy link
Member

FYI, I'm not able to install rasterio 1.3.a1 on my Mac OS M1

$ pip install rasterio --pre -U                                
Requirement already satisfied: rasterio in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (1.2.10)
Collecting rasterio
  Using cached rasterio-1.3a1.tar.gz (643 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing wheel metadata (pyproject.toml) ... done
Requirement already satisfied: snuggs>=1.4.1 in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio) (1.4.7)
Requirement already satisfied: affine in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio) (2.3.0)
Requirement already satisfied: numpy in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio) (1.21.2)
Requirement already satisfied: click-plugins in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio) (1.1.1)
Requirement already satisfied: attrs in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio) (21.2.0)
Requirement already satisfied: setuptools in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio) (53.0.0)
Requirement already satisfied: certifi in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio) (2020.12.5)
Requirement already satisfied: cligj>=0.5 in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio) (0.7.2)
Requirement already satisfied: click>=4.0 in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio) (7.1.2)
Requirement already satisfied: pyparsing>=2.1.6 in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from snuggs>=1.4.1->rasterio) (2.4.7)
Building wheels for collected packages: rasterio
  Building wheel for rasterio (pyproject.toml) ... error
  ERROR: Command errored out with exit status 1:
   command: /Users/vincentsarago/Dev/venv/python38/bin/python /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /var/folders/5m/9w3sxz2n1d12vyk8k_cz76w40000gn/T/tmpzrfyb9tz
       cwd: /private/var/folders/5m/9w3sxz2n1d12vyk8k_cz76w40000gn/T/pip-install-7hf3lhlx/rasterio_a637a977aad5463f9497390c6c472086
  Complete output (502 lines):
  INFO:root:GDAL API version obtained from gdal-config: 3.3.2
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.14.6-arm64-3.8
  creating build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/mask.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/_loading.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/enums.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/merge.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/plot.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/drivers.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/env.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/fill.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/coords.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/tools.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/control.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/io.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/session.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/features.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/dtypes.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/vrt.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/crs.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/rpc.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/transform.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/sample.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/warp.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/errors.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/windows.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/path.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  copying ./rasterio/profiles.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio
  creating build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/gcps.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/options.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/mask.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/edit_info.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/merge.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/rasterize.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/shapes.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/env.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/insp.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/convert.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/__init__.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/rm.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/overview.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/stack.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/transform.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/calc.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/sample.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/warp.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/blocks.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/clip.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/main.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/info.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/helpers.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  copying ./rasterio/rio/bounds.py -> build/lib.macosx-10.14.6-arm64-3.8/rasterio/rio
  running egg_info
  writing rasterio.egg-info/PKG-INFO
  writing dependency_links to rasterio.egg-info/dependency_links.txt
  writing entry points to rasterio.egg-info/entry_points.txt
  writing requirements to rasterio.egg-info/requires.txt
  writing top-level names to rasterio.egg-info/top_level.txt
  reading manifest file 'rasterio.egg-info/SOURCES.txt'
  adding license file 'LICENSE.txt'
  adding license file 'AUTHORS.txt'
  writing manifest file 'rasterio.egg-info/SOURCES.txt'
  running build_ext
  building 'rasterio._base' extension
  creating build/temp.macosx-10.14.6-arm64-3.8
  creating build/temp.macosx-10.14.6-arm64-3.8/rasterio
  clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers -arch arm64 -arch x86_64 -Werror=implicit-function-declaration -I/private/var/folders/5m/9w3sxz2n1d12vyk8k_cz76w40000gn/T/pip-build-env-yut50cac/overlay/lib/python3.8/site-packages/numpy/core/include -I/opt/homebrew/Cellar/gdal/3.3.2_3/include -I/Users/vincentsarago/Dev/venv/python38/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8 -c rasterio/_base.c -o build/temp.macosx-10.14.6-arm64-3.8/rasterio/_base.o -Wno-unused-parameter -Wno-unused-function
  rasterio/_base.c:4025:26: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      __pyx_v_c_drivername = __pyx_f_8rasterio_5_base_get_driver_name(__pyx_v_driver);
                           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:4100:26: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      __pyx_v_c_extensions = GDALGetMetadataItem(__pyx_v_driver, ((char const *)"DMD_EXTENSIONS"), NULL);
                           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:5103:64: warning: passing 'char **' to parameter of type 'const char *const *' discards qualifiers in nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
          __pyx_v_hds = GDALOpenEx(__pyx_v_fname, __pyx_v_flags, __pyx_v_drivers, __pyx_v_options, NULL);
                                                                 ^~~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/gdal.h:640:65: note: passing argument to parameter 'papszAllowedDrivers' here
                                               const char* const* papszAllowedDrivers,
                                                                  ^
  rasterio/_base.c:5103:81: warning: passing 'char **' to parameter of type 'const char *const *' discards qualifiers in nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
          __pyx_v_hds = GDALOpenEx(__pyx_v_fname, __pyx_v_flags, __pyx_v_drivers, __pyx_v_options, NULL);
                                                                                  ^~~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/gdal.h:641:65: note: passing argument to parameter 'papszOpenOptions' here
                                               const char* const* papszOpenOptions,
                                                                  ^
  rasterio/_base.c:13220:17: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    __pyx_v_value = GDALGetMetadataItem(__pyx_v_obj, __pyx_v_key_c, ((char const *)"TIFF"));
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:18144:25: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
              __pyx_v_val = CPLParseNameValue((__pyx_v_metadata[__pyx_v_i]), (&__pyx_v_key));
                          ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:18890:17: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    __pyx_v_value = GDALGetMetadataItem(__pyx_v_obj, __pyx_v_name, __pyx_v_domain);
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:27021:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27136:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27250:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27365:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27483:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27598:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27712:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27827:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27941:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:28095:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:34505:5: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
      0,
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  18 warnings generated.
  rasterio/_base.c:4025:26: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      __pyx_v_c_drivername = __pyx_f_8rasterio_5_base_get_driver_name(__pyx_v_driver);
                           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:4100:26: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      __pyx_v_c_extensions = GDALGetMetadataItem(__pyx_v_driver, ((char const *)"DMD_EXTENSIONS"), NULL);
                           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:5103:64: warning: passing 'char **' to parameter of type 'const char *const *' discards qualifiers in nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
          __pyx_v_hds = GDALOpenEx(__pyx_v_fname, __pyx_v_flags, __pyx_v_drivers, __pyx_v_options, NULL);
                                                                 ^~~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/gdal.h:640:65: note: passing argument to parameter 'papszAllowedDrivers' here
                                               const char* const* papszAllowedDrivers,
                                                                  ^
  rasterio/_base.c:5103:81: warning: passing 'char **' to parameter of type 'const char *const *' discards qualifiers in nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
          __pyx_v_hds = GDALOpenEx(__pyx_v_fname, __pyx_v_flags, __pyx_v_drivers, __pyx_v_options, NULL);
                                                                                  ^~~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/gdal.h:641:65: note: passing argument to parameter 'papszOpenOptions' here
                                               const char* const* papszOpenOptions,
                                                                  ^
  rasterio/_base.c:13220:17: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    __pyx_v_value = GDALGetMetadataItem(__pyx_v_obj, __pyx_v_key_c, ((char const *)"TIFF"));
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:18144:25: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
              __pyx_v_val = CPLParseNameValue((__pyx_v_metadata[__pyx_v_i]), (&__pyx_v_key));
                          ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:18890:17: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    __pyx_v_value = GDALGetMetadataItem(__pyx_v_obj, __pyx_v_name, __pyx_v_domain);
                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  rasterio/_base.c:27021:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27136:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27250:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27365:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27483:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27598:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27712:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27827:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:27941:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:28095:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_base.c:34505:5: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
      0,
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  18 warnings generated.
  clang -bundle -undefined dynamic_lookup -arch arm64 -arch x86_64 -Wl,-headerpad,0x1000 build/temp.macosx-10.14.6-arm64-3.8/rasterio/_base.o -L/opt/homebrew/Cellar/gdal/3.3.2_3/lib -lgdal -o build/lib.macosx-10.14.6-arm64-3.8/rasterio/_base.cpython-38-darwin.so
  ld: warning: ignoring file /opt/homebrew/Cellar/gdal/3.3.2_3/lib/libgdal.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
  building 'rasterio._io' extension
  clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers -arch arm64 -arch x86_64 -Werror=implicit-function-declaration -I/private/var/folders/5m/9w3sxz2n1d12vyk8k_cz76w40000gn/T/pip-build-env-yut50cac/overlay/lib/python3.8/site-packages/numpy/core/include -I/opt/homebrew/Cellar/gdal/3.3.2_3/include -I/Users/vincentsarago/Dev/venv/python38/include -I/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8 -c rasterio/_io.c -o build/temp.macosx-10.14.6-arm64-3.8/rasterio/_io.o -Wno-unused-parameter -Wno-unused-function
  In file included from rasterio/_io.c:666:
  In file included from /private/var/folders/5m/9w3sxz2n1d12vyk8k_cz76w40000gn/T/pip-build-env-yut50cac/overlay/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:4:
  In file included from /private/var/folders/5m/9w3sxz2n1d12vyk8k_cz76w40000gn/T/pip-build-env-yut50cac/overlay/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12:
  In file included from /private/var/folders/5m/9w3sxz2n1d12vyk8k_cz76w40000gn/T/pip-build-env-yut50cac/overlay/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1969:
  /private/var/folders/5m/9w3sxz2n1d12vyk8k_cz76w40000gn/T/pip-build-env-yut50cac/overlay/lib/python3.8/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: "Using deprecated NumPy API, disable it with "          "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings]
  #warning "Using deprecated NumPy API, disable it with " \
   ^
  rasterio/_io.c:20507:18: error: implicit declaration of function 'CPLFetchBool' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      __pyx_t_2 = (CPLFetchBool(__pyx_v_options, ((char const *)"APPEND_SUBDATASET"), 0) != 0);
                   ^
  rasterio/_io.c:20507:18: note: did you mean 'CSLFetchBoolean'?
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/cpl_string.h:115:13: note: 'CSLFetchBoolean' declared here
  int CPL_DLL CSLFetchBoolean( CSLConstList papszStrList, const char *pszKey,
              ^
  rasterio/_io.c:31739:44: warning: passing 'const char **' to parameter of type 'char **' discards qualifiers in nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
          (void)(OSRExportToWkt(__pyx_v_osr, (&__pyx_v_srcwkt)));
                                             ^~~~~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/ogr_srs_api.h:504:74: note: passing argument to parameter here
  OGRErr CPL_DLL CPL_STDCALL OSRExportToWkt( OGRSpatialReferenceH, char ** );
                                                                           ^
  rasterio/_io.c:31823:19: warning: passing 'const char *' to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
            CPLFree(__pyx_v_srcwkt);
                    ^~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/cpl_vsi.h:244:33: note: passing argument to parameter here
  void CPL_DLL    VSIFree( void * );
                                  ^
  rasterio/_io.c:31866:21: warning: passing 'const char *' to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
              CPLFree(__pyx_v_srcwkt);
                      ^~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/cpl_vsi.h:244:33: note: passing argument to parameter here
  void CPL_DLL    VSIFree( void * );
                                  ^
  rasterio/_io.c:32165:42: warning: passing 'const char **' to parameter of type 'char **' discards qualifiers in nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
        (void)(OSRExportToWkt(__pyx_v_osr, (&__pyx_v_srcwkt)));
                                           ^~~~~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/ogr_srs_api.h:504:74: note: passing argument to parameter here
  OGRErr CPL_DLL CPL_STDCALL OSRExportToWkt( OGRSpatialReferenceH, char ** );
                                                                           ^
  rasterio/_io.c:32196:17: warning: passing 'const char *' to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
          CPLFree(__pyx_v_srcwkt);
                  ^~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/cpl_vsi.h:244:33: note: passing argument to parameter here
  void CPL_DLL    VSIFree( void * );
                                  ^
  rasterio/_io.c:32248:19: warning: passing 'const char *' to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
            CPLFree(__pyx_v_srcwkt);
                    ^~~~~~~~~~~~~~
  /opt/homebrew/Cellar/gdal/3.3.2_3/include/cpl_vsi.h:244:33: note: passing argument to parameter here
  void CPL_DLL    VSIFree( void * );
                                  ^
  rasterio/_io.c:51992:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:52189:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:52275:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:52429:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:52550:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:52643:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:52758:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:52868:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:53057:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:53176:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:53437:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:53583:3: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
    0, /*tp_print*/
    ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  rasterio/_io.c:64151:5: warning: 'tp_print' is deprecated [-Wdeprecated-declarations]
      0,
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/cpython/object.h:260:5: note: 'tp_print' has been explicitly marked deprecated here
      Py_DEPRECATED(3.8) int (*tp_print)(PyObject *, FILE *, int);
      ^
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/include/python3.8/pyport.h:515:54: note: expanded from macro 'Py_DEPRECATED'
  #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
                                                       ^
  20 warnings and 1 error generated.
  /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/distutils/extension.py:131: UserWarning: Unknown Extension options: 'cython_compile_time_env'
    warnings.warn(msg)
  error: command 'clang' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for rasterio
Failed to build rasterio
ERROR: Could not build wheels for rasterio, which is required to install pyproject.toml-based projects

python: 3.8
gdal: 3.3.2
numpy: 1.21.2

Note: I can install 1.2.8 without any issue

pip install rasterio==1.2.8
Collecting rasterio==1.2.8
  Using cached rasterio-1.2.8.tar.gz (2.2 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing wheel metadata (pyproject.toml) ... done
Requirement already satisfied: click>=4.0 in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio==1.2.8) (7.1.2)
Requirement already satisfied: certifi in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio==1.2.8) (2020.12.5)
Requirement already satisfied: cligj>=0.5 in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio==1.2.8) (0.7.2)
Requirement already satisfied: snuggs>=1.4.1 in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio==1.2.8) (1.4.7)
Requirement already satisfied: setuptools in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio==1.2.8) (53.0.0)
Requirement already satisfied: numpy in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio==1.2.8) (1.21.2)
Requirement already satisfied: click-plugins in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio==1.2.8) (1.1.1)
Requirement already satisfied: attrs in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio==1.2.8) (21.2.0)
Requirement already satisfied: affine in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from rasterio==1.2.8) (2.3.0)
Requirement already satisfied: pyparsing>=2.1.6 in /Users/vincentsarago/Dev/venv/python38/lib/python3.8/site-packages (from snuggs>=1.4.1->rasterio==1.2.8) (2.4.7)
Building wheels for collected packages: rasterio
  Building wheel for rasterio (pyproject.toml) ... done
  Created wheel for rasterio: filename=rasterio-1.2.8-cp38-cp38-macosx_10_14_arm64.whl size=2505783 sha256=e3e848ac12176227a6a8972e4b6d3e1050ab85716e8098c107b37c6d05abb33e
  Stored in directory: /Users/vincentsarago/Library/Caches/pip/wheels/c8/db/dc/7028af989c8541d0751fcd17ec7db34c446197378911fe7189
Successfully built rasterio
Installing collected packages: rasterio
  Attempting uninstall: rasterio
    Found existing installation: rasterio 1.2.10
    Uninstalling rasterio-1.2.10:
      Successfully uninstalled rasterio-1.2.10
Successfully installed rasterio-1.2.8

@sgillies
Copy link
Member Author

Here's the trouble

rasterio/_io.c:20507:18: error: implicit declaration of function 'CPLFetchBool' is invalid in C99 [-Werror,-Wimplicit-function-declaration]

Your compiler errors on the implicit function declaration warning. Linux gcc by default does not. But I see the same warning and will fix this.

@sgillies
Copy link
Member Author

sgillies commented Oct 19, 2021

@vincentsarago I've solved this in fbfbf6e. And I found another bug by paying closer attention to the compiler warnings. The only warning from _io.c now is the deprecated numpy API warning, and that's all in Cython's hands.

Basically, I had misread the cpl_string docs, or the docs are wrong. CSLFetchBoolean is not deprecated and is the function to use in C (not C++) code.

@vincentsarago
Copy link
Member

thanks @sgillies I confirm that I can now install rasterio 1.3a2 (from sources) 🥳 🙏

@sgillies
Copy link
Member Author

@vincentsarago
Copy link
Member

@sgillies do you have any timeline for other alpha release. I'm really looking forward using rasterio with fixed we did in #2357. I'll be happy to help on other issue/PR if you want more included in next pre-release

@Plantain
Copy link

This is now increasingly urgent as rasterio 1.2 is not buildable against the now released Python 3.10. Could we get a beta 1.3 release, or a backport of #2333 in the meantime? I have tried building my own rasterio wheels, but it is quite challenging...

@sgillies
Copy link
Member Author

sgillies commented Jan 12, 2022

@Plantain no, 1.2 isn't, but the "master" branch of rasterio (to be 1.3) is fine with Python 3.10. We have figured out the wheel building for x86_64, too: https://github.com/rasterio/rasterio-wheels/actions/runs/1685048319.

1.3.0 is still a ways out, but we can probably get a 1.3a3 out at the start of next week.

I feel for folks who want to use rasterio with the very latest Python release, but the convergence of dependencies here is really serious: Apple M1 x Python 3.10 x libcurl x libhdf5 🤕

@sgillies
Copy link
Member Author

sgillies commented Feb 4, 2022

Friday isn't a great day for a supported release, but I think tomorrow would be fine for a 1.3a3 pre-release with wheels that include GDAL 3.4.1, GEOS 3.10.2, PROJ 8.2.1, and support for signed requests to GCS on macos (rasterio/rasterio-wheels#71).

@sgillies
Copy link
Member Author

sgillies commented Feb 4, 2022

1.3a3 wheels are being built at https://github.com/rasterio/rasterio-wheels/actions/runs/1796584047. I'll upload them this afternoon.

@sgillies
Copy link
Member Author

sgillies commented Feb 4, 2022

@AndreaGiardini
Copy link
Contributor

GDAL 3.4.2 includes a lot of bugfixes that would be great to have in rasterio ( https://github.com/OSGeo/gdal/blob/v3.4.2/gdal/NEWS.md )

Can we bump the version to 3.4.2? Happy to submit a PR

@sgillies
Copy link
Member Author

@AndreaGiardini no, sorry. Rasterio is a software code project, not a distribution or packaging project. We don't make releases for each GDAL release. The source distributions for 1.2.10 and 1.3a3 will work with GDAL 3.4.2, so build them and you're good to go.

@vincentsarago
Copy link
Member

@AndreaGiardini, what @sgillies is saying is that rasterio wheels are shipped with a specific version of GDAL but it doesn't mean that you can't use rasterio with other version if you install GDAL yourself (and do pip install rasterio --no-binary). The relationship between GDAL version and rasterio is quite wide which allow users to use different version of GDAL with the latest rasterio code.

We try to provide python wheels for most environment with the latest GDAL major version (at the time of wheels creation). Last time Sean released 1.3a3 we used GDAL 3.4.1, maybe next time we'll use 3.4.2 but this is a huge TBD because we don't have plan for this at the moment.

@sgillies
Copy link
Member Author

#244 (and some resolution on #2433 and #2354) are the last things I'd like to tackle before 1.3a4. Anybody else have something they'd like to get in?

@sgillies
Copy link
Member Author

Okay, let's aim for a 1.3a4 on 2022-04-20.

@sgillies
Copy link
Member Author

Wheel updates for 1.3a4 are testing here: rasterio/rasterio-wheels#82.

@sgillies
Copy link
Member Author

Et voilà: https://pypi.org/project/rasterio/1.3a4/#files.

@snowman2
Copy link
Member

1.3a4 passes all rioxarray tests: https://github.com/corteva/rioxarray/runs/6115601414 (Note: These use PIP_NO_BINARY: rasterio)

@rasterio rasterio deleted a comment from peterdudfield Apr 25, 2022
@sgillies
Copy link
Member Author

@snowman2 you and Mike Taves got me unstuck with PROJ 9. Wheels are building and will be on PyPI later this evening.

@sgillies
Copy link
Member Author

Here we go: https://pypi.org/project/rasterio/1.3b1/#files 🚀

@snowman2
Copy link
Member

1.3b1 passes all rioxarray tests: https://github.com/corteva/rioxarray/runs/6406833169 (Note: These use PIP_NO_BINARY: rasterio)

@vincentsarago
Copy link
Member

vincentsarago commented May 23, 2022

@sgillies I'm getting a weird issue with VSIInstallPluginHandler with rasterio using a custom GDAL install. The install process went well but I get an error when importing rasterio

$ pip install rasterio==1.3b1 --no-binary rasterio
Collecting rasterio==1.3b1
  Downloading rasterio-1.3b1.tar.gz (402 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 402.6/402.6 kB 5.7 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
...
Successfully installed affine-2.3.1 attrs-21.4.0 certifi-2022.5.18.1 click-8.1.3 click-plugins-1.1.1 cligj-0.7.2 pyparsing-3.0.9 rasterio-1.3b1 snuggs-1.4.7

$ python
Python 3.9.12 (main, Apr 12 2022, 12:15:56) 
[GCC 7.3.1 20180712 (Red Hat 7.3.1-13)] on linux
>>> import rasterio
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/var/lang/lib/python3.9/site-packages/rasterio/__init__.py", line 13, in <module>
    from rasterio.crs import CRS
  File "rasterio/crs.pyx", line 1, in init rasterio.crs
  File "rasterio/_base.pyx", line 31, in init rasterio._base
  File "/var/lang/lib/python3.9/site-packages/rasterio/transform.py", line 14, in <module>
    from rasterio.env import env_ctx_if_needed
  File "/var/lang/lib/python3.9/site-packages/rasterio/env.py", line 16, in <module>
    from rasterio._env import (
  File "rasterio/_env.pyx", line 1, in init rasterio._env
ImportError: /var/lang/lib/python3.9/site-packages/rasterio/_filepath.cpython-39-x86_64-linux-gnu.so: undefined symbol: VSIInstallPluginHandler

$ gdalinfo --version
GDAL 3.5.0, released 2022/05/10

is there anything required on the GDAL install compilation to enable VSI Plugin? Full dockerfile can be found here https://gist.github.com/vincentsarago/084ce7c49e9d8e6c2ed6d3a2eb8cb9e3

TL&DR: I'm using cmake to build GDAL 👇

# gdal
RUN mkdir /tmp/gdal \
  && curl -sfL https://github.com/OSGeo/gdal/archive/release/3.5.tar.gz | tar zxf - -C /tmp/gdal --strip-components=1

RUN cd /tmp/gdal \
  && mkdir build && cd build \
  && cmake3 .. \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \
    -DCMAKE_INSTALL_LIBDIR:PATH=lib \
    -DCMAKE_C_FLAGS="-O2 -Wl,-S" \
    -DCMAKE_CXX_FLAGS="-O2 -Wl,-S" \
    -DGDAL_SET_INSTALL_RELATIVE_RPATH=ON \
    -DGDAL_USE_TIFF_INTERNAL=OFF \
    -DGDAL_USE_GEOTIFF_INTERNAL=OFF \
    -DGDAL_USE_LERC_INTERNAL=OFF \
    -DLERC_INCLUDE_DIR=$PREFIX/include \
    -DLERC_LIBRARY=$PREFIX/lib/libLercLib.so \
    -DPNG_PNG_INCLUDE_DIR=$PREFIX/include \
    -DPNG_LIBRARY_RELEASE=$PREFIX/lib/libpng.so \
    -DBUILD_PYTHON_BINDINGS=OFF \
  && make -j $(nproc) --silent && make install \
  && rm -rf /tmp/gdal

@snowman2
Copy link
Member

I see the same error:

#2464

@sgillies
Copy link
Member Author

Interesting! For what it's worth, the rasterio linux wheels builds with GDAL 3.5.0 are ok: https://github.com/rasterio/rasterio-wheels/actions/runs/2360647365.

Any chance this is a Cython issue? The wheel builds are done with Cython 0.29.28 https://github.com/rasterio/rasterio-wheels/blob/master/.github/workflows/wheels.yaml#L35. According to https://pypi.org/project/Cython/#history, 0.29.29 was yanked. I'm going to read about that now.

@sgillies
Copy link
Member Author

sgillies commented May 23, 2022

The regression in 0.29.29 seems unrelated at first glance https://github.com/cython/cython/blob/master/CHANGES.rst#bugs-fixed-11.

@sgillies
Copy link
Member Author

sgillies commented Jun 16, 2022

No problems reported with 1.3b1, but I haven't heard back from users at work yet.

Update: I'm getting positive reports from projects at work 👍

@sgillies
Copy link
Member Author

Alright, having fixed #2353, let's have a 1.3b2 tomorrow.

@sgillies
Copy link
Member Author

@sgillies
Copy link
Member Author

Windows wheels! https://github.com/rasterio/rasterio-wheels/actions/runs/2570679170

@sgillies
Copy link
Member Author

https://pypi.org/project/rasterio/1.3b3/#files

@sgillies
Copy link
Member Author

@snowman2 @vincentsarago what do you think about a 1.3.0 early next week? July 5?

@snowman2
Copy link
Member

what do you think about a 1.3.0 early next week? July 5?

That sounds good to me 🚀

@vincentsarago
Copy link
Member

🙌 Let's do it

@sgillies
Copy link
Member Author

sgillies commented Jul 5, 2022

We fixed a bug after 1.3b3, but I feel confident in going straight to 1.3.0. I'll tag and build wheels and write up release notes.

@gjoseph92
Copy link

FYI #2423 (comment): the rasterio.path deprecation did technically introduce a breaking API change without a deprecation cycle. Not sure if it's worth blocking the release over to add an alias back to the top-level API, since it's so uncommonly used, but I'm not sure how strictly you want to treat API stability.

If you want to go to 1.3.0 as is, that seems totally reasonable to me—might be good to mention in release notes though.

@sgillies
Copy link
Member Author

sgillies commented Jul 5, 2022

@gjoseph92 good point! I think I'd made a note to add an alias but lost track of it. It'll be a quick fix.

@sgillies
Copy link
Member Author

sgillies commented Jul 6, 2022

  • Packages on PyPI
  • GitHub release, discussion
  • Twitter announcement
  • Mailing list announcement

@sgillies
Copy link
Member Author

sgillies commented Jul 7, 2022

I've made a maint-1.3 branch, changed __version__ in master (soon to be main #2327) to 1.4dev and will close this issue.

@sgillies sgillies closed this as completed Jul 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants