From 51be7d47b4d461f1ab0a0d379189eb664dc508d9 Mon Sep 17 00:00:00 2001 From: David Hinckley Date: Mon, 9 Feb 2026 15:18:41 -0500 Subject: [PATCH 1/7] DOC/FIX: updated release documentation --- RELEASE.md | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 06c1b9ea..f73bf088 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,7 +4,7 @@ How to release `podpac` ## Updating main -1. Ensure your local main / main-3.X branch is synced to upstream: +1. Ensure your local main branch is synced to upstream: ```bash $ git pull upstream main # or just git pull @@ -53,16 +53,28 @@ $ python setup.py bdist_wheel sdist 8. Upload package to [TestPypi](https://packaging.python.org/guides/using-testpypi/). You will need to be listed as a package owner at https://pypi.python.org/pypi/podpac for this to work. You now need to use a pypi generated token, can no longer use your password. -```bash -$ twine upload --repository-url https://test.pypi.org/legacy/ dist/podpac-X.Y.Z* +First create a `${HOME}/.pypirc` file with the below contents, replacing `YOUR_API_TOKEN` with your valid pypi token (file template taken from here https://stackoverflow.com/questions/69065069/http-403-error-while-uploading-python-package-to-pypi): +``` +[distutils] + index-servers = + pypi + podpac + +[pypi] + username = __token__ + password = YOUR_API_TOKEN + +[YOUR_PROJECT_NAME] + repository = https://upload.pypi.org/legacy/ + username = __token__ + password = YOUR_API_TOKEN + ``` -9. Use twine to register and upload the release on pypi. Be careful, you can't -take this back! You will need to be listed as a package owner at -https://pypi.python.org/pypi/podpac for this to work. +Then run the upload command from your podpac directory ```bash $ twine upload dist/podpac-X.Y.Z* ``` -11. Issue the release announcement (via github) +9. Issue the release announcement (via github) From 4e98d7185e87eab6b3372dc4aa53a68b151d6420 Mon Sep 17 00:00:00 2001 From: David Hinckley Date: Tue, 17 Feb 2026 12:56:00 -0500 Subject: [PATCH 2/7] DOC: updated CHANGELOG and version for release --- CHANGELOG.md | 4 ++++ podpac/version.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63c9f406..883a0d9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,8 @@ # Changelog +## 4.0.1 +### Bugfixes +* Changed test_settings unit tests to use pytest's `tmp_path` fixture. + ## 4.0.0 ### Introduction diff --git a/podpac/version.py b/podpac/version.py index a027b24c..1c7013d4 100644 --- a/podpac/version.py +++ b/podpac/version.py @@ -17,7 +17,7 @@ ############## MAJOR = 4 MINOR = 0 -HOTFIX = 0 +HOTFIX = 1 ############## From 335cc8884b1206e3036f3b28b1d90e9603340d1b Mon Sep 17 00:00:00 2001 From: David Hinckley Date: Mon, 1 Jun 2026 13:04:28 -0400 Subject: [PATCH 3/7] updated changelog and version --- CHANGELOG.md | 11 +++++++++++ podpac/version.py | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63c9f406..f5594a7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,15 @@ # Changelog +## 4.0.2 +### Bugfixes +* Replaced `print` statements with `logging` statements. +* Fixed implicit `botocore` environment requirement. +* Clarified error statement when input coordinates do not match expected `dtype`. +* Removed old `crs.is_valid` calls. +* Set Rasterio geotiff export `nodata` value to `np.nan` in `podpac.core.units.to_geotiff` for consistency. + +## 4.0.1 +### Bugfixes +* Changed test_settings unit tests to use pytest's `tmp_path` fixture. ## 4.0.0 ### Introduction diff --git a/podpac/version.py b/podpac/version.py index 3ddd0dbf..9b01c144 100644 --- a/podpac/version.py +++ b/podpac/version.py @@ -18,7 +18,7 @@ ############## MAJOR = 4 MINOR = 0 -HOTFIX = 0 +HOTFIX = 2 ############## From ca043005b41d5c22ad6c56cc6f62d41a25bdf7f4 Mon Sep 17 00:00:00 2001 From: David Hinckley Date: Wed, 3 Jun 2026 09:55:58 -0400 Subject: [PATCH 4/7] updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5594a7e..d3bcfd42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ * Clarified error statement when input coordinates do not match expected `dtype`. * Removed old `crs.is_valid` calls. * Set Rasterio geotiff export `nodata` value to `np.nan` in `podpac.core.units.to_geotiff` for consistency. +* Fixed issue with opening Zarr data sources ## 4.0.1 ### Bugfixes From 0856f1e69d0f13217926eb42c40c6e239f797d78 Mon Sep 17 00:00:00 2001 From: David Hinckley Date: Thu, 4 Jun 2026 13:47:23 -0400 Subject: [PATCH 5/7] DOC: added comment to clarify unit test addition --- podpac/core/coordinates/test/test_stacked_coordinates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/podpac/core/coordinates/test/test_stacked_coordinates.py b/podpac/core/coordinates/test/test_stacked_coordinates.py index 2b73749c..7ab26466 100644 --- a/podpac/core/coordinates/test/test_stacked_coordinates.py +++ b/podpac/core/coordinates/test/test_stacked_coordinates.py @@ -780,7 +780,7 @@ def test_issubset(self): sc_3 = StackedCoordinates([lat[::-1], lon], name="lat_lon") # same coordinates, paired differently sc_t = sc.transpose("lon", "lat") sc_time = StackedCoordinates([lat, lon, time], name="lat_lon_time") - sc_single_value = StackedCoordinates([lat[0], lon[0]], name="lat_lon") + sc_single_value = StackedCoordinates([lat[0], lon[0]], name="lat_lon") # added to cover fix in issue 544 assert sc.issubset(sc) assert sc[:2].issubset(sc) From 12bd4a3502553c60dbb3f0719e36489f02e62df0 Mon Sep 17 00:00:00 2001 From: David Hinckley Date: Thu, 4 Jun 2026 13:48:27 -0400 Subject: [PATCH 6/7] DOC: corrected comment text --- podpac/core/coordinates/test/test_stacked_coordinates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/podpac/core/coordinates/test/test_stacked_coordinates.py b/podpac/core/coordinates/test/test_stacked_coordinates.py index 7ab26466..52838162 100644 --- a/podpac/core/coordinates/test/test_stacked_coordinates.py +++ b/podpac/core/coordinates/test/test_stacked_coordinates.py @@ -780,7 +780,7 @@ def test_issubset(self): sc_3 = StackedCoordinates([lat[::-1], lon], name="lat_lon") # same coordinates, paired differently sc_t = sc.transpose("lon", "lat") sc_time = StackedCoordinates([lat, lon, time], name="lat_lon_time") - sc_single_value = StackedCoordinates([lat[0], lon[0]], name="lat_lon") # added to cover fix in issue 544 + sc_single_value = StackedCoordinates([lat[0], lon[0]], name="lat_lon") # added to cover fix in pull 544 assert sc.issubset(sc) assert sc[:2].issubset(sc) From 135efe9f9e1681ad19e811fa399e830df3067e4e Mon Sep 17 00:00:00 2001 From: David Hinckley Date: Wed, 12 Aug 2026 12:57:43 -0400 Subject: [PATCH 7/7] FIX: removed matplotlib style naming behavior check. removed version spec on numcodecs. DOC: updated changelog, updated podpac version --- CHANGELOG.md | 19 +++++++++++++++++++ podpac/core/test/test_style.py | 1 - podpac/version.py | 2 +- setup.py | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63c9f406..3c865350 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,23 @@ # Changelog +## 4.0.3 + +### Bugfixes +* Fixed zarr 3.x api issues in zarr_cache +* Fixed error catch in probe_node where probing a location of an enumeration where the value did not have a label resulted in KeyError + +## 4.0.2 +### Bugfixes +* Replaced `print` statements with `logging` statements. +* Fixed implicit `botocore` environment requirement. +* Clarified error statement when input coordinates do not match expected `dtype`. +* Removed old `crs.is_valid` calls. +* Set Rasterio geotiff export `nodata` value to `np.nan` in `podpac.core.units.to_geotiff` for consistency. +* Fixed issue with opening Zarr data sources + +## 4.0.1 +### Bugfixes +* Changed test_settings unit tests to use pytest's `tmp_path` fixture. + ## 4.0.0 ### Introduction diff --git a/podpac/core/test/test_style.py b/podpac/core/test/test_style.py index 303a48cc..e0cd68a5 100644 --- a/podpac/core/test/test_style.py +++ b/podpac/core/test/test_style.py @@ -24,7 +24,6 @@ def test_cmap(self): assert style.cmap.name == "cividis" style = Style(enumeration_colors=({0: "c", 1: "k"})) - assert style.cmap.name == "from_list" assert style.cmap.colors == ("c", "k") with pytest.raises(TypeError, match="Style can have a colormap or enumeration_colors"): diff --git a/podpac/version.py b/podpac/version.py index 3ddd0dbf..96c45c00 100644 --- a/podpac/version.py +++ b/podpac/version.py @@ -18,7 +18,7 @@ ############## MAJOR = 4 MINOR = 0 -HOTFIX = 0 +HOTFIX = 3 ############## diff --git a/setup.py b/setup.py index e53206e4..50451e45 100644 --- a/setup.py +++ b/setup.py @@ -43,7 +43,7 @@ "lxml>=6.1.0", "rasterio>=1.0", "zarr>=2.3,<4", - "numcodecs>=0.15.1", + "numcodecs", "owslib", "h5netcdf", ],