Fiona
Fiona copied to clipboard
1.10 release
As I mentioned in https://github.com/Toblerity/Fiona/discussions/1329 I would like to make a Fiona 1.10 release with support for Python virtual filesystems (done in #1331) and Numpy 2.
Target date for a 1.10a1 is 2024-03-01.
1.10a1 distributions are on PyPI now: https://pypi.org/project/fiona/1.10a1/#files.
@sgillies do you have a planned date for 1.10 release that is not a pre-release? I am trying to figure out if we need another patch release of GeoPandas before that or of GeoPandas 1.0 (tentatively end of April) will be enough.
@martinfleis I'm also thinking end of April for 1.10.0.
A largish new feature and a big refactor have landed. I'm going to begin releasing 1.0a2 today.
Small changes to CI runners since 1.10a1 have broken the builds 😂 . I'm iterating on the fix.
Whew, done with 1.10a2!
All the major new features planned for 1.10.0 are done, so let's have the next release be 1.10b1.
1.10b1 is tagged, on PyPI, and announced in some places. Should be on conda-forge soon.
1.10b2 is tagged and on PyPI. Let's have a release candidate on 2024-07-15.
test_opener_fsspec_file_fs_listdir
fails during the Debian package build:
=================================== FAILURES ===================================
______________________ test_opener_fsspec_file_fs_listdir ______________________
def test_opener_fsspec_file_fs_listdir():
"""Use fsspec file filesystem as opener for listdir()."""
fs = fsspec.filesystem("file")
listing = fiona.listdir("tests/data", opener=fs)
> assert len(listing) >= 35
E AssertionError
tests/test_pyopener.py:146: AssertionError
------------------------------ Captured log call -------------------------------
DEBUG fiona._env:env.py:315 GDAL data files are available at built-in paths.
DEBUG fiona._env:env.py:315 PROJ data files are available at built-in paths.
DEBUG fiona:__init__.py:502 Registering opener: raw_dataset_path='tests/data', opener=<fsspec.implementations.local.LocalFileSystem object at 0x7f553dfdcb30>
DEBUG fiona._vsiopener:contextlib.py:137 Installing Python opener handler plugin: prefix_bytes=b'/vsifiopener_ff31c064a95a46cc8b03443981c8783c/'
DEBUG fiona:__init__.py:504 Registered vsi path: registered_vsi_path='/vsifiopener_ff31c064a95a46cc8b03443981c8783c/tests/data'
DEBUG fiona._vsiopener:__init__.py:505 Looking up opener in pyopener_stat: urlpath='tests/data', registry={(PosixPath('tests'), 'ff31c064a95a46cc8b03443981c8783c'): <fiona._vsiopener._FilesystemOpener object at 0x7f553dfdf0b0>}, key=(PosixPath('tests'), 'ff31c064a95a46cc8b03443981c8783c')
DEBUG fiona._vsiopener:__init__.py:505 Looking up opener in pyopener_read_dir: urlpath='tests/data', registry={(PosixPath('tests'), 'ff31c064a95a46cc8b03443981c8783c'): <fiona._vsiopener._FilesystemOpener object at 0x7f553dfdf0b0>}, key=(PosixPath('tests'), 'ff31c064a95a46cc8b03443981c8783c')
=========================== short test summary info ============================
FAILED tests/test_pyopener.py::test_opener_fsspec_file_fs_listdir - Assertion...
========== 1 failed, 1079 passed, 108 skipped, 1 deselected in 4.95s ===========
There are only 33 files in that directory:
$ find tests/data/ -type f | wc -l
33
This patch resolves the issue for me:
--- a/tests/test_pyopener.py
+++ b/tests/test_pyopener.py
@@ -143,7 +143,7 @@ def test_opener_fsspec_file_fs_listdir()
"""Use fsspec file filesystem as opener for listdir()."""
fs = fsspec.filesystem("file")
listing = fiona.listdir("tests/data", opener=fs)
- assert len(listing) >= 35
+ assert len(listing) >= 33
assert set(
["coutwildrnp.shp", "coutwildrnp.dbf", "coutwildrnp.shx", "coutwildrnp.prj"]
) & set(listing)
Thanks @sebastic ! I fixed this in afdd0e7.
1.10b2 is tagged and on PyPI. Let's have a release candidate on 2024-07-15.
@sgillies I can't see the release candidate in the releases here on Github or on PyPi, has it been delayed?
Edit: or do you mean 1.10b2 from 2024-07-11 is the release candidate?
@pjonsson it's delayed. In fact, I will be making a 1.10b3 soon so that people can try the work in #1415.
1.10b3 was tagged and released yesterday. Give it a workout if you can 🙏
Hey all, the code in this project is ready for a 1.10.0rc1. However, the wheel building workflows are not ready to build wheels for Python 3.13. I've begun work on rewriting the fiona-wheels GitHub Action workflows to use a combination of multibuild (or vcpkg) and cibuildwheel. Progress is slow. Does anyone have a preference for me to wait until 3.13 wheels are unblocked before 1.10.0rc1?
I don't see any 3.13 wheels for 1.9.6, or in the 1.10b-releases, so releasing 1.10.0 without 3.13 wheels isn't making the situation worse than it already is. Considering GHSA-q5fm-55c2-v6j9 and GHSA-g4m4-9q4c-mfw6 are in 1.9.6, I think it's fair to put 3.13 wheels after 1.10.0.
Thanks for the response @pjonsson. I'm inclined to have a 1.10.0rc1 without 3.13 wheels.
About the CVEs: they're not as dire as they appear. These are the first ones I've published on GitHub and I did so before I'd made edits to the original reports. My amendments (see https://github.com/Toblerity/Fiona/security/advisories) should appear in the GitHub database at some point, I hope.
Since Fiona is a low-level dependency for many downstream geospatial projects, it would be beneficial to have Python 3.13 on PyPI as fast as possible, ideally in the 1.10 release.
I have some experience with wheel building, where's the exact workflow located? I can take a look at updating it.
Edit: Right, it was https://github.com/sgillies/fiona-wheels. I will take a look!