Skip to content

Update netcdf4 requirement from <=1.7.3,>=1.5.4 to >=1.5.4,<=1.7.4#2050

Merged
dpanici merged 6 commits intomasterfrom
dependabot/pip/netcdf4-gte-1.5.4-and-lte-1.7.4
Feb 13, 2026
Merged

Update netcdf4 requirement from <=1.7.3,>=1.5.4 to >=1.5.4,<=1.7.4#2050
dpanici merged 6 commits intomasterfrom
dependabot/pip/netcdf4-gte-1.5.4-and-lte-1.7.4

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Jan 5, 2026

Resolves #2085
Updates the requirements on netcdf4 to permit the latest version.

Changelog

Sourced from netcdf4's changelog.

version 1.7.4 (tag v1.7.4rel)

  • Make sure automatic conversion of character arrays <--> string arrays works for Unicode strings (issue #1440). (previously only worked correctly for encoding="ascii").
  • Add netcdf plugins (blosc, zstd, bzip2) in wheels. Blosc plugin doesn't work in Windows wheels. Macos wheels now use conda provided libs. (PR #1450)
  • Add windows/arm (PR #1453) and free-threaded python wheels (issue #1454). Windows wheels now use netcdf-c 4.9.3. WARNING: netcdf-c is not thread-safe and netcdf4-python does have internal locking so expect segfaults if you use netcdf4-python on multiple threads with free-threaded python. Users must exercise care to only call netcdf from a single thread.

version 1.7.3 (tag v1.7.3rel)

  • Python 3.14 wheels (issue #1432)
  • support os.PathLike arguments for Dataset.fromcdl and raise a FileNotFoundError if the cdl is missing and a FileExistsError if the nc file already exists (PR #1387)
  • raise more informative error when trying to iterate or perform a membership operation on a Dataset (issue #1383)
  • fix type hint for createEnumType (issue #1378)
  • add python 3.13 to windows wheel builds (PR #1377)
  • allow slicing of vlen and string variables with non-unitary strides (issue #1408).

version 1.7.2 (tag v1.7.2rel)

  • add static type hints (PRs #1302, #1349)
  • Expose nc_rc_set, nc_rc_get (via rc_set, rc_get module functions). (PR #1348)
  • Add Variable.get_fill_value and allow fill_value='default' to set _FillValue attribute using default fill values. (issue #1374, PR #1375).
  • Fix NETCDF3 endian error (issue #1373, PR #1355).

version 1.7.1 (tag v1.7.1rel)

  • include nc_complex source code from v0.2.0 tag (instead of using submodule).
  • add aarch64 wheels.

version 1.7.0 (tag v1.7.0rel)

  • add support for complex numbers via auto_complex keyword to Dataset (PR #1295)
  • fix for deprecated Cython DEF and IF statements using compatibility header with shims for unavailable functionality (PR #1277)
  • use szip as the library name on Windows (PR #1304)
  • add support for MS-MPI MPI_Message detection (PR #1305)
  • fix for issue #1306 - surprising result when indexing vlen str with non-contiguous indices.
  • Fix bug in set_collective introduced in PR #1277 (collective mode was always set).

version 1.6.5 (tag v1.6.5rel)

  • fix for issue #1271 (mask ignored if bool MA assigned to uint8 var)

... (truncated)

Commits

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot Bot added dependencies Issue related to libraries we depend on and how we interface with them run_benchmarks Run timing benchmarks on this PR against current master branch skip_changelog No need to update changelog on this PR labels Jan 5, 2026
YigitElma
YigitElma previously approved these changes Jan 6, 2026
@YigitElma YigitElma requested review from a team, ddudt, dpanici, f0uriest, rahulgaur104 and unalmis and removed request for a team January 6, 2026 22:06
@f0uriest
Copy link
Copy Markdown
Member

f0uriest commented Jan 6, 2026

looks like this introduces some breaking changes in how strings are encoded

@dependabot dependabot Bot force-pushed the dependabot/pip/netcdf4-gte-1.5.4-and-lte-1.7.4 branch from a489903 to c51800c Compare January 8, 2026 01:04
@YigitElma YigitElma marked this pull request as draft January 8, 2026 01:33
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 8, 2026

Memory benchmark result

|               Test Name                |      %Δ      |    Master (MB)     |      PR (MB)       |    Δ (MB)    |    Time PR (s)     |  Time Master (s)   |
| -------------------------------------- | ------------ | ------------------ | ------------------ | ------------ | ------------------ | ------------------ |
  test_objective_jac_w7x                 |    2.80 %    |     3.897e+03      |     4.007e+03      |    109.23    |       38.45        |       36.44        |
  test_proximal_jac_w7x_with_eq_update   |   -0.62 %    |     6.567e+03      |     6.526e+03      |    -40.62    |       164.42       |       163.21       |
  test_proximal_freeb_jac                |   -0.36 %    |     1.321e+04      |     1.317e+04      |    -47.47    |       84.72        |       84.01        |
  test_proximal_freeb_jac_blocked        |    0.33 %    |     7.499e+03      |     7.523e+03      |    24.37     |       74.57        |       74.08        |
  test_proximal_freeb_jac_batched        |   -0.10 %    |     7.510e+03      |     7.502e+03      |    -7.82     |       73.07        |       73.68        |
  test_proximal_jac_ripple               |   -0.68 %    |     3.509e+03      |     3.485e+03      |    -23.90    |       66.09        |       65.97        |
  test_proximal_jac_ripple_bounce1d      |    2.93 %    |     3.467e+03      |     3.569e+03      |    101.76    |       77.53        |       78.84        |
  test_eq_solve                          |    1.09 %    |     2.022e+03      |     2.044e+03      |    22.02     |       94.62        |       95.03        |

For the memory plots, go to the summary of Memory Benchmarks workflow and download the artifact.

@dependabot dependabot Bot force-pushed the dependabot/pip/netcdf4-gte-1.5.4-and-lte-1.7.4 branch 2 times, most recently from 94d8be2 to 9a0fa24 Compare January 13, 2026 21:01
Updates the requirements on [netcdf4](https://github.com/Unidata/netcdf4-python) to permit the latest version.
- [Release notes](https://github.com/Unidata/netcdf4-python/releases)
- [Changelog](https://github.com/Unidata/netcdf4-python/blob/master/Changelog)
- [Commits](https://github.com/Unidata/netcdf4-python/commits)

---
updated-dependencies:
- dependency-name: netcdf4
  dependency-version: 1.7.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/pip/netcdf4-gte-1.5.4-and-lte-1.7.4 branch from 9a0fa24 to 7d9b8bc Compare January 21, 2026 20:13
@dpanici dpanici self-assigned this Feb 12, 2026
@dpanici dpanici requested a review from YigitElma February 12, 2026 19:08
@dpanici dpanici marked this pull request as ready for review February 12, 2026 19:08
@dpanici
Copy link
Copy Markdown
Collaborator

dpanici commented Feb 12, 2026

netCDF 1.7.4 silently breaks the default behavior for stringtochar. I vote to just exclude this version from the pip list and close this PR @YigitElma @f0uriest @daniel-dudt

#2085

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 12, 2026

|             benchmark_name             |         dt(%)          |         dt(s)          |        t_new(s)        |        t_old(s)        | 
| -------------------------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
 test_build_transform_fft_midres         |     -3.21 +/- 3.84     | -2.76e-02 +/- 3.31e-02 |  8.34e-01 +/- 2.0e-02  |  8.62e-01 +/- 2.7e-02  |
 test_build_transform_fft_highres        |     -2.56 +/- 2.85     | -2.91e-02 +/- 3.23e-02 |  1.11e+00 +/- 2.1e-02  |  1.13e+00 +/- 2.4e-02  |
 test_equilibrium_init_lowres            |     +1.13 +/- 4.43     | +6.85e-02 +/- 2.68e-01 |  6.12e+00 +/- 2.6e-01  |  6.05e+00 +/- 6.0e-02  |
 test_objective_compile_atf              |     -3.71 +/- 2.84     | -3.09e-01 +/- 2.37e-01 |  8.03e+00 +/- 8.8e-02  |  8.34e+00 +/- 2.2e-01  |
 test_objective_compute_atf              |     +6.78 +/- 7.77     | +1.71e-04 +/- 1.95e-04 |  2.69e-03 +/- 1.3e-04  |  2.52e-03 +/- 1.5e-04  |
 test_objective_jac_atf                  |     +3.28 +/- 4.37     | +5.67e-02 +/- 7.56e-02 |  1.79e+00 +/- 6.3e-02  |  1.73e+00 +/- 4.2e-02  |
 test_perturb_1                          |     +1.07 +/- 2.31     | +1.65e-01 +/- 3.55e-01 |  1.55e+01 +/- 1.7e-01  |  1.54e+01 +/- 3.1e-01  |
 test_proximal_jac_atf                   |     +1.34 +/- 1.92     | +7.35e-02 +/- 1.05e-01 |  5.55e+00 +/- 9.4e-02  |  5.47e+00 +/- 4.7e-02  |
 test_proximal_freeb_compute             |     -1.26 +/- 2.69     | -2.06e-03 +/- 4.39e-03 |  1.61e-01 +/- 3.4e-03  |  1.63e-01 +/- 2.8e-03  |
 test_solve_fixed_iter                   |     +1.03 +/- 1.28     | +2.94e-01 +/- 3.67e-01 |  2.89e+01 +/- 2.7e-01  |  2.86e+01 +/- 2.5e-01  |
 test_objective_compute_ripple           |     -0.27 +/- 4.16     | -5.74e-04 +/- 8.76e-03 |  2.10e-01 +/- 7.2e-03  |  2.11e-01 +/- 5.0e-03  |
 test_objective_grad_ripple              |     +1.90 +/- 2.56     | +1.71e-02 +/- 2.30e-02 |  9.18e-01 +/- 1.7e-02  |  9.01e-01 +/- 1.5e-02  |
 test_build_transform_fft_lowres         |     -2.15 +/- 3.26     | -1.52e-02 +/- 2.31e-02 |  6.92e-01 +/- 1.7e-02  |  7.08e-01 +/- 1.5e-02  |
 test_equilibrium_init_medres            |     -0.68 +/- 6.76     | -3.98e-02 +/- 3.96e-01 |  5.82e+00 +/- 8.5e-02  |  5.86e+00 +/- 3.9e-01  |
 test_equilibrium_init_highres           |     -1.47 +/- 3.27     | -9.82e-02 +/- 2.18e-01 |  6.58e+00 +/- 1.7e-01  |  6.67e+00 +/- 1.3e-01  |
 test_objective_compile_dshape_current   |     +2.55 +/- 7.45     | +9.36e-02 +/- 2.74e-01 |  3.77e+00 +/- 2.0e-01  |  3.67e+00 +/- 1.8e-01  |
 test_objective_compute_dshape_current   |     +1.70 +/- 13.50    | +1.30e-05 +/- 1.03e-04 |  7.77e-04 +/- 7.2e-05  |  7.64e-04 +/- 7.4e-05  |
 test_objective_jac_dshape_current       |     +4.80 +/- 12.63    | +1.32e-03 +/- 3.48e-03 |  2.89e-02 +/- 2.0e-03  |  2.76e-02 +/- 2.8e-03  |
 test_perturb_2                          |     +3.19 +/- 1.54     | +5.32e-01 +/- 2.57e-01 |  1.72e+01 +/- 2.2e-01  |  1.67e+01 +/- 1.3e-01  |
 test_proximal_jac_atf_with_eq_update    |     +1.35 +/- 0.91     | +1.95e-01 +/- 1.32e-01 |  1.46e+01 +/- 1.2e-01  |  1.44e+01 +/- 4.9e-02  |
 test_proximal_freeb_jac                 |     +0.92 +/- 2.46     | +5.08e-02 +/- 1.36e-01 |  5.59e+00 +/- 1.2e-01  |  5.53e+00 +/- 5.5e-02  |
 test_solve_fixed_iter_compiled          |     +0.44 +/- 1.93     | +3.90e-02 +/- 1.69e-01 |  8.81e+00 +/- 9.3e-02  |  8.77e+00 +/- 1.4e-01  |
 test_LinearConstraintProjection_build   |     -2.66 +/- 2.34     | -2.29e-01 +/- 2.02e-01 |  8.38e+00 +/- 1.9e-01  |  8.61e+00 +/- 6.9e-02  |
 test_objective_compute_ripple_bounce1d  |     -2.61 +/- 6.40     | -7.61e-03 +/- 1.87e-02 |  2.84e-01 +/- 1.4e-02  |  2.92e-01 +/- 1.2e-02  |
 test_objective_grad_ripple_bounce1d     |     +0.24 +/- 3.95     | +2.60e-03 +/- 4.31e-02 |  1.09e+00 +/- 4.0e-02  |  1.09e+00 +/- 1.7e-02  |

Github CI performance can be noisy. When evaluating the benchmarks, developers should take this into account.

@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.53%. Comparing base (f2fcecc) to head (178b522).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2050      +/-   ##
==========================================
+ Coverage   94.02%   94.53%   +0.51%     
==========================================
  Files         102      102              
  Lines       28785    28785              
==========================================
+ Hits        27064    27213     +149     
+ Misses       1721     1572     -149     

see 15 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dpanici dpanici merged commit b29e191 into master Feb 13, 2026
29 checks passed
@dpanici dpanici deleted the dependabot/pip/netcdf4-gte-1.5.4-and-lte-1.7.4 branch February 13, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Issue related to libraries we depend on and how we interface with them run_benchmarks Run timing benchmarks on this PR against current master branch skip_changelog No need to update changelog on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update netcdf4 requirement from <=1.7.3,>=1.5.4 to >=1.5.4,<=1.7.4

3 participants