Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,31 @@ versions follow [Semantic Versioning](https://semver.org/).

## [Unreleased]

## [0.20.1] — 2026-08-31

### Fixed
- **The declared `scitex-dev` floor was too low to install a working clew.**
0.20.0 shipped `scitex-dev>=0.17.8` while every store resolves through
`scitex_dev.store.host_store()`. A consumer holding an older scitex-dev
therefore RESOLVED CLEANLY and then failed at use — measured on
scitex-python, which pins `scitex-dev==0.28.0`: `uv pip install`
succeeded, then `ModuleNotFoundError: No module named 'scitex_dev.store'`
and three clew integration tests failed on all three Python legs. The
floor is now `scitex-dev>=0.49.2` in both the runtime and `dev`
dependency sets, so the bad combination is refused at resolve time
instead of failing silently later.

The number is measured, and IMPORTING IS NOT THE TEST: 0.43.1 is the
first release carrying the module and `host_store`, and it imports every
symbol clew imports — yet a real write-then-read raises
`TypeError: tuple indices must be integers or slices, not str` inside
`Store.rows()`. Running an actual record-and-read-back against
PostgreSQL with the published 0.20.0 wheel: 0.28.0 FAIL (no module),
0.43.1 FAIL, 0.46.0 FAIL, 0.48.0 FAIL, 0.49.0 FAIL, **0.49.2 OK**,
0.49.3 OK, 0.50.0 OK, 0.57.0 OK.

No code change: 0.20.1 is 0.20.0 with honest metadata.

## [0.20.0] — 2026-08-31

### Added — carried forward from `main`
Expand Down
22 changes: 19 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "scitex-clew"
version = "0.20.0"
version = "0.20.1"
description = "Verifiable knowledge graph for scientific experiments"
readme = "README.md"
license = "AGPL-3.0-only"
Expand Down Expand Up @@ -33,7 +33,21 @@ classifiers = [
"Topic :: Scientific/Engineering",
]
dependencies = [
"scitex-dev>=0.17.8",
# Every store resolves through `scitex_dev.store.host_store()`, so the
# floor must be a scitex-dev that actually HAS a working store. 0.17.8
# does not, and the old floor let a stale consumer install cleanly and
# then fail at use — scitex-python pinned `scitex-dev==0.28.0`, resolved
# happily, and got `ModuleNotFoundError: No module named
# 'scitex_dev.store'` at import.
#
# 0.49.2 is measured, not guessed, and importing is NOT the test: 0.43.1
# is the first release with the module and `host_store`, yet a real
# write-then-read raises `TypeError: tuple indices must be integers or
# slices, not str` inside `Store.rows()`. Running a real record+read
# against PostgreSQL with the published clew wheel: 0.43.1 FAIL, 0.46.0
# FAIL, 0.48.0 FAIL, 0.49.0 FAIL, 0.49.2 OK, 0.49.3 OK, 0.50.0 OK,
# 0.57.0 OK.
"scitex-dev>=0.49.2",
"click>=8.1",
]
[project.optional-dependencies]
Expand All @@ -50,7 +64,9 @@ dev = [
"pytest-cov>=4.0.0",
# pytest-timeout — CI runs pytest with --timeout=120 (test.yml).
"pytest-timeout>=2.0",
"scitex-dev>=0.11.7",
# Same floor as the runtime dependency above — a dev install that cannot
# open a store cannot run the suite either.
"scitex-dev>=0.49.2",
"cryptography>=41.0",
# clew's stores are Postgres-backed and its tests run against a REAL
# database (tests/conftest.py gives each test its own schema). Declared
Expand Down
Loading