Skip to content

Fix dependencies for blosc extension - #860

Merged
d-v-b merged 2 commits into
zarr-developers:mainfrom
QuLogic:blosc-deps
Sep 18, 2026
Merged

d-v-b merged 2 commits into
zarr-developers:mainfrom
QuLogic:blosc-deps

Conversation

@QuLogic

@QuLogic QuLogic commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

The blosc extension only depends on blosc.h, not any of the other libraries' headers. And if we're using internal blosc, then the other libraries are handled by blosc_lib.

Additionally, Zlib is only required if building blosc internally, but also add an option to allow using a system copy of it if desired.

  • Unit tests and/or doctests in docstrings
  • Tests pass locally
  • [n/a] Docstrings and API docs for any new/modified user-facing classes and functions
  • Changes documented in docs/release.rst
  • [n/a] Docs build locally
  • GitHub Actions CI passes
  • Test coverage to 100% (Codecov passes)

The blosc extension only depends on `blosc.h`, not any of the other
libraries' headers. And if we're using internal blosc, then the other
libraries are handled by `blosc_lib`.
Also, don't build vendored Zlib internally if not using vendored blosc,
as it isn't necessary.
@d-v-b
d-v-b requested a review from mkitti September 18, 2026 08:00
@d-v-b

d-v-b commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

thanks, this looks good. I requested review from @mkitti who knows this stuff better than me. if that takes too long I will ask an llm.

@mkitti

mkitti commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

This also looks good to me. I think this is scoped to meson though. Is that the only build method we support?

I would just add a note that this only affects thr meson build path.

@mkitti mkitti left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nevermind. The build system was switched to meson.

@d-v-b
d-v-b merged commit 1f83681 into zarr-developers:main Sep 18, 2026
43 checks passed
@QuLogic
QuLogic deleted the blosc-deps branch September 18, 2026 08:59
d-v-b added a commit that referenced this pull request Oct 20, 2026
* fix(pickles): refuse to unpickle in Pickle.decode unless the process opts in

Pickle.decode called pickle.loads on its input, and the "pickle" codec id
can be selected by array metadata, so reading an untrusted array could
execute arbitrary code. Decoding now raises UnsafeDecodeError unless
numcodecs.pickles.ALLOW_UNSAFE_PICKLE_DECODE is True, which is initialised
from the NUMCODECS_ALLOW_UNSAFE_PICKLE_DECODE environment variable. The
switch is process-wide rather than a codec parameter because codec
parameters come from the same untrusted metadata. Encoding is unchanged.

Refs: GHSA-jqc8-qjfv-5m6r

Assisted-by: ClaudeCode:claude-opus-5-5

* Update docs/release.md

Co-authored-by: Max Jones <[email protected]>

* docs(release): fix typo in the Pickle.decode security note

Assisted-by: ClaudeCode:claude-fable-5.1

* Update docs/other/pickles.md

Co-authored-by: Chris Holden <[email protected]>

* Update docs/release.md

Co-authored-by: Chris Holden <[email protected]>

* docs(release): add the 0.17.1 release notes heading

Move the unreleased entries under a 0.17.1 heading. The entry for #860 had no section and sat above the 0.17.0 label; it is now listed under Maintenance for 0.17.1.

Assisted-by: ClaudeCode:claude-fable-5.1

Co-Authored-By: Claude Fable 5.1 <[email protected]>

* Apply suggestion from @maxrjones

Co-authored-by: Max Jones <[email protected]>

* Apply suggestion from @maxrjones

Co-authored-by: Max Jones <[email protected]>

* Update tests/test_pickles.py

Co-authored-by: Max Jones <[email protected]>

* test(pickles): test the environment variable parsing through a helper

The rewritten test set the environment variable after import and expected decode to honor it, but the variable is read once at import time, so the truthy cases failed. Move the parsing into _read_opt_in_from_env(), call it once at import as before, and test the helper directly with monkeypatch. No subprocess is needed and the import-once behavior is unchanged.

Assisted-by: ClaudeCode:claude-fable-5.1

Co-Authored-By: Claude Fable 5.1 <[email protected]>

---------

Co-authored-by: Max Jones <[email protected]>
Co-authored-by: Chris Holden <[email protected]>
Co-authored-by: Claude Fable 5.1 <[email protected]>
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

Successfully merging this pull request may close these issues.

3 participants