Fiona icon indicating copy to clipboard operation
Fiona copied to clipboard

1.10 release

Open sgillies opened this issue 11 months ago • 17 comments

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.

sgillies avatar Feb 29 '24 17:02 sgillies

1.10a1 distributions are on PyPI now: https://pypi.org/project/fiona/1.10a1/#files.

sgillies avatar Mar 03 '24 01:03 sgillies

@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 avatar Mar 27 '24 13:03 martinfleis

@martinfleis I'm also thinking end of April for 1.10.0.

sgillies avatar Mar 28 '24 16:03 sgillies

A largish new feature and a big refactor have landed. I'm going to begin releasing 1.0a2 today.

sgillies avatar Apr 03 '24 14:04 sgillies

Small changes to CI runners since 1.10a1 have broken the builds 😂 . I'm iterating on the fix.

sgillies avatar Apr 04 '24 15:04 sgillies

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.

sgillies avatar Apr 05 '24 22:04 sgillies

1.10b1 is tagged, on PyPI, and announced in some places. Should be on conda-forge soon.

sgillies avatar Apr 16 '24 21:04 sgillies

1.10b2 is tagged and on PyPI. Let's have a release candidate on 2024-07-15.

sgillies avatar Jul 11 '24 02:07 sgillies

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)

sebastic avatar Jul 11 '24 03:07 sebastic

Thanks @sebastic ! I fixed this in afdd0e7.

sgillies avatar Jul 11 '24 14:07 sgillies

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 avatar Jul 23 '24 11:07 pjonsson

@pjonsson it's delayed. In fact, I will be making a 1.10b3 soon so that people can try the work in #1415.

sgillies avatar Jul 24 '24 22:07 sgillies

1.10b3 was tagged and released yesterday. Give it a workout if you can 🙏

sgillies avatar Jul 30 '24 18:07 sgillies

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?

sgillies avatar Aug 21 '24 18:08 sgillies

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.

pjonsson avatar Aug 21 '24 20:08 pjonsson

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.

sgillies avatar Aug 21 '24 22:08 sgillies

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!

EwoutH avatar Aug 22 '24 10:08 EwoutH